// 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 workloadmanager provides access to the Workload Manager API.
//
// For product documentation, see: https://cloud.google.com/workload-manager/docs
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
//	import "google.golang.org/api/workloadmanager/v1"
//	...
//	ctx := context.Background()
//	workloadmanagerService, err := workloadmanager.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for
// authentication. For information on how to create and obtain Application
// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// # Other authentication options
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
//	workloadmanagerService, err := workloadmanager.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, ...)
//	workloadmanagerService, err := workloadmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package workloadmanager // import "google.golang.org/api/workloadmanager/v1"

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

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

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/cloud-platform",
	)
	// 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.Deployments = NewProjectsLocationsDeploymentsService(s)
	rs.Discoveredprofiles = NewProjectsLocationsDiscoveredprofilesService(s)
	rs.Evaluations = NewProjectsLocationsEvaluationsService(s)
	rs.Insights = NewProjectsLocationsInsightsService(s)
	rs.Operations = NewProjectsLocationsOperationsService(s)
	rs.Rules = NewProjectsLocationsRulesService(s)
	return rs
}

type ProjectsLocationsService struct {
	s *Service

	Deployments *ProjectsLocationsDeploymentsService

	Discoveredprofiles *ProjectsLocationsDiscoveredprofilesService

	Evaluations *ProjectsLocationsEvaluationsService

	Insights *ProjectsLocationsInsightsService

	Operations *ProjectsLocationsOperationsService

	Rules *ProjectsLocationsRulesService
}

func NewProjectsLocationsDeploymentsService(s *Service) *ProjectsLocationsDeploymentsService {
	rs := &ProjectsLocationsDeploymentsService{s: s}
	rs.Actuations = NewProjectsLocationsDeploymentsActuationsService(s)
	return rs
}

type ProjectsLocationsDeploymentsService struct {
	s *Service

	Actuations *ProjectsLocationsDeploymentsActuationsService
}

func NewProjectsLocationsDeploymentsActuationsService(s *Service) *ProjectsLocationsDeploymentsActuationsService {
	rs := &ProjectsLocationsDeploymentsActuationsService{s: s}
	return rs
}

type ProjectsLocationsDeploymentsActuationsService struct {
	s *Service
}

func NewProjectsLocationsDiscoveredprofilesService(s *Service) *ProjectsLocationsDiscoveredprofilesService {
	rs := &ProjectsLocationsDiscoveredprofilesService{s: s}
	rs.Health = NewProjectsLocationsDiscoveredprofilesHealthService(s)
	return rs
}

type ProjectsLocationsDiscoveredprofilesService struct {
	s *Service

	Health *ProjectsLocationsDiscoveredprofilesHealthService
}

func NewProjectsLocationsDiscoveredprofilesHealthService(s *Service) *ProjectsLocationsDiscoveredprofilesHealthService {
	rs := &ProjectsLocationsDiscoveredprofilesHealthService{s: s}
	return rs
}

type ProjectsLocationsDiscoveredprofilesHealthService struct {
	s *Service
}

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

type ProjectsLocationsEvaluationsService struct {
	s *Service

	Executions *ProjectsLocationsEvaluationsExecutionsService
}

func NewProjectsLocationsEvaluationsExecutionsService(s *Service) *ProjectsLocationsEvaluationsExecutionsService {
	rs := &ProjectsLocationsEvaluationsExecutionsService{s: s}
	rs.Results = NewProjectsLocationsEvaluationsExecutionsResultsService(s)
	rs.ScannedResources = NewProjectsLocationsEvaluationsExecutionsScannedResourcesService(s)
	return rs
}

type ProjectsLocationsEvaluationsExecutionsService struct {
	s *Service

	Results *ProjectsLocationsEvaluationsExecutionsResultsService

	ScannedResources *ProjectsLocationsEvaluationsExecutionsScannedResourcesService
}

func NewProjectsLocationsEvaluationsExecutionsResultsService(s *Service) *ProjectsLocationsEvaluationsExecutionsResultsService {
	rs := &ProjectsLocationsEvaluationsExecutionsResultsService{s: s}
	return rs
}

type ProjectsLocationsEvaluationsExecutionsResultsService struct {
	s *Service
}

func NewProjectsLocationsEvaluationsExecutionsScannedResourcesService(s *Service) *ProjectsLocationsEvaluationsExecutionsScannedResourcesService {
	rs := &ProjectsLocationsEvaluationsExecutionsScannedResourcesService{s: s}
	return rs
}

type ProjectsLocationsEvaluationsExecutionsScannedResourcesService struct {
	s *Service
}

func NewProjectsLocationsInsightsService(s *Service) *ProjectsLocationsInsightsService {
	rs := &ProjectsLocationsInsightsService{s: s}
	return rs
}

type ProjectsLocationsInsightsService struct {
	s *Service
}

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

type ProjectsLocationsOperationsService struct {
	s *Service
}

func NewProjectsLocationsRulesService(s *Service) *ProjectsLocationsRulesService {
	rs := &ProjectsLocationsRulesService{s: s}
	return rs
}

type ProjectsLocationsRulesService struct {
	s *Service
}

// ActiveDirectory: Active Directory details.
type ActiveDirectory struct {
	// DnsAddress: Optional. DNS IP address.
	DnsAddress string `json:"dnsAddress,omitempty"`
	// Domain: Optional. Human readable form of a domain such as `example.com`.
	Domain string `json:"domain,omitempty"`
	// DomainUsername: Optional. Domain username.
	DomainUsername string `json:"domainUsername,omitempty"`
	// SecretManagerSecret: Required. Secret Manager secret.
	SecretManagerSecret string `json:"secretManagerSecret,omitempty"`
	// Type: Required. Active Directory type.
	//
	// Possible values:
	//   "ACTIVE_DIRECTORY_TYPE_UNSPECIFIED" - Unspecified Active Directory type.
	//   "GCP_MANAGED" - GCP managed Active Directory type.
	//   "SELF_MANAGED" - Self managed Active Directory type.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DnsAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DnsAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Actuation: The Actuation object represents the bootstrap state and output
// results of deployed infrastructure and software.
type Actuation struct {
	// ActuationOutput: Output only. Actuation output.
	ActuationOutput *ActuationOutput `json:"actuationOutput,omitempty"`
	// DeploymentOutput: Output only. Deployment output.
	DeploymentOutput []*DeploymentOutput `json:"deploymentOutput,omitempty"`
	// EndTime: Output only. End time stamp.
	EndTime string `json:"endTime,omitempty"`
	// Name: The name of the actuation resource. The format is
	// projects/{project}/locations/{location}/deployments/{deployment}/actuations/{
	// actuation}.
	Name string `json:"name,omitempty"`
	// StartTime: Output only. Start time stamp.
	StartTime string `json:"startTime,omitempty"`
	// State: Output only. Actuation state.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - State unspecified.
	//   "INFRA_CREATING" - Creating infrastructure in backend (Terraform
	// applying).
	//   "SUCCEEDED" - Success.
	//   "FAILED" - Failed either in infra creating, post infra configuring, or
	// infra destroying.
	//   "POST_INFRA_CONFIGURING" - Configure workload after infrastructure is
	// ready (Ansible running).
	//   "INFRA_DESTROYING" - Destroying infrastructure in backend (Terraform
	// destroying).
	//   "TIMEOUT" - Ansible timed out due to losing heartbeat in post infra
	// configuring.
	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. "ActuationOutput") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActuationOutput") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ActuationOutput: Message for output of actuation.
type ActuationOutput struct {
	// ActuateLogs: A link to the Cloud Storage file that stores build logs.
	ActuateLogs string `json:"actuateLogs,omitempty"`
	// AnsibleError: Output only. Error message returned from Ansible.
	AnsibleError string `json:"ansibleError,omitempty"`
	// AnsibleFailedTask: Output only. Failed task name returned from Ansible.
	AnsibleFailedTask []string `json:"ansibleFailedTask,omitempty"`
	// BlueprintId: Reference to the Blueprint Controller deployment and revision
	// resource.
	BlueprintId string `json:"blueprintId,omitempty"`
	// CloudbuildId: Cloud Build instance UUID associated with this revision,
	// without any suffix or prefix
	CloudbuildId string `json:"cloudbuildId,omitempty"`
	// ErrorCode: Output only. Code describing any errors that may have occurred.
	// If not specified, there is no error in actuation.
	//
	// Possible values:
	//   "ERROR_CODE_UNSPECIFIED" - No error code was specified.
	//   "TERRAFORM_FAILED" - General Terraform failure.
	//   "PERMISSION_DENIED_IN_TERRAFORM" - Permission error in Terraform.
	//   "QUOTA_EXCEED_IN_TERRAFORM" - Quota related error in Terraform.
	//   "ANSIBLE_FAILED" - General Ansible failure.
	//   "CONSTRAINT_VIOLATION_IN_TERRAFORM" - Constraint related error in
	// Terraform.
	//   "RESOURCE_ALREADY_EXISTS_IN_TERRAFORM" - Resource already exists error in
	// Terraform.
	//   "RESOURCE_UNAVAILABLE_IN_TERRAFORM" - Resource not found error in
	// Terraform.
	//   "PERMISSION_DENIED_IN_ANSIBLE" - Permission denied error in Ansible.
	//   "INVALID_SECRET_IN_ANSIBLE" - Secret related error in Ansible.
	//   "TERRAFORM_DELETION_FAILED" - General Terraform failure during deletion.
	//   "RESOURCE_IN_USE_IN_TERRAFORM_DELETION" - Resource in use error in
	// Terraform deletion.
	//   "ANSIBLE_START_FAILED" - Startup failure in Ansible.
	ErrorCode string `json:"errorCode,omitempty"`
	// ErrorLogs: A link to the actuation Cloud Build log.
	ErrorLogs string `json:"errorLogs,omitempty"`
	// HasUserFacingErrorMsg: Output only. Whether the error message is user
	// facing. If true, the error message will be shown in the UI.
	HasUserFacingErrorMsg bool `json:"hasUserFacingErrorMsg,omitempty"`
	// TerraformError: Output only. Error message returned from Terraform.
	TerraformError string `json:"terraformError,omitempty"`
	// TerraformTemplate: Reference to the Terraform template used.
	TerraformTemplate string `json:"terraformTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActuateLogs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActuateLogs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentCommand: An AgentCommand specifies a one-time executable program for
// the agent to run.
type AgentCommand struct {
	// Command: The name of the agent one-time executable that will be invoked.
	Command string `json:"command,omitempty"`
	// Parameters: A map of key/value pairs that can be used to specify additional
	// one-time executable settings.
	Parameters map[string]string `json:"parameters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Command") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Command") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentStates: Agent status.
type AgentStates struct {
	// AvailableVersion: Optional. The available version of the agent in artifact
	// registry.
	AvailableVersion string `json:"availableVersion,omitempty"`
	// HanaMonitoring: Optional. HANA monitoring metrics of the agent.
	HanaMonitoring *ServiceStates `json:"hanaMonitoring,omitempty"`
	// InstalledVersion: Optional. The installed version of the agent on the host.
	InstalledVersion string `json:"installedVersion,omitempty"`
	// IsFullyEnabled: Optional. Whether the agent is fully enabled. If false, the
	// agent is has some issues.
	IsFullyEnabled bool `json:"isFullyEnabled,omitempty"`
	// ProcessMetrics: Optional. The Process metrics of the agent.
	ProcessMetrics *ServiceStates `json:"processMetrics,omitempty"`
	// SystemDiscovery: Optional. The System discovery metrics of the agent.
	SystemDiscovery *ServiceStates `json:"systemDiscovery,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailableVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailableVersion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentStatus: The schema of agent status data.
type AgentStatus struct {
	// AgentName: Output only. The name of the agent.
	AgentName string `json:"agentName,omitempty"`
	// AvailableVersion: Output only. The available version of the agent in
	// artifact registry.
	AvailableVersion string `json:"availableVersion,omitempty"`
	// CloudApiAccessFullScopesGranted: Output only. Whether the agent has full
	// access to Cloud APIs.
	//
	// Possible values:
	//   "UNSPECIFIED_STATE" - The state is unspecified and has not been checked
	// yet.
	//   "SUCCESS_STATE" - The state is successful (enabled, granted, fully
	// functional).
	//   "FAILURE_STATE" - The state is failed (disabled, denied, not fully
	// functional).
	//   "ERROR_STATE" - There was an internal error while checking the state,
	// state is unknown.
	CloudApiAccessFullScopesGranted string `json:"cloudApiAccessFullScopesGranted,omitempty"`
	// ConfigurationErrorMessage: Output only. The error message for the agent
	// configuration if invalid.
	ConfigurationErrorMessage string `json:"configurationErrorMessage,omitempty"`
	// ConfigurationFilePath: Output only. The path to the agent configuration
	// file.
	ConfigurationFilePath string `json:"configurationFilePath,omitempty"`
	// ConfigurationValid: Output only. Whether the agent configuration is valid.
	//
	// Possible values:
	//   "UNSPECIFIED_STATE" - The state is unspecified and has not been checked
	// yet.
	//   "SUCCESS_STATE" - The state is successful (enabled, granted, fully
	// functional).
	//   "FAILURE_STATE" - The state is failed (disabled, denied, not fully
	// functional).
	//   "ERROR_STATE" - There was an internal error while checking the state,
	// state is unknown.
	ConfigurationValid string `json:"configurationValid,omitempty"`
	// InstalledVersion: Output only. The installed version of the agent on the
	// host.
	InstalledVersion string `json:"installedVersion,omitempty"`
	// InstanceUri: Output only. The URI of the instance. Format:
	// projects//zones//instances/
	InstanceUri string `json:"instanceUri,omitempty"`
	// KernelVersion: Output only. The kernel version of the system.
	KernelVersion *SapDiscoveryResourceInstancePropertiesKernelVersion `json:"kernelVersion,omitempty"`
	// References: Output only. Optional references to public documentation.
	References []*AgentStatusReference `json:"references,omitempty"`
	// Services: Output only. The services (process metrics, host metrics, etc.).
	Services []*AgentStatusServiceStatus `json:"services,omitempty"`
	// SystemdServiceEnabled: Output only. Whether the agent service is enabled in
	// systemd.
	//
	// Possible values:
	//   "UNSPECIFIED_STATE" - The state is unspecified and has not been checked
	// yet.
	//   "SUCCESS_STATE" - The state is successful (enabled, granted, fully
	// functional).
	//   "FAILURE_STATE" - The state is failed (disabled, denied, not fully
	// functional).
	//   "ERROR_STATE" - There was an internal error while checking the state,
	// state is unknown.
	SystemdServiceEnabled string `json:"systemdServiceEnabled,omitempty"`
	// SystemdServiceRunning: Output only. Whether the agent service is running in
	// systemd.
	//
	// Possible values:
	//   "UNSPECIFIED_STATE" - The state is unspecified and has not been checked
	// yet.
	//   "SUCCESS_STATE" - The state is successful (enabled, granted, fully
	// functional).
	//   "FAILURE_STATE" - The state is failed (disabled, denied, not fully
	// functional).
	//   "ERROR_STATE" - There was an internal error while checking the state,
	// state is unknown.
	SystemdServiceRunning string `json:"systemdServiceRunning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// AgentStatusIAMPermission: The IAM permission status.
type AgentStatusIAMPermission struct {
	// Granted: Output only. Whether the permission is granted.
	//
	// Possible values:
	//   "UNSPECIFIED_STATE" - The state is unspecified and has not been checked
	// yet.
	//   "SUCCESS_STATE" - The state is successful (enabled, granted, fully
	// functional).
	//   "FAILURE_STATE" - The state is failed (disabled, denied, not fully
	// functional).
	//   "ERROR_STATE" - There was an internal error while checking the state,
	// state is unknown.
	Granted string `json:"granted,omitempty"`
	// Name: Output only. The name of the permission.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Granted") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Granted") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentStatusReference: The reference to public documentation.
type AgentStatusReference struct {
	// Name: Output only. The name of the reference.
	Name string `json:"name,omitempty"`
	// Url: Output only. The URL of the reference.
	Url string `json:"url,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 AgentStatusReference) MarshalJSON() ([]byte, error) {
	type NoMethod AgentStatusReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AgentStatusServiceStatus: The status of a service (process metrics, host
// metrics, etc.).
type AgentStatusServiceStatus struct {
	// ConfigValues: Output only. The configuration values for the service.
	ConfigValues []*AgentStatusConfigValue `json:"configValues,omitempty"`
	// ErrorMessage: Output only. The error message for the service if it is not
	// fully functional.
	ErrorMessage string `json:"errorMessage,omitempty"`
	// FullyFunctional: Output only. Whether the service is fully functional (all
	// checks passed).
	//
	// Possible values:
	//   "UNSPECIFIED_STATE" - The state is unspecified and has not been checked
	// yet.
	//   "SUCCESS_STATE" - The state is successful (enabled, granted, fully
	// functional).
	//   "FAILURE_STATE" - The state is failed (disabled, denied, not fully
	// functional).
	//   "ERROR_STATE" - There was an internal error while checking the state,
	// state is unknown.
	FullyFunctional string `json:"fullyFunctional,omitempty"`
	// IamPermissions: Output only. The permissions required for the service.
	IamPermissions []*AgentStatusIAMPermission `json:"iamPermissions,omitempty"`
	// Name: Output only. The name of the service.
	Name string `json:"name,omitempty"`
	// State: Output only. The state of the service (enabled or disabled in the
	// configuration).
	//
	// Possible values:
	//   "UNSPECIFIED_STATE" - The state is unspecified and has not been checked
	// yet.
	//   "SUCCESS_STATE" - The state is successful (enabled, granted, fully
	// functional).
	//   "FAILURE_STATE" - The state is failed (disabled, denied, not fully
	// functional).
	//   "ERROR_STATE" - There was an internal error while checking the state,
	// state is unknown.
	State string `json:"state,omitempty"`
	// UnspecifiedStateMessage: Output only. The message to display when the
	// service state is unspecified.
	UnspecifiedStateMessage string `json:"unspecifiedStateMessage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConfigValues") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConfigValues") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AppDetails: Message for SAP instance details.
type AppDetails struct {
	// AppInstanceId: Optional. Instance ID for app.
	AppInstanceId string `json:"appInstanceId,omitempty"`
	// AppServiceAccount: Application service account. Let customers bring their
	// own service account for the application.
	AppServiceAccount string `json:"appServiceAccount,omitempty"`
	// AppVmNames: Optional. Customized VM names.
	AppVmNames []string `json:"appVmNames,omitempty"`
	// AscsImage: Required. Image for the ASCS server.
	AscsImage string `json:"ascsImage,omitempty"`
	// AscsInstanceId: Optional. Instance ID for ASCS.
	AscsInstanceId string `json:"ascsInstanceId,omitempty"`
	// AscsMachineType: Required. ASCS machine type.
	AscsMachineType string `json:"ascsMachineType,omitempty"`
	// AscsServiceAccount: ASCS service account. Let customers bring their own
	// service account for ASCS.
	AscsServiceAccount string `json:"ascsServiceAccount,omitempty"`
	// AscsVm: Optional. ASCS VM name.
	AscsVm string `json:"ascsVm,omitempty"`
	// ErsInstanceId: Optional. Instance ID for ERS.
	ErsInstanceId string `json:"ersInstanceId,omitempty"`
	// ErsVm: Optional. ERS VM name.
	ErsVm string `json:"ersVm,omitempty"`
	// Image: Required. Image for the app server and ASCS server.
	Image string `json:"image,omitempty"`
	// MachineType: Required. Machine type.
	MachineType string `json:"machineType,omitempty"`
	// SecretManagerSecret: Required. Secret Manager secret.
	SecretManagerSecret string `json:"secretManagerSecret,omitempty"`
	// SharedStorage: Optional. Storage location.
	SharedStorage string `json:"sharedStorage,omitempty"`
	// Sid: Required. The SAP SID is a three-digit server-specific unique
	// identification code.
	Sid string `json:"sid,omitempty"`
	// VmsMultiplier: Required. VMs multiplier.
	VmsMultiplier int64 `json:"vmsMultiplier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppInstanceId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppInstanceId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BackupProperties: Backup properties.
type BackupProperties struct {
	// LatestBackupStatus: Output only. The state of the latest backup.
	//
	// Possible values:
	//   "BACKUP_STATE_UNSPECIFIED" - unspecified
	//   "BACKUP_STATE_SUCCESS" - SUCCESS state
	//   "BACKUP_STATE_FAILURE" - FAILURE state
	LatestBackupStatus string `json:"latestBackupStatus,omitempty"`
	// LatestBackupTime: The time when the latest backup was performed.
	LatestBackupTime string `json:"latestBackupTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LatestBackupStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LatestBackupStatus") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BigQueryDestination: BigQuery destination for evaluation results.
type BigQueryDestination struct {
	// CreateNewResultsTable: Optional. Determines if a new results table will be
	// created when an Execution is created.
	CreateNewResultsTable bool `json:"createNewResultsTable,omitempty"`
	// DestinationDataset: Optional. Destination dataset to save evaluation
	// results.
	DestinationDataset string `json:"destinationDataset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateNewResultsTable") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateNewResultsTable") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// CloudResource: The resource on GCP
type CloudResource struct {
	// InstanceProperties: Output only. All instance properties.
	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
	// Kind: Output only.
	//
	// Possible values:
	//   "RESOURCE_KIND_UNSPECIFIED" - Unspecified resource kind.
	//   "RESOURCE_KIND_INSTANCE" - This is a compute instance.
	//   "RESOURCE_KIND_DISK" - This is a compute disk.
	//   "RESOURCE_KIND_ADDRESS" - This is a compute address.
	//   "RESOURCE_KIND_FILESTORE" - This is a filestore instance.
	//   "RESOURCE_KIND_HEALTH_CHECK" - This is a compute health check.
	//   "RESOURCE_KIND_FORWARDING_RULE" - This is a compute forwarding rule.
	//   "RESOURCE_KIND_BACKEND_SERVICE" - This is a compute backend service.
	//   "RESOURCE_KIND_SUBNETWORK" - This is a compute subnetwork.
	//   "RESOURCE_KIND_NETWORK" - This is a compute network.
	//   "RESOURCE_KIND_PUBLIC_ADDRESS" - This is a public accessible IP Address.
	//   "RESOURCE_KIND_INSTANCE_GROUP" - This is a compute instance group.
	Kind string `json:"kind,omitempty"`
	// Name: Output only. resource name Example:
	// compute.googleapis.com/projects/wlm-obs-dev/zones/us-central1-a/instances/sap
	// -pri
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceProperties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceProperties") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Command: Command specifies the type of command to execute.
type Command struct {
	// AgentCommand: AgentCommand specifies a one-time executable program for the
	// agent to run.
	AgentCommand *AgentCommand `json:"agentCommand,omitempty"`
	// ShellCommand: ShellCommand is invoked via the agent's command line executor.
	ShellCommand *ShellCommand `json:"shellCommand,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentCommand") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentCommand") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ComponentHealth: HealthCondition contains the detailed health check of each
// component.
type ComponentHealth struct {
	// Component: The component of a workload.
	Component string `json:"component,omitempty"`
	// ComponentHealthChecks: The detailed health checks of the component.
	ComponentHealthChecks []*HealthCheck `json:"componentHealthChecks,omitempty"`
	// ComponentHealthType: Output only. The type of the component health.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Unspecified
	//   "TYPE_REQUIRED" - required
	//   "TYPE_OPTIONAL" - optional
	//   "TYPE_SPECIAL" - special
	ComponentHealthType string `json:"componentHealthType,omitempty"`
	// State: Output only. The health state of the component.
	//
	// Possible values:
	//   "HEALTH_STATE_UNSPECIFIED" - Unspecified.
	//   "HEALTHY" - Healthy workload.
	//   "UNHEALTHY" - Unhealthy workload.
	//   "CRITICAL" - Has critical issues.
	//   "UNSUPPORTED" - Unsupported.
	State string `json:"state,omitempty"`
	// SubComponentsHealth: Sub component health.
	SubComponentsHealth []*ComponentHealth `json:"subComponentsHealth,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Component") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Component") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Database: Database details.
type Database struct {
	// DiskType: Required. Disk type.
	DiskType string `json:"diskType,omitempty"`
	// FloatingIpAddress: Optional. Only useful for Linux High Availability setup.
	FloatingIpAddress string `json:"floatingIpAddress,omitempty"`
	// MachineType: Required. Machine type.
	MachineType string `json:"machineType,omitempty"`
	// SecondarySoleTenantNode: Optional. The name of a secondary-sole-tenant
	// node/node group.
	SecondarySoleTenantNode string `json:"secondarySoleTenantNode,omitempty"`
	// SecondarySoleTenantNodeType: Optional. The type of a secondary-sole-tenant
	// node/node group. E.g., compute.googleapis.com/node-name.
	SecondarySoleTenantNodeType string `json:"secondarySoleTenantNodeType,omitempty"`
	// SecretManagerSecret: Required. Secret Manager secret.
	SecretManagerSecret string `json:"secretManagerSecret,omitempty"`
	// Smt: Required. Whether simultaneous multithreading is enabled or not.
	Smt bool `json:"smt,omitempty"`
	// SoleTenantNode: Optional. The name of a primary sole-tenant node/node group.
	SoleTenantNode string `json:"soleTenantNode,omitempty"`
	// SoleTenantNodeType: Optional. The type of a primary sole-tenant node/node
	// group. E.g., compute.googleapis.com/node-name.
	SoleTenantNodeType string `json:"soleTenantNodeType,omitempty"`
	// TempdbOnSsd: Required. Whether to have TempDB on local SSD.
	TempdbOnSsd bool `json:"tempdbOnSsd,omitempty"`
	// TenancyModel: Required. SHARED or SOLE_TENANT.
	//
	// Possible values:
	//   "TENANCY_MODEL_UNSPECIFIED" - Unspecified tenancy model.
	//   "SHARED" - Shared tenancy model.
	//   "SOLE_TENANT" - Sole Tenant tenancy model.
	TenancyModel string `json:"tenancyModel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DatabaseDetails: Message for SAP instance details.
type DatabaseDetails struct {
	// DatabaseServiceAccount: Database service account. Let customers bring their
	// own SA for the database.
	DatabaseServiceAccount string `json:"databaseServiceAccount,omitempty"`
	// DiskType: Required. Disk type.
	DiskType string `json:"diskType,omitempty"`
	// Image: Required. Image for the database server.
	Image string `json:"image,omitempty"`
	// InstanceId: Optional. Instance ID.
	InstanceId string `json:"instanceId,omitempty"`
	// MachineType: Required. Machine type.
	MachineType string `json:"machineType,omitempty"`
	// PrimaryDbVm: Optional. Primary DB VM name.
	PrimaryDbVm string `json:"primaryDbVm,omitempty"`
	// SecondaryDbVm: Optional. Secondary DB VM name.
	SecondaryDbVm string `json:"secondaryDbVm,omitempty"`
	// SecretManagerSecret: Required. Secret Manager secret.
	SecretManagerSecret string `json:"secretManagerSecret,omitempty"`
	// Sid: Required. The SID is a three-digit server-specific unique
	// identification code.
	Sid string `json:"sid,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DatabaseServiceAccount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DatabaseServiceAccount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DatabaseProperties: Database Properties.
type DatabaseProperties struct {
	// BackupProperties: Output only. Backup properties.
	BackupProperties *BackupProperties `json:"backupProperties,omitempty"`
	// DatabaseType: Output only. Type of the database. `HANA`, `DB2`, etc.
	//
	// Possible values:
	//   "DATABASE_TYPE_UNSPECIFIED" - unspecified
	//   "HANA" - SAP HANA
	//   "MAX_DB" - SAP MAX_DB
	//   "DB2" - IBM DB2
	//   "ORACLE" - Oracle Database
	//   "SQLSERVER" - Microsoft SQL Server
	//   "ASE" - SAP Sybase ASE
	DatabaseType string `json:"databaseType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackupProperties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackupProperties") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Deployment: The Deployment object represents user intent for deploying a
// specific type of workload.
type Deployment struct {
	// CreateTime: Output only. Create time stamp.
	CreateTime string `json:"createTime,omitempty"`
	// Description: Description of the deployment.
	Description string `json:"description,omitempty"`
	// Name: The name of the deployment resource. The format is
	// 'projects/{project_id}/locations/{location_id}/deployments/{deployment_id}'.
	Name string `json:"name,omitempty"`
	// SapSystemS4Config: SAP system workload input.
	SapSystemS4Config *SapSystemS4Config `json:"sapSystemS4Config,omitempty"`
	// ServiceAccount: User-specified Service Account (SA) credentials to be used
	// for Cloud Build. Format:
	// `projects/{projectID}/serviceAccounts/{serviceAccount}` The default Cloud
	// Build SA will be used initially if this field is not set during deployment
	// creation.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// SqlServerWorkload: MS SQL workload input.
	SqlServerWorkload *SqlServerWorkload `json:"sqlServerWorkload,omitempty"`
	// State: Output only. Current state of the deployment.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The default value. This value is used if the state
	// is omitted.
	//   "CREATING" - The deployment is being created.
	//   "ACTIVE" - The deployment is healthy.
	//   "UPDATING" - The deployment is being updated.
	//   "DELETING" - The deployment is being deleted.
	//   "FAILED" - The deployment has encountered an unexpected error.
	State string `json:"state,omitempty"`
	// TerraformVariables: Optional. terraform_variables represents all the
	// Terraform variables for the deployment workload. The key is the name of the
	// Terraform variable, and the value is the TerraformVariable. For example: {
	// "project_id": { "input_value": { "string_value": "my-project-id" } },
	// "zone": { "input_value": { "string_value": "us-central1-a" } } }
	TerraformVariables map[string]TerraformVariable `json:"terraformVariables,omitempty"`
	// UpdateTime: Output only. Update time stamp.
	UpdateTime string `json:"updateTime,omitempty"`
	// WorkerPool: Optional. The user-specified Cloud Build worker pool resource in
	// which the Cloud Build job will execute. Format:
	// `projects/{project}/locations/{location}/workerPools/{workerPoolId}`. If
	// this field is unspecified, the default Cloud Build worker pool will be used.
	WorkerPool string `json:"workerPool,omitempty"`
	// WorkloadType: Optional. Workload type of the deployment.
	//
	// Possible values:
	//   "WORKLOAD_TYPE_UNSPECIFIED" - Unspecified workload type.
	//   "SAP_S4" - SAP S/4HANA workload type.
	//   "SQL_SERVER" - SQL Server workload type.
	//   "ORACLE" - Oracle workload type.
	WorkloadType string `json:"workloadType,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 Deployment) MarshalJSON() ([]byte, error) {
	type NoMethod Deployment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DeploymentOutput: Message for output of deployment resource.
type DeploymentOutput struct {
	// Name: Name of the resource.
	Name string `json:"name,omitempty"`
	// Type: Type of the resource.
	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 DeploymentOutput) MarshalJSON() ([]byte, error) {
	type NoMethod DeploymentOutput
	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:"-"`
}

// Evaluation: Represents a Workload Manager Evaluation configuration. An
// Evaluation defines a set of rules to be validated against a scope of Cloud
// resources.
type Evaluation struct {
	// BigQueryDestination: Optional. The BigQuery destination for detailed
	// evaluation results. If this field is specified, the results of each
	// evaluation execution are exported to BigQuery.
	BigQueryDestination *BigQueryDestination `json:"bigQueryDestination,omitempty"`
	// CreateTime: Output only. [Output only] Create time stamp.
	CreateTime string `json:"createTime,omitempty"`
	// CustomRulesBucket: The Cloud Storage bucket name for custom rules.
	CustomRulesBucket string `json:"customRulesBucket,omitempty"`
	// Description: Description of the Evaluation.
	Description string `json:"description,omitempty"`
	// EvaluationType: Evaluation type.
	//
	// Possible values:
	//   "EVALUATION_TYPE_UNSPECIFIED" - Not specified.
	//   "SAP" - SAP best practices.
	//   "SQL_SERVER" - SQL best practices.
	//   "OTHER" - Customized best practices.
	EvaluationType string `json:"evaluationType,omitempty"`
	// KmsKey: Optional. Immutable. Customer-managed encryption key name, in the
	// format projects/*/locations/*/keyRings/*/cryptoKeys/*. The key will be used
	// for CMEK encryption of the evaluation resource.
	KmsKey string `json:"kmsKey,omitempty"`
	// Labels: Labels as key value pairs.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of resource that has the form
	// `projects/{project_id}/locations/{location_id}/evaluations/{evaluation_id}`.
	Name string `json:"name,omitempty"`
	// ResourceFilter: Resource filter for an evaluation defining the scope of
	// resources to be evaluated.
	ResourceFilter *ResourceFilter `json:"resourceFilter,omitempty"`
	// ResourceStatus: Output only. [Output only] The current lifecycle state of
	// the evaluation resource.
	ResourceStatus *ResourceStatus `json:"resourceStatus,omitempty"`
	// RuleNames: The names of the rules used for this evaluation.
	RuleNames []string `json:"ruleNames,omitempty"`
	// Schedule: Crontab format schedule for scheduled evaluation, currently only
	// supports the following fixed schedules: * `0 */1 * * *` # Hourly * `0 */6 *
	// * *` # Every 6 hours * `0 */12 * * *` # Every 12 hours * `0 0 */1 * *` #
	// Daily * `0 0 */7 * *` # Weekly * `0 0 */14 * *` # Every 14 days * `0 0 1 */1
	// *` # Monthly
	Schedule string `json:"schedule,omitempty"`
	// UpdateTime: Output only. [Output only] Update time stamp.
	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. "BigQueryDestination") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigQueryDestination") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Execution: Execution that represents a single run of an Evaluation.
type Execution struct {
	// EndTime: Output only. [Output only] End time stamp.
	EndTime string `json:"endTime,omitempty"`
	// Engine: Optional. Engine.
	//
	// Possible values:
	//   "ENGINE_UNSPECIFIED" - The original CG.
	//   "ENGINE_SCANNER" - SlimCG / Scanner.
	//   "V2" - Evaluation Engine V2.
	Engine string `json:"engine,omitempty"`
	// EvaluationId: Output only. [Output only] Evaluation ID.
	EvaluationId string `json:"evaluationId,omitempty"`
	// ExternalDataSources: Optional. External data sources.
	ExternalDataSources []*ExternalDataSources `json:"externalDataSources,omitempty"`
	// InventoryTime: Output only. [Output only] Inventory time stamp.
	InventoryTime string `json:"inventoryTime,omitempty"`
	// Labels: Labels as key value pairs.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: The name of execution resource. The format is
	// projects/{project}/locations/{location}/evaluations/{evaluation}/executions/{
	// execution}.
	Name string `json:"name,omitempty"`
	// Notices: Output only. Additional information generated by the execution.
	Notices []*Notice `json:"notices,omitempty"`
	// ResultSummary: Output only. [Output only] Result summary for the execution.
	ResultSummary *Summary `json:"resultSummary,omitempty"`
	// RuleResults: Output only. Execution result summary per rule.
	RuleResults []*RuleExecutionResult `json:"ruleResults,omitempty"`
	// RunType: Type which represents whether the execution executed directly by
	// user or scheduled according to the `Evaluation.schedule` field.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Type of execution is unspecified.
	//   "ONE_TIME" - Type of execution is one time.
	//   "SCHEDULED" - Type of execution is scheduled.
	RunType string `json:"runType,omitempty"`
	// StartTime: Output only. [Output only] Start time stamp.
	StartTime string `json:"startTime,omitempty"`
	// State: Output only. [Output only] State.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - State of execution is unspecified.
	//   "RUNNING" - The execution is running in backend service.
	//   "SUCCEEDED" - The execution run succeeded.
	//   "FAILED" - The execution run failed.
	State string `json:"state,omitempty"`

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

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

// ExecutionResult: The result of an execution.
type ExecutionResult struct {
	// Commands: The commands to remediate the violation.
	Commands []*Command `json:"commands,omitempty"`
	// DocumentationUrl: The URL for the documentation of the rule.
	DocumentationUrl string `json:"documentationUrl,omitempty"`
	// Resource: The resource that violates the rule.
	Resource *Resource `json:"resource,omitempty"`
	// Rule: The rule that is violated in an evaluation.
	Rule string `json:"rule,omitempty"`
	// Severity: The severity of violation.
	Severity string `json:"severity,omitempty"`
	// Type: Execution result type of the scanned resource.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Unknown state.
	//   "TYPE_PASSED" - Resource successfully passed the rule.
	//   "TYPE_VIOLATED" - Resource violated the rule.
	Type string `json:"type,omitempty"`
	// ViolationDetails: The details of violation in an evaluation result.
	ViolationDetails *ViolationDetails `json:"violationDetails,omitempty"`
	// ViolationMessage: The violation message of an execution.
	ViolationMessage string `json:"violationMessage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Commands") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Commands") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExternalDataSources: External data sources for an execution.
type ExternalDataSources struct {
	// AssetType: Required. The asset type of the external data source. This can be
	// a supported Cloud Asset Inventory asset type (see
	// https://cloud.google.com/asset-inventory/docs/supported-asset-types) to
	// override the default asset type, or it can be a custom type defined by the
	// user.
	AssetType string `json:"assetType,omitempty"`
	// Name: Optional. Name of external data source. The name will be used inside
	// the rego/sql to refer the external data.
	Name string `json:"name,omitempty"`
	// Type: Required. Type of external data source.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Unknown type.
	//   "BIG_QUERY_TABLE" - BigQuery table.
	Type string `json:"type,omitempty"`
	// Uri: Required. URI of external data source. example of bq table
	// {project_ID}.{dataset_ID}.{table_ID}.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GceInstanceFilter: A filter for matching Compute Engine instances.
type GceInstanceFilter struct {
	// ServiceAccounts: If non-empty, only Compute Engine instances associated with
	// at least one of the provided service accounts will be included in the
	// evaluation.
	ServiceAccounts []string `json:"serviceAccounts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ServiceAccounts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ServiceAccounts") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// HealthCheck: HealthCheck contains the detailed health check of a component
// based on asource.
type HealthCheck struct {
	// Message: Output only. The message of the health check.
	Message string `json:"message,omitempty"`
	// Metric: Output only. The health check source metric name.
	Metric string `json:"metric,omitempty"`
	// Resource: Output only. The resource the check performs on.
	Resource *CloudResource `json:"resource,omitempty"`
	// Source: Output only. The source of the health check.
	Source string `json:"source,omitempty"`
	// State: Output only. The state of the health check.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unspecified
	//   "PASSED" - passed
	//   "FAILED" - failed
	//   "DEGRADED" - degraded
	//   "SKIPPED" - skipped
	//   "UNSUPPORTED" - unsupported
	State string `json:"state,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 HealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// Insight: A presentation of host resource usage where the workload runs.
type Insight struct {
	// AgentStatus: The insights data for the agent status.
	AgentStatus *AgentStatus `json:"agentStatus,omitempty"`
	// InstanceId: Optional. The instance id where the insight is generated from
	InstanceId string `json:"instanceId,omitempty"`
	// OpenShiftValidation: The insights data for the OpenShift workload
	// validation.
	OpenShiftValidation *OpenShiftValidation `json:"openShiftValidation,omitempty"`
	// SapDiscovery: The insights data for SAP system discovery. This is a copy of
	// SAP System proto and should get updated whenever that one changes.
	SapDiscovery *SapDiscovery `json:"sapDiscovery,omitempty"`
	// SapValidation: The insights data for the SAP workload validation.
	SapValidation *SapValidation `json:"sapValidation,omitempty"`
	// SentTime: Output only. [Output only] Create time stamp
	SentTime string `json:"sentTime,omitempty"`
	// SqlserverValidation: The insights data for the sqlserver workload
	// validation.
	SqlserverValidation *SqlserverValidation `json:"sqlserverValidation,omitempty"`
	// TorsoValidation: The insights data for workload validation of torso
	// workloads.
	TorsoValidation *TorsoValidation `json:"torsoValidation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentStatus") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InstanceProperties: Instance Properties.
type InstanceProperties struct {
	// InstanceNumber: Optional. Instance number.
	InstanceNumber string `json:"instanceNumber,omitempty"`
	// MachineType: Optional. Instance machine type.
	MachineType string `json:"machineType,omitempty"`
	// Roles: Optional. Instance roles.
	//
	// Possible values:
	//   "INSTANCE_ROLE_UNSPECIFIED" - Unspecified role.
	//   "INSTANCE_ROLE_ASCS" - ASCS role.
	//   "INSTANCE_ROLE_ERS" - ERS role.
	//   "INSTANCE_ROLE_APP_SERVER" - APP server.
	//   "INSTANCE_ROLE_HANA_PRIMARY" - HANA primary role.
	//   "INSTANCE_ROLE_HANA_SECONDARY" - HANA secondary role.
	Roles []string `json:"roles,omitempty"`
	// SapInstanceProperties: Optional. SAP Instance properties.
	SapInstanceProperties *SapInstanceProperties `json:"sapInstanceProperties,omitempty"`
	// Status: Optional. Instance status.
	Status string `json:"status,omitempty"`
	// UpcomingMaintenanceEvent: Optional. the next maintenance event on VM
	UpcomingMaintenanceEvent *UpcomingMaintenanceEvent `json:"upcomingMaintenanceEvent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceNumber") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceNumber") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListActuationsResponse: The response object from `ListActuations`.
type ListActuationsResponse struct {
	// Actuations: The list of actuations.
	Actuations []*Actuation `json:"actuations,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"`
	// 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. "Actuations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Actuations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListDeploymentsResponse: Message for response to listing deployments.
type ListDeploymentsResponse struct {
	// Deployments: The list of deployments.
	Deployments []*Deployment `json:"deployments,omitempty"`
	// NextPageToken: A token identifying a page of results the server should
	// return.
	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. "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)
}

// ListDiscoveredProfilesResponse: List discovered profile Response returns
// discovered profiles from agents
type ListDiscoveredProfilesResponse struct {
	// NextPageToken: Output only. A token identifying a page of results the server
	// should return
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Unreachable: Locations that could not be reached.
	Unreachable []string `json:"unreachable,omitempty"`
	// WorkloadProfiles: Output only. The list of workload profiles
	WorkloadProfiles []*WorkloadProfile `json:"workloadProfiles,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 ListDiscoveredProfilesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListDiscoveredProfilesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListEvaluationsResponse: Response message for the ListEvaluations RPC.
type ListEvaluationsResponse struct {
	// Evaluations: The list of evaluations.
	Evaluations []*Evaluation `json:"evaluations,omitempty"`
	// NextPageToken: A token identifying a page of results the server should
	// return.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Unreachable: 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. "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)
}

// ListExecutionResultsResponse: Response message for the ListExecutionResults
// RPC.
type ListExecutionResultsResponse struct {
	// ExecutionResults: The versions from the specified publisher.
	ExecutionResults []*ExecutionResult `json:"executionResults,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. "ExecutionResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExecutionResults") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListExecutionsResponse: Response message for the ListExecutions RPC.
type ListExecutionsResponse struct {
	// Executions: The list of Execution.
	Executions []*Execution `json:"executions,omitempty"`
	// NextPageToken: A token identifying a page of results the server should
	// return.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Unreachable: 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. "Executions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Executions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ListExecutionsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListExecutionsResponse
	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)
}

// ListRulesResponse: Response message for the ListRules RPC.
type ListRulesResponse struct {
	// Rules: All rules in response.
	Rules []*Rule `json:"rules,omitempty"`

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

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

// ListScannedResourcesResponse: Response message for the ListScannedResources
// RPC.
type ListScannedResourcesResponse struct {
	// NextPageToken: A token, which can be sent as `page_token` to retrieve the
	// next page. If this field is omitted, there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ScannedResources: All scanned resources in response.
	ScannedResources []*ScannedResource `json:"scannedResources,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 ListScannedResourcesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListScannedResourcesResponse
	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)
}

// LocationDetails: Message for SAP instance details.
type LocationDetails struct {
	// CreateCommsFirewall: Optional. Create firewall. If true, creates a firewall
	// for the deployment. This field provides an option to not always create a
	// firewall for the deployment.
	CreateCommsFirewall bool `json:"createCommsFirewall,omitempty"`
	// CustomTags: Optional. Network tags.
	CustomTags []string `json:"customTags,omitempty"`
	// DeploymentDnsEnabled: Optional. When the user skips DNS configuration in the
	// UI, `deployment_dns_enabled` is false; otherwise `deployment_dns_enabled` is
	// true.
	DeploymentDnsEnabled bool `json:"deploymentDnsEnabled,omitempty"`
	// DnsZone: Optional. DNS zone name.
	DnsZone string `json:"dnsZone,omitempty"`
	// DnsZoneNameSuffix: Optional. DNS zone name suffix.
	DnsZoneNameSuffix string `json:"dnsZoneNameSuffix,omitempty"`
	// Possible values:
	//   "INTERNETACCESS_UNSPECIFIED"
	//   "ALLOW_EXTERNAL_IP"
	//   "CONFIGURE_NAT"
	InternetAccess string `json:"internetAccess,omitempty"`
	// NetworkProject: Optional. Network project.
	NetworkProject string `json:"networkProject,omitempty"`
	// RegionName: Required. Region name.
	RegionName string `json:"regionName,omitempty"`
	// SubnetName: Required. Subnet name.
	SubnetName string `json:"subnetName,omitempty"`
	// VpcName: Required. VPC name.
	VpcName string `json:"vpcName,omitempty"`
	// Zone1Name: Required. Zone 1 name.
	Zone1Name string `json:"zone1Name,omitempty"`
	// Zone2Name: Optional. Zone 2 name.
	Zone2Name string `json:"zone2Name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateCommsFirewall") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateCommsFirewall") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Notice: Additional information generated by an execution.
type Notice struct {
	// Message: Output only. Message of the notice.
	Message string `json:"message,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 Notice) MarshalJSON() ([]byte, error) {
	type NoMethod Notice
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OpenShiftValidation: A presentation of OpenShift workload insight. The
// schema of OpenShift workloads validation related data.
type OpenShiftValidation struct {
	// ClusterId: Required. The OpenShift cluster ID (e.g.
	// 8371bb05-7cac-4d38-82c0-0f58c4f6f936).
	ClusterId string `json:"clusterId,omitempty"`
	// ValidationDetails: Required. The validation details of the OpenShift cluster
	// in JSON format.
	ValidationDetails googleapi.RawMessage `json:"validationDetails,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClusterId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClusterId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OpenShiftValidation) MarshalJSON() ([]byte, error) {
	type NoMethod OpenShiftValidation
	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 {
	// ApiVersion: Output only. API version used to start the operation.
	ApiVersion string `json:"apiVersion,omitempty"`
	// 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 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"`
	// Target: Output only. Server-defined resource path for the target of the
	// operation.
	Target string `json:"target,omitempty"`
	// Verb: Output only. Name of the verb executed by the operation.
	Verb string `json:"verb,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values 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)
}

// Pacemaker: Pacemaker configuration.
type Pacemaker struct {
	// BucketNameNodeCertificates: Required. Bucket location for node certificates.
	BucketNameNodeCertificates string `json:"bucketNameNodeCertificates,omitempty"`
	// PacemakerCluster: Required. Pacemaker cluster name.
	PacemakerCluster string `json:"pacemakerCluster,omitempty"`
	// PacemakerClusterSecret: Required. Pacemaker cluster secret name.
	PacemakerClusterSecret string `json:"pacemakerClusterSecret,omitempty"`
	// PacemakerClusterUsername: Required. Pacemaker cluster username.
	PacemakerClusterUsername string `json:"pacemakerClusterUsername,omitempty"`
	// SqlPacemakerSecret: Required. SQL Pacemaker secret name.
	SqlPacemakerSecret string `json:"sqlPacemakerSecret,omitempty"`
	// SqlPacemakerUsername: Required. SQL Pacemaker username.
	SqlPacemakerUsername string `json:"sqlPacemakerUsername,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BucketNameNodeCertificates")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BucketNameNodeCertificates") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Product: Contains the details of a product.
type Product struct {
	// Name: Optional. Name of the product.
	Name string `json:"name,omitempty"`
	// Version: Optional. Version of the product.
	Version string `json:"version,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 Product) MarshalJSON() ([]byte, error) {
	type NoMethod Product
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Resource: Resource in execution result.
type Resource struct {
	// Name: The name of the resource.
	Name string `json:"name,omitempty"`
	// ServiceAccount: The service account associated with the resource.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// Type: The type of resource.
	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 Resource) MarshalJSON() ([]byte, error) {
	type NoMethod Resource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourceFilter: Resource filter for an evaluation defining the scope of
// resources to be evaluated.
type ResourceFilter struct {
	// GceInstanceFilter: Filter compute engine resources.
	GceInstanceFilter *GceInstanceFilter `json:"gceInstanceFilter,omitempty"`
	// InclusionLabels: Labels to filter resources by. Each key-value pair in the
	// map must exist on the resource for it to be included (e.g. VM instance
	// labels). For example, specifying `{ "env": "prod", "database": "nosql" }`
	// will only include resources that have labels `env=prod` and
	// `database=nosql`.
	InclusionLabels map[string]string `json:"inclusionLabels,omitempty"`
	// ResourceIdPatterns: The pattern to filter resources by their id For example,
	// a pattern of ".*prod-cluster.*" will match all resources that contain
	// "prod-cluster" in their ID.
	ResourceIdPatterns []string `json:"resourceIdPatterns,omitempty"`
	// Scopes: The scopes of evaluation resource. Format: * `projects/{project_id}`
	// * `folders/{folder_id}` * `organizations/{organization_id}`
	Scopes []string `json:"scopes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GceInstanceFilter") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GceInstanceFilter") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ResourceStatus: The lifecycle status of an Evaluation resource.
type ResourceStatus struct {
	// State: State of the Evaluation resource.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state has not been populated in this message.
	//   "CREATING" - Resource has an active Create operation.
	//   "ACTIVE" - Resource has no outstanding operations on it or has active
	// Update operations.
	//   "DELETING" - Resource has an active Delete operation.
	State string `json:"state,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 ResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Rule: A rule to be evaluated.
type Rule struct {
	// AssetType: The CAI asset type of the rule is evaluating, for joined asset
	// types, it will be the corresponding primary asset types.
	AssetType string `json:"assetType,omitempty"`
	// Description: Describe rule in plain language.
	Description string `json:"description,omitempty"`
	// DisplayName: The name display in UI.
	DisplayName string `json:"displayName,omitempty"`
	// ErrorMessage: The message template for rule.
	ErrorMessage string `json:"errorMessage,omitempty"`
	// Name: Rule name.
	Name string `json:"name,omitempty"`
	// PrimaryCategory: The primary category.
	PrimaryCategory string `json:"primaryCategory,omitempty"`
	// Remediation: The remediation for the rule.
	Remediation string `json:"remediation,omitempty"`
	// RevisionId: Output only. The version of the rule.
	RevisionId string `json:"revisionId,omitempty"`
	// RuleType: The type of the rule.
	//
	// Possible values:
	//   "RULE_TYPE_UNSPECIFIED" - Not specified.
	//   "BASELINE" - Baseline rules.
	//   "CUSTOM" - Custom rules.
	RuleType string `json:"ruleType,omitempty"`
	// SecondaryCategory: The secondary category.
	SecondaryCategory string `json:"secondaryCategory,omitempty"`
	// Severity: The severity of the rule.
	Severity string `json:"severity,omitempty"`
	// Tags: List of user-defined tags.
	Tags []string `json:"tags,omitempty"`
	// Uri: The document url for the rule.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RuleExecutionResult: Execution result summary per rule.
type RuleExecutionResult struct {
	// Message: Execution message, if any.
	Message string `json:"message,omitempty"`
	// ResultCount: Number of violations.
	ResultCount int64 `json:"resultCount,omitempty,string"`
	// Rule: Rule name as plain text like `sap-hana-configured`.
	Rule string `json:"rule,omitempty"`
	// ScannedResourceCount: Number of total scanned resources.
	ScannedResourceCount int64 `json:"scannedResourceCount,omitempty,string"`
	// State: Output only. The execution status.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unknown state
	//   "STATE_SUCCESS" - Execution completed successfully
	//   "STATE_FAILURE" - Execution completed with failures
	//   "STATE_SKIPPED" - Execution was not executed
	State string `json:"state,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 RuleExecutionResult) MarshalJSON() ([]byte, error) {
	type NoMethod RuleExecutionResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RuleOutput: The rule output of the violation.
type RuleOutput struct {
	// Details: Output only. Violation details generated by rule.
	Details map[string]string `json:"details,omitempty"`
	// Message: Output only. The message generated by rule.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RunEvaluationRequest: Request message for the RunEvaluation RPC.
type RunEvaluationRequest struct {
	// Execution: Required. The resource being created.
	Execution *Execution `json:"execution,omitempty"`
	// ExecutionId: Required. ID of the execution which will be created.
	ExecutionId string `json:"executionId,omitempty"`
	// RequestId: Optional. An optional request ID to identify requests. Specify a
	// unique request ID so that if you must retry your request, the server will
	// know to ignore the request if it has already been completed. The server will
	// guarantee that for at least 60 minutes since the first request. For example,
	// consider a situation where you make an initial request and the request times
	// out. If you make the request again with the same request ID, the server can
	// check if original operation with the same request ID was received, and if
	// so, will ignore the second request. This prevents clients from accidentally
	// creating duplicate commitments. The request ID must be a valid UUID with the
	// exception that zero UUID is not supported
	// (00000000-0000-0000-0000-000000000000).
	RequestId string `json:"requestId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Execution") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Execution") to include in API
	// requests with the JSON null value. By default, fields with empty values 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)
}

// SapComponent: The component of sap workload
type SapComponent struct {
	// DatabaseProperties: Output only. All instance properties.
	DatabaseProperties *DatabaseProperties `json:"databaseProperties,omitempty"`
	// HaHosts: List of host URIs that are part of the HA configuration if present.
	// An empty list indicates the component is not configured for HA.
	HaHosts []string `json:"haHosts,omitempty"`
	// Resources: Output only. resources in the component
	Resources []*CloudResource `json:"resources,omitempty"`
	// Sid: Output only. sid is the sap component identificator
	Sid string `json:"sid,omitempty"`
	// TopologyType: The detected topology of the component.
	//
	// Possible values:
	//   "TOPOLOGY_TYPE_UNSPECIFIED" - Unspecified topology.
	//   "TOPOLOGY_SCALE_UP" - A scale-up single node system.
	//   "TOPOLOGY_SCALE_OUT" - A scale-out multi-node system.
	TopologyType string `json:"topologyType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DatabaseProperties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DatabaseProperties") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscovery: The schema of SAP system discovery data.
type SapDiscovery struct {
	// ApplicationLayer: Optional. An SAP system may run without an application
	// layer.
	ApplicationLayer *SapDiscoveryComponent `json:"applicationLayer,omitempty"`
	// DatabaseLayer: Required. An SAP System must have a database.
	DatabaseLayer *SapDiscoveryComponent `json:"databaseLayer,omitempty"`
	// Metadata: Optional. The metadata for SAP system discovery data.
	Metadata *SapDiscoveryMetadata `json:"metadata,omitempty"`
	// ProjectNumber: Optional. The GCP project number that this SapSystem belongs
	// to.
	ProjectNumber string `json:"projectNumber,omitempty"`
	// SystemId: Output only. A combination of database SID, database instance URI
	// and tenant DB name to make a unique identifier per-system.
	SystemId string `json:"systemId,omitempty"`
	// UpdateTime: Required. Unix timestamp this system has been updated last.
	UpdateTime string `json:"updateTime,omitempty"`
	// UseDrReconciliation: Optional. Whether to use DR reconciliation or not.
	UseDrReconciliation bool `json:"useDrReconciliation,omitempty"`
	// WorkloadProperties: Optional. The properties of the workload.
	WorkloadProperties *SapDiscoveryWorkloadProperties `json:"workloadProperties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationLayer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationLayer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryComponent: Message describing the system component.
type SapDiscoveryComponent struct {
	// ApplicationProperties: Optional. The component is a SAP application.
	ApplicationProperties *SapDiscoveryComponentApplicationProperties `json:"applicationProperties,omitempty"`
	// DatabaseProperties: Optional. The component is a SAP database.
	DatabaseProperties *SapDiscoveryComponentDatabaseProperties `json:"databaseProperties,omitempty"`
	// HaHosts: Optional. A list of host URIs that are part of the HA configuration
	// if present. An empty list indicates the component is not configured for HA.
	HaHosts []string `json:"haHosts,omitempty"`
	// HostProject: Required. Pantheon Project in which the resources reside.
	HostProject string `json:"hostProject,omitempty"`
	// Region: Optional. The region this component's resources are primarily
	// located in.
	Region string `json:"region,omitempty"`
	// ReplicationSites: Optional. A list of replication sites used in Disaster
	// Recovery (DR) configurations.
	ReplicationSites []*SapDiscoveryComponentReplicationSite `json:"replicationSites,omitempty"`
	// Resources: Optional. The resources in a component.
	Resources []*SapDiscoveryResource `json:"resources,omitempty"`
	// Sid: Optional. The SAP identifier, used by the SAP software and helps
	// differentiate systems for customers.
	Sid string `json:"sid,omitempty"`
	// TopologyType: Optional. The detected topology of the component.
	//
	// Possible values:
	//   "TOPOLOGY_TYPE_UNSPECIFIED" - Unspecified topology.
	//   "TOPOLOGY_SCALE_UP" - A scale-up single node system.
	//   "TOPOLOGY_SCALE_OUT" - A scale-out multi-node system.
	TopologyType string `json:"topologyType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationProperties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationProperties") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryComponentApplicationProperties: A set of properties describing
// an SAP Application layer.
type SapDiscoveryComponentApplicationProperties struct {
	// Abap: Optional. Deprecated: ApplicationType now tells you whether this is
	// ABAP or Java.
	Abap bool `json:"abap,omitempty"`
	// AppInstanceNumber: Optional. Instance number of the SAP application
	// instance.
	AppInstanceNumber string `json:"appInstanceNumber,omitempty"`
	// ApplicationType: Required. Type of the application. Netweaver, etc.
	//
	// Possible values:
	//   "APPLICATION_TYPE_UNSPECIFIED" - Unspecified application type
	//   "NETWEAVER" - SAP Netweaver
	//   "NETWEAVER_ABAP" - SAP Netweaver ABAP
	//   "NETWEAVER_JAVA" - SAP Netweaver Java
	ApplicationType string `json:"applicationType,omitempty"`
	// AscsInstanceNumber: Optional. Instance number of the ASCS instance.
	AscsInstanceNumber string `json:"ascsInstanceNumber,omitempty"`
	// AscsUri: Optional. Resource URI of the recognized ASCS host of the
	// application.
	AscsUri string `json:"ascsUri,omitempty"`
	// ErsInstanceNumber: Optional. Instance number of the ERS instance.
	ErsInstanceNumber string `json:"ersInstanceNumber,omitempty"`
	// KernelVersion: Optional. Kernel version for Netweaver running in the system.
	KernelVersion string `json:"kernelVersion,omitempty"`
	// NfsUri: Optional. Resource URI of the recognized shared NFS of the
	// application. May be empty if the application server has only a single node.
	NfsUri string `json:"nfsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Abap") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Abap") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryComponentDatabaseProperties: A set of properties describing an
// SAP Database layer.
type SapDiscoveryComponentDatabaseProperties struct {
	// DatabaseSid: Optional. SID of the system database.
	DatabaseSid string `json:"databaseSid,omitempty"`
	// DatabaseType: Required. Type of the database. HANA, DB2, etc.
	//
	// Possible values:
	//   "DATABASE_TYPE_UNSPECIFIED" - Unspecified database type.
	//   "HANA" - SAP HANA
	//   "MAX_DB" - SAP MAX_DB
	//   "DB2" - IBM DB2
	//   "ORACLE" - Oracle Database
	//   "SQLSERVER" - Microsoft SQL Server
	//   "ASE" - SAP Sybase ASE
	DatabaseType string `json:"databaseType,omitempty"`
	// DatabaseVersion: Optional. The version of the database software running in
	// the system.
	DatabaseVersion string `json:"databaseVersion,omitempty"`
	// InstanceNumber: Optional. Instance number of the SAP instance.
	InstanceNumber string `json:"instanceNumber,omitempty"`
	// LandscapeId: Optional. Landscape ID from the HANA nameserver.
	LandscapeId string `json:"landscapeId,omitempty"`
	// PrimaryInstanceUri: Required. URI of the recognized primary instance of the
	// database.
	PrimaryInstanceUri string `json:"primaryInstanceUri,omitempty"`
	// SharedNfsUri: Optional. URI of the recognized shared NFS of the database.
	// May be empty if the database has only a single node.
	SharedNfsUri string `json:"sharedNfsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DatabaseSid") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DatabaseSid") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryComponentReplicationSite: A replication site used in Disaster
// Recovery (DR) configurations.
type SapDiscoveryComponentReplicationSite struct {
	// Component: Optional. The system component for the site.
	Component *SapDiscoveryComponent `json:"component,omitempty"`
	// SourceSite: Optional. The name of the source site from which this one
	// replicates.
	SourceSite string `json:"sourceSite,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Component") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Component") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryMetadata: Message describing SAP discovery system metadata
type SapDiscoveryMetadata struct {
	// CustomerRegion: Optional. Customer region string for customer's use. Does
	// not represent GCP region.
	CustomerRegion string `json:"customerRegion,omitempty"`
	// DefinedSystem: Optional. Customer defined, something like "E-commerce pre
	// prod"
	DefinedSystem string `json:"definedSystem,omitempty"`
	// EnvironmentType: Optional. Should be "prod", "QA", "dev", "staging", etc.
	EnvironmentType string `json:"environmentType,omitempty"`
	// SapProduct: Optional. This SAP product name
	SapProduct string `json:"sapProduct,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerRegion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerRegion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryResource: Message describing a resource.
type SapDiscoveryResource struct {
	// InstanceProperties: Optional. A set of properties only applying to instance
	// type resources.
	InstanceProperties *SapDiscoveryResourceInstanceProperties `json:"instanceProperties,omitempty"`
	// RelatedResources: Optional. A list of resource URIs related to this
	// resource.
	RelatedResources []string `json:"relatedResources,omitempty"`
	// ResourceKind: Required. ComputeInstance, ComputeDisk, VPC, Bare Metal
	// server, etc.
	//
	// Possible values:
	//   "RESOURCE_KIND_UNSPECIFIED" - Unspecified resource kind.
	//   "RESOURCE_KIND_INSTANCE" - This is a compute instance.
	//   "RESOURCE_KIND_DISK" - This is a compute disk.
	//   "RESOURCE_KIND_ADDRESS" - This is a compute address.
	//   "RESOURCE_KIND_FILESTORE" - This is a filestore instance.
	//   "RESOURCE_KIND_HEALTH_CHECK" - This is a compute health check.
	//   "RESOURCE_KIND_FORWARDING_RULE" - This is a compute forwarding rule.
	//   "RESOURCE_KIND_BACKEND_SERVICE" - This is a compute backend service.
	//   "RESOURCE_KIND_SUBNETWORK" - This is a compute subnetwork.
	//   "RESOURCE_KIND_NETWORK" - This is a compute network.
	//   "RESOURCE_KIND_PUBLIC_ADDRESS" - This is a public accessible IP Address.
	//   "RESOURCE_KIND_INSTANCE_GROUP" - This is a compute instance group.
	ResourceKind string `json:"resourceKind,omitempty"`
	// ResourceType: Required. The type of this resource.
	//
	// Possible values:
	//   "RESOURCE_TYPE_UNSPECIFIED" - Undefined resource type.
	//   "RESOURCE_TYPE_COMPUTE" - This is a compute resource.
	//   "RESOURCE_TYPE_STORAGE" - This a storage resource.
	//   "RESOURCE_TYPE_NETWORK" - This is a network resource.
	ResourceType string `json:"resourceType,omitempty"`
	// ResourceUri: Required. URI of the resource, includes project, location, and
	// name.
	ResourceUri string `json:"resourceUri,omitempty"`
	// UpdateTime: Required. Unix timestamp of when this resource last had its
	// discovery data updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceProperties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceProperties") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryResourceInstanceProperties: A set of properties only present for
// an instance type resource
type SapDiscoveryResourceInstanceProperties struct {
	// AppInstances: Optional. App server instances on the host
	AppInstances []*SapDiscoveryResourceInstancePropertiesAppInstance `json:"appInstances,omitempty"`
	// ClusterInstances: Optional. A list of instance URIs that are part of a
	// cluster with this one.
	ClusterInstances []string `json:"clusterInstances,omitempty"`
	// DiskMounts: Optional. Disk mounts on the instance.
	DiskMounts []*SapDiscoveryResourceInstancePropertiesDiskMount `json:"diskMounts,omitempty"`
	// InstanceNumber: Optional. The VM's instance number.
	InstanceNumber int64 `json:"instanceNumber,omitempty,string"`
	// InstanceRole: Optional. Bitmask of instance role, a resource may have
	// multiple roles at once.
	//
	// Possible values:
	//   "INSTANCE_ROLE_UNSPECIFIED" - Unspecified instance role.
	//   "INSTANCE_ROLE_ASCS" - Application central services.
	//   "INSTANCE_ROLE_ERS" - Enqueue replication server.
	//   "INSTANCE_ROLE_APP_SERVER" - Application server.
	//   "INSTANCE_ROLE_DATABASE" - Database node.
	//   "INSTANCE_ROLE_ASCS_ERS" - Combinations of roles. Application central
	// services and enqueue replication server.
	//   "INSTANCE_ROLE_ASCS_APP_SERVER" - Application central services and
	// application server.
	//   "INSTANCE_ROLE_ASCS_DATABASE" - Application central services and database.
	//   "INSTANCE_ROLE_ERS_APP_SERVER" - Enqueue replication server and
	// application server.
	//   "INSTANCE_ROLE_ERS_DATABASE" - Enqueue replication server and database.
	//   "INSTANCE_ROLE_APP_SERVER_DATABASE" - Application server and database.
	//   "INSTANCE_ROLE_ASCS_ERS_APP_SERVER" - Application central services,
	// enqueue replication server and application server.
	//   "INSTANCE_ROLE_ASCS_ERS_DATABASE" - Application central services, enqueue
	// replication server and database.
	//   "INSTANCE_ROLE_ASCS_APP_SERVER_DATABASE" - Application central services,
	// application server and database.
	//   "INSTANCE_ROLE_ERS_APP_SERVER_DATABASE" - Enqueue replication server,
	// application server and database.
	//   "INSTANCE_ROLE_ASCS_ERS_APP_SERVER_DATABASE" - Application central
	// services, enqueue replication server, application server and database.
	InstanceRole string `json:"instanceRole,omitempty"`
	// IsDrSite: Optional. Instance is part of a DR site.
	IsDrSite bool `json:"isDrSite,omitempty"`
	// OsKernelVersion: Optional. The kernel version of the instance.
	OsKernelVersion *SapDiscoveryResourceInstancePropertiesKernelVersion `json:"osKernelVersion,omitempty"`
	// VirtualHostname: Optional. A virtual hostname of the instance if it has one.
	VirtualHostname string `json:"virtualHostname,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppInstances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppInstances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryResourceInstancePropertiesAppInstance: Fields to describe an SAP
// application server instance.
type SapDiscoveryResourceInstancePropertiesAppInstance struct {
	// Name: Optional. Instance name of the SAP application instance.
	Name string `json:"name,omitempty"`
	// Number: Optional. Instance number of the SAP application instance.
	Number string `json:"number,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 SapDiscoveryResourceInstancePropertiesAppInstance) MarshalJSON() ([]byte, error) {
	type NoMethod SapDiscoveryResourceInstancePropertiesAppInstance
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SapDiscoveryResourceInstancePropertiesDiskMount: Disk mount on the instance.
type SapDiscoveryResourceInstancePropertiesDiskMount struct {
	// DiskNames: Optional. Names of the disks providing this mount point.
	DiskNames []string `json:"diskNames,omitempty"`
	// MountPoint: Optional. Filesystem mount point.
	MountPoint string `json:"mountPoint,omitempty"`
	// Name: Optional. Name of the disk.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskNames") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskNames") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryResourceInstancePropertiesKernelVersion: KernelVersion
// encapsulates the kernel version data for the system.
type SapDiscoveryResourceInstancePropertiesKernelVersion struct {
	// DistroKernel: Optional. Captures the distro-specific kernel version, the
	// portion of the string following the first dash.
	DistroKernel *SapDiscoveryResourceInstancePropertiesKernelVersionVersion `json:"distroKernel,omitempty"`
	// OsKernel: Optional. Captures the OS-specific kernel version, the portion of
	// the string up to the first dash.
	OsKernel *SapDiscoveryResourceInstancePropertiesKernelVersionVersion `json:"osKernel,omitempty"`
	// RawString: Optional. Raw string of the kernel version.
	RawString string `json:"rawString,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DistroKernel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DistroKernel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryResourceInstancePropertiesKernelVersionVersion: Version is
// reported as Major.Minor.Build.Patch.
type SapDiscoveryResourceInstancePropertiesKernelVersionVersion struct {
	// Build: Optional. The build version number.
	Build int64 `json:"build,omitempty"`
	// Major: Optional. The major version number.
	Major int64 `json:"major,omitempty"`
	// Minor: Optional. The minor version number.
	Minor int64 `json:"minor,omitempty"`
	// Patch: Optional. The patch version number.
	Patch int64 `json:"patch,omitempty"`
	// Remainder: Optional. A catch-all for any unparsed version components. This
	// is in case the number of points in the version string exceeds the expected
	// count of 4.
	Remainder string `json:"remainder,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Build") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Build") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryWorkloadProperties: A set of properties describing an SAP
// workload.
type SapDiscoveryWorkloadProperties struct {
	// ProductVersions: Optional. List of SAP Products and their versions running
	// on the system.
	ProductVersions []*SapDiscoveryWorkloadPropertiesProductVersion `json:"productVersions,omitempty"`
	// SoftwareComponentVersions: Optional. A list of SAP software components and
	// their versions running on the system.
	SoftwareComponentVersions []*SapDiscoveryWorkloadPropertiesSoftwareComponentProperties `json:"softwareComponentVersions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProductVersions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductVersions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapDiscoveryWorkloadPropertiesProductVersion: A product name and version.
type SapDiscoveryWorkloadPropertiesProductVersion struct {
	// Name: Optional. Name of the product.
	Name string `json:"name,omitempty"`
	// Version: Optional. Version of the product.
	Version string `json:"version,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 SapDiscoveryWorkloadPropertiesProductVersion) MarshalJSON() ([]byte, error) {
	type NoMethod SapDiscoveryWorkloadPropertiesProductVersion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SapDiscoveryWorkloadPropertiesSoftwareComponentProperties: A SAP software
// component name, version, and type.
type SapDiscoveryWorkloadPropertiesSoftwareComponentProperties struct {
	// ExtVersion: Optional. The component's minor version.
	ExtVersion string `json:"extVersion,omitempty"`
	// Name: Optional. Name of the component.
	Name string `json:"name,omitempty"`
	// Type: Optional. The component's type.
	Type string `json:"type,omitempty"`
	// Version: Optional. The component's major version.
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExtVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExtVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapInstanceProperties: SAP instance properties.
type SapInstanceProperties struct {
	// AgentStates: Optional. Sap Instance Agent status.
	AgentStates *AgentStates `json:"agentStates,omitempty"`
	// Numbers: Optional. SAP Instance numbers. They are from '00' to '99'.
	Numbers []string `json:"numbers,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentStates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentStates") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapSystemS4Config: Message for SAP system workload.
type SapSystemS4Config struct {
	AllowStoppingForUpdate bool `json:"allowStoppingForUpdate,omitempty"`
	// AnsibleRunnerServiceAccount: Ansible runner service account. Let customers
	// bring their own service account for the Ansible runner.
	AnsibleRunnerServiceAccount string `json:"ansibleRunnerServiceAccount,omitempty"`
	// App: Instance details.
	App *AppDetails `json:"app,omitempty"`
	// Database: Database details.
	Database *DatabaseDetails `json:"database,omitempty"`
	// DeploymentModel: Required. Supports non-HA and HA models.
	//
	// Possible values:
	//   "DEPLOYMENT_MODEL_UNSPECIFIED"
	//   "DISTRIBUTED"
	//   "DISTRIBUTED_HA"
	DeploymentModel string `json:"deploymentModel,omitempty"`
	// EnvironmentType: Required. Deployment environment.
	//
	// Possible values:
	//   "ENVIRONMENT_TYPE_UNSPECIFIED" - Unspecified environment type.
	//   "NON_PRODUCTION" - Non-production environment type.
	//   "PRODUCTION" - Production environment type.
	EnvironmentType string `json:"environmentType,omitempty"`
	// GcpProjectId: The project that infrastructure is deployed in. Currently only
	// supports the same project where the deployment resource exists.
	GcpProjectId string `json:"gcpProjectId,omitempty"`
	// Location: Database details.
	Location *LocationDetails `json:"location,omitempty"`
	// MediaBucketName: Required. Media bucket name.
	MediaBucketName string `json:"mediaBucketName,omitempty"`
	// SapBootDiskImage: Optional. SAP boot disk image.
	SapBootDiskImage string `json:"sapBootDiskImage,omitempty"`
	// ScalingMethod: Required. Supports scale up and scale out.
	//
	// Possible values:
	//   "SCALE_METHOD_UNSPECIFIED"
	//   "SCALE_UP" - Scale up: Increases the size of a physical machine by
	// increasing the amount of RAM and CPU available for processing.
	//   "SCALE_OUT" - Scale out: Combines multiple independent computers into one
	// system.
	ScalingMethod string `json:"scalingMethod,omitempty"`
	// Version: Required. SAP HANA version.
	//
	// Possible values:
	//   "VERSION_UNSPECIFIED"
	//   "S4_HANA_2021"
	//   "S4_HANA_2022"
	//   "S4_HANA_2023"
	Version string `json:"version,omitempty"`
	// VmPrefix: VM prefix.
	VmPrefix string `json:"vmPrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowStoppingForUpdate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowStoppingForUpdate") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapValidation: A presentation of SAP workload insight. The schema of SAP
// workloads validation related data.
type SapValidation struct {
	// ProjectId: Required. The project_id of the cloud project that the Insight
	// data comes from.
	ProjectId string `json:"projectId,omitempty"`
	// ValidationDetails: Optional. A list of SAP validation metrics data.
	ValidationDetails []*SapValidationValidationDetail `json:"validationDetails,omitempty"`
	// Zone: Optional. The zone of the instance that the Insight data comes from.
	Zone string `json:"zone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProjectId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProjectId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapValidationValidationDetail: Message describing the SAP validation
// metrics.
type SapValidationValidationDetail struct {
	// Details: Optional. The pairs of metrics data: field name & field value.
	Details map[string]string `json:"details,omitempty"`
	// IsPresent: Optional. Was there a SAP system detected for this validation
	// type.
	IsPresent bool `json:"isPresent,omitempty"`
	// SapValidationType: Optional. The SAP system that the validation data is
	// from.
	//
	// Possible values:
	//   "SAP_VALIDATION_TYPE_UNSPECIFIED" - Unspecified type.
	//   "SYSTEM" - The SYSTEM validation type collects underlying system data from
	// the VM.
	//   "COROSYNC" - The COROSYNC validation type collects Corosync configuration
	// and runtime data. Corosync enables servers to interact as a HA cluster.
	//   "PACEMAKER" - The PACEMAKER validation type collects Pacemaker
	// configuration data. Pacemaker is a high-availability cluster resource
	// manager.
	//   "HANA" - The HANA validation type collects HANA configuration data. SAP
	// HANA is an in-memory, column-oriented, relational database management
	// system.
	//   "NETWEAVER" - The NETWEAVER validation type collects NetWeaver
	// configuration data. SAP NetWeaver is a software stack for many of SAP SE's
	// applications.
	//   "HANA_SECURITY" - The HANA_SECURITY validation type collects HANA
	// configuration data as it relates to SAP security best practices.
	//   "CUSTOM" - The CUSTOM validation type collects any customer-defined data
	// that does not fall into any of the other categories of validations.
	SapValidationType string `json:"sapValidationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SapWorkload: The body of sap workload
type SapWorkload struct {
	// Application: Output only. application component
	Application *SapComponent `json:"application,omitempty"`
	// Architecture: Output only. The architecture.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Unspecified architecture.
	//   "INVALID" - Invaliad architecture.
	//   "CENTRALIZED" - A centralized system.
	//   "DISTRIBUTED" - A distributed system.
	//   "DISTRIBUTED_HA" - A distributed with HA system.
	//   "STANDALONE_DATABASE" - A standalone database system.
	//   "STANDALONE_DATABASE_HA" - A standalone database with HA system.
	Architecture string `json:"architecture,omitempty"`
	// Database: Output only. database component
	Database *SapComponent `json:"database,omitempty"`
	// Metadata: Output only. The metadata for SAP workload.
	Metadata map[string]string `json:"metadata,omitempty"`
	// Products: Output only. The products on this workload.
	Products []*Product `json:"products,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Application") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Application") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// ServiceStates: The state of the service.
type ServiceStates struct {
	// IamPermissions: Optional. Output only. The IAM permissions for the service.
	IamPermissions []*IAMPermission `json:"iamPermissions,omitempty"`
	// State: Output only. The overall state of the service.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is unspecified.
	//   "CONFIG_FAILURE" - The state means the service has config errors.
	//   "IAM_FAILURE" - The state means the service has IAM permission errors.
	//   "FUNCTIONALITY_FAILURE" - The state means the service has functionality
	// errors.
	//   "ENABLED" - The state means the service has no error.
	//   "DISABLED" - The state means the service disabled.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IamPermissions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IamPermissions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ShellCommand: A ShellCommand is invoked via the agent's command line
// executor.
type ShellCommand struct {
	// Args: Arguments to be passed to the command.
	Args string `json:"args,omitempty"`
	// Command: The name of the command to be executed.
	Command string `json:"command,omitempty"`
	// TimeoutSeconds: Optional. If not specified, the default timeout is 60
	// seconds.
	TimeoutSeconds int64 `json:"timeoutSeconds,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 ShellCommand) MarshalJSON() ([]byte, error) {
	type NoMethod ShellCommand
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SqlLocationDetails: Location and networking details for configuring SQL
// server workload.
type SqlLocationDetails struct {
	// DnsZone: Optional. Create a new DNS zone when the field is empty. Only shown
	// for `Using an existing DNS`. List of existing DNS zones. Terraform variable
	// name: existing_dns_zone_name.
	DnsZone string `json:"dnsZone,omitempty"`
	// GcpProjectId: Required. The project that infrastructure is deployed in.
	// Currently only supports the same project where the deployment resource
	// exists.
	GcpProjectId string `json:"gcpProjectId,omitempty"`
	// InternetAccess: Required. Internet Access.
	//
	// Possible values:
	//   "INTERNET_ACCESS_UNSPECIFIED" - Unspecified internet access.
	//   "ALLOW_EXTERNAL_IP" - Allow external IP.
	//   "CONFIGURE_NAT" - Configure NAT.
	InternetAccess string `json:"internetAccess,omitempty"`
	// Network: Required. Network name.
	Network string `json:"network,omitempty"`
	// PrimaryZone: Required. Primary zone.
	PrimaryZone string `json:"primaryZone,omitempty"`
	// Region: Required. Region name.
	Region string `json:"region,omitempty"`
	// SecondaryZone: Optional. Secondary zone cannot be the same as primary_zone
	// and is only for High Availability deployment mode.
	SecondaryZone string `json:"secondaryZone,omitempty"`
	// Subnetwork: Required. Subnetwork name.
	Subnetwork string `json:"subnetwork,omitempty"`
	// TertiaryZone: Optional. Tertiary zone cannot be the same as primary_zone and
	// secondary_zone, and it is only for High Availability deployment mode.
	TertiaryZone string `json:"tertiaryZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DnsZone") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DnsZone") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SqlServerWorkload: Message for MS SQL workload.
type SqlServerWorkload struct {
	// ActiveDirectory: Required. Active Directory details.
	ActiveDirectory *ActiveDirectory `json:"activeDirectory,omitempty"`
	// ComputeEngineServiceAccount: Compute Engine service account. Let customers
	// bring their own service account for Compute Engine.
	ComputeEngineServiceAccount string `json:"computeEngineServiceAccount,omitempty"`
	// Database: Required. Database details.
	Database *Database `json:"database,omitempty"`
	// DeploymentModel: Required. HIGH_AVAILABILITY or SINGLE_INSTANCE.
	//
	// Possible values:
	//   "DEPLOYMENT_MODEL_UNSPECIFIED" - Unspecified deployment model.
	//   "HIGH_AVAILABILITY" - High Availability deployment model.
	//   "SINGLE_INSTANCE" - Single instance deployment model.
	DeploymentModel string `json:"deploymentModel,omitempty"`
	// EnvironmentType: Required. Deployment environment.
	//
	// Possible values:
	//   "ENVIRONMENT_TYPE_UNSPECIFIED" - Unspecified environment type.
	//   "NON_PRODUCTION" - Non-production environment type.
	//   "PRODUCTION" - Production environment type.
	EnvironmentType string `json:"environmentType,omitempty"`
	// FciType: Optional. SHARED_DISK or S2D.
	//
	// Possible values:
	//   "FCI_TYPE_UNSPECIFIED" - Unspecified FCI type.
	//   "SHARED_DISK" - SHARED DISK FCI type.
	//   "S2D" - S2D FCI type.
	FciType string `json:"fciType,omitempty"`
	// HaType: Optional. AOAG or FCI. It is only needed for the High Availability
	// deployment mode.
	//
	// Possible values:
	//   "HA_TYPE_UNSPECIFIED" - Unspecified HA type.
	//   "AOAG" - AOAG HA type.
	//   "FCI" - FCI HA type.
	HaType string `json:"haType,omitempty"`
	// IsSqlPayg: Required. SQL licensing type.
	IsSqlPayg bool `json:"isSqlPayg,omitempty"`
	// Location: Required. Location details.
	Location *SqlLocationDetails `json:"location,omitempty"`
	// MediaBucket: Required. Name of the media storing SQL server installation
	// files.
	MediaBucket string `json:"mediaBucket,omitempty"`
	// OperatingSystemType: Required. The type of the operating system the SQL
	// server is going to run on top of.
	//
	// Possible values:
	//   "OPERATING_SYSTEM_TYPE_UNSPECIFIED" - Unspecified operating system type.
	//   "WINDOWS" - Windows operating system type.
	//   "UBUNTU" - Ubuntu operating system type.
	//   "RED_HAT_ENTERPRISE_LINUX" - Red Hat Enterprise Linux operating system
	// type.
	//   "SUSE" - SUSE operating system type.
	OperatingSystemType string `json:"operatingSystemType,omitempty"`
	// OsImage: Required. The image of the operating system.
	OsImage string `json:"osImage,omitempty"`
	// OsImageType: Optional. OS image type. It's used to create boot disks for VM
	// instances. When either Windows licensing type or SQL licensing type is BYOL,
	// this option is disabled and defaults to a custom image.
	//
	// Possible values:
	//   "OS_IMAGE_TYPE_UNSPECIFIED" - Unspecified OS image type.
	//   "PUBLIC_IMAGE" - Public image.
	//   "CUSTOM_IMAGE" - Custom image.
	OsImageType string `json:"osImageType,omitempty"`
	// Pacemaker: Optional. Pacemaker configuration, only applicable for Linux HA
	// deployments.
	Pacemaker *Pacemaker `json:"pacemaker,omitempty"`
	// SqlServerEdition: Optional. SQL Server Edition type, only applicable when
	// the operating system is Linux.
	//
	// Possible values:
	//   "SQL_SERVER_EDITION_TYPE_UNSPECIFIED" - Unspecified type.
	//   "SQL_SERVER_EDITION_TYPE_DEVELOPER" - Developer type.
	//   "SQL_SERVER_EDITION_TYPE_ENTERPRISE" - Enterprise type.
	//   "SQL_SERVER_EDITION_TYPE_STANDARD" - Standard type.
	//   "SQL_SERVER_EDITION_TYPE_WEB" - Web type.
	SqlServerEdition string `json:"sqlServerEdition,omitempty"`
	// SqlServerVersion: Optional. 2017, 2019, or 2022.
	//
	// Possible values:
	//   "SQL_SERVER_VERSION_TYPE_UNSPECIFIED" - Unspecified type.
	//   "SQL_SERVER_VERSION_TYPE_2017" - 2017 type.
	//   "SQL_SERVER_VERSION_TYPE_2019" - 2019 type.
	//   "SQL_SERVER_VERSION_TYPE_2022" - 2022 type.
	SqlServerVersion string `json:"sqlServerVersion,omitempty"`
	// VmPrefix: Required. Should be unique in the project.
	VmPrefix string `json:"vmPrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActiveDirectory") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActiveDirectory") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SqlserverValidation: A presentation of SQLServer workload insight. The
// schema of SqlServer workloads validation related data.
type SqlserverValidation struct {
	// AgentVersion: Optional. The agent version collected this data point
	AgentVersion string `json:"agentVersion,omitempty"`
	// Instance: Required. The instance_name of the instance that the Insight data
	// comes from. According to https://linter.aip.dev/122/name-suffix: field names
	// should not use the _name suffix unless the field would be ambiguous without
	// it.
	Instance string `json:"instance,omitempty"`
	// ProjectId: Required. The project_id of the cloud project that the Insight
	// data comes from.
	ProjectId string `json:"projectId,omitempty"`
	// ValidationDetails: Optional. A list of SqlServer validation metrics data.
	ValidationDetails []*SqlserverValidationValidationDetail `json:"validationDetails,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// SqlserverValidationValidationDetail: Message describing the Sqlserver
// validation metrics.
type SqlserverValidationValidationDetail struct {
	// Details: Required. Details wraps map that represents collected data names
	// and values.
	Details []*SqlserverValidationDetails `json:"details,omitempty"`
	// Type: Optional. The Sqlserver system that the validation data is from.
	//
	// Possible values:
	//   "SQLSERVER_VALIDATION_TYPE_UNSPECIFIED" - Unspecified type.
	//   "OS" - The Sqlserver system named OS.
	//   "DB_LOG_DISK_SEPARATION" - The LOG_DISK_SEPARATION table.
	//   "DB_MAX_PARALLELISM" - The MAX_PARALLELISM table.
	//   "DB_CXPACKET_WAITS" - The CXPACKET_WAITS table.
	//   "DB_TRANSACTION_LOG_HANDLING" - The TRANSACTION_LOG_HANDLING table.
	//   "DB_VIRTUAL_LOG_FILE_COUNT" - The VIRTUAL_LOG_FILE_COUNT table.
	//   "DB_BUFFER_POOL_EXTENSION" - The BUFFER_POOL_EXTENSION table.
	//   "DB_MAX_SERVER_MEMORY" - The MAX_SERVER_MEMORY table.
	//   "INSTANCE_METRICS" - The INSTANCE_METRICS table.
	//   "DB_INDEX_FRAGMENTATION" - The DB_INDEX_FRAGMENTATION table.
	//   "DB_TABLE_INDEX_COMPRESSION" - The DB_TABLE_INDEX_COMPRESSION table.
	//   "DB_BACKUP_POLICY" - The DB_BACKUP_POLICY table.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SqlserverValidationValidationDetail) MarshalJSON() ([]byte, error) {
	type NoMethod SqlserverValidationValidationDetail
	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)
}

// Summary: Execution summary.
type Summary struct {
	// Failures: Output only. Number of failures.
	Failures int64 `json:"failures,omitempty,string"`
	// NewFailures: Output only. Number of new failures compared to the previous
	// execution.
	NewFailures int64 `json:"newFailures,omitempty,string"`
	// NewFixes: Output only. Number of new fixes compared to the previous
	// execution.
	NewFixes int64 `json:"newFixes,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Failures") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Failures") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TerraformVariable: In order to align with the Infra Manager dependency, we
// create the same TerraformVariable message to represent a Terraform input
// variable, by following Infra Manager's API documentation:
// https://cloud.google.com/infrastructure-manager/docs/reference/rest. A
// Terraform input variable.
type TerraformVariable struct {
	// InputValue: Optional. Input variable value.
	InputValue interface{} `json:"inputValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InputValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InputValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TorsoValidation: The schema of torso workload validation data.
type TorsoValidation struct {
	// AgentVersion: Required. agent_version lists the version of the agent that
	// collected this data.
	AgentVersion string `json:"agentVersion,omitempty"`
	// InstanceName: Optional. instance_name lists the human readable name of the
	// instance that the data comes from.
	InstanceName string `json:"instanceName,omitempty"`
	// ProjectId: Required. project_id lists the human readable cloud project that
	// the data comes from.
	ProjectId string `json:"projectId,omitempty"`
	// ValidationDetails: Required. validation_details contains the pairs of
	// validation data: field name & field value.
	ValidationDetails map[string]string `json:"validationDetails,omitempty"`
	// WorkloadType: Required. workload_type specifies the type of torso workload.
	//
	// Possible values:
	//   "WORKLOAD_TYPE_UNSPECIFIED" - Unspecified workload type.
	//   "MYSQL" - MySQL workload.
	//   "ORACLE" - Oracle workload.
	//   "REDIS" - Redis workload.
	WorkloadType string `json:"workloadType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// UpcomingMaintenanceEvent: Maintenance Event
type UpcomingMaintenanceEvent struct {
	// EndTime: Optional. End time
	EndTime string `json:"endTime,omitempty"`
	// MaintenanceStatus: Optional. Maintenance status
	MaintenanceStatus string `json:"maintenanceStatus,omitempty"`
	// OnHostMaintenance: Optional. Instance maintenance behavior. Could be
	// `MIGRATE` or `TERMINATE`.
	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
	// StartTime: Optional. Start time
	StartTime string `json:"startTime,omitempty"`
	// Type: Optional. Type
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ViolationDetails: The violation in an evaluation result.
type ViolationDetails struct {
	// Asset: The name of the asset.
	Asset string `json:"asset,omitempty"`
	// Observed: Details of the violation.
	Observed map[string]string `json:"observed,omitempty"`
	// RuleOutput: Output only. The rule output of the violation.
	RuleOutput []*RuleOutput `json:"ruleOutput,omitempty"`
	// ServiceAccount: The service account associated with the resource.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WorkloadProfile: Workload resource.
type WorkloadProfile struct {
	// Labels: Optional. such as name, description, version. More example can be
	// found in deployment
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Identifier. name of resource names have the form
	// 'projects/{project_id}/locations/{location}/workloadProfiles/{workload_id}'
	Name string `json:"name,omitempty"`
	// RefreshedTime: Required. time when the workload data was refreshed
	RefreshedTime string `json:"refreshedTime,omitempty"`
	// SapWorkload: The sap workload content
	SapWorkload *SapWorkload `json:"sapWorkload,omitempty"`
	// WorkloadType: Required. The type of the workload
	//
	// Possible values:
	//   "WORKLOAD_TYPE_UNSPECIFIED" - unspecified workload type
	//   "S4_HANA" - running sap workload s4/hana
	WorkloadType string `json:"workloadType,omitempty"`

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

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

// WorkloadProfileHealth: WorkloadProfileHealth contains the detailed health
// check of workload.
type WorkloadProfileHealth struct {
	// CheckTime: The time when the health check was performed.
	CheckTime string `json:"checkTime,omitempty"`
	// ComponentsHealth: The detailed condition reports of each component.
	ComponentsHealth []*ComponentHealth `json:"componentsHealth,omitempty"`
	// State: Output only. The health state of the workload.
	//
	// Possible values:
	//   "HEALTH_STATE_UNSPECIFIED" - Unspecified.
	//   "HEALTHY" - Healthy workload.
	//   "UNHEALTHY" - Unhealthy workload.
	//   "CRITICAL" - Has critical issues.
	//   "UNSUPPORTED" - Unsupported.
	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. "CheckTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CheckTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WriteInsightRequest: Request for sending the data insights.
type WriteInsightRequest struct {
	// AgentVersion: Optional. The agent version collected this data point.
	AgentVersion string `json:"agentVersion,omitempty"`
	// Insight: Required. The metrics data details.
	Insight *Insight `json:"insight,omitempty"`
	// RequestId: Optional. An optional request ID to identify requests. Specify a
	// unique request ID so that if you must retry your request, the server will
	// know to ignore the request if it has already been completed. The server will
	// guarantee that for at least 60 minutes since the first request. For example,
	// consider a situation where you make an initial request and the request times
	// out. If you make the request again with the same request ID, the server can
	// check if original operation with the same request ID was received, and if
	// so, will ignore the second request. This prevents clients from accidentally
	// creating duplicate commitments. The request ID must be a valid UUID with the
	// exception that zero UUID is not supported
	// (00000000-0000-0000-0000-000000000000).
	RequestId string `json:"requestId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WriteInsightResponse: The response for write insights request.
type WriteInsightResponse struct {
	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
}

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

// Do executes the "workloadmanager.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", "workloadmanager.projects.locations.get", "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, "v1/{+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", "workloadmanager.projects.locations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.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", "workloadmanager.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 ProjectsLocationsDeploymentsCreateCall struct {
	s          *Service
	parent     string
	deployment *Deployment
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new Deployment in a given project and location.
//
//   - parent: The resource prefix of the Deployment using the form:
//     `projects/{project_id}/locations/{location_id}`.
func (r *ProjectsLocationsDeploymentsService) Create(parent string, deployment *Deployment) *ProjectsLocationsDeploymentsCreateCall {
	c := &ProjectsLocationsDeploymentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.deployment = deployment
	return c
}

// DeploymentId sets the optional parameter "deploymentId": Required. ID of the
// deployment.
func (c *ProjectsLocationsDeploymentsCreateCall) DeploymentId(deploymentId string) *ProjectsLocationsDeploymentsCreateCall {
	c.urlParams_.Set("deploymentId", deploymentId)
	return c
}

// RequestId sets the optional parameter "requestId": An optional request ID to
// identify requests. Specify a unique request ID so that if you must retry
// your request, the server will know to ignore the request if it has already
// been completed. The server will guarantee that for at least 60 minutes since
// the first request. For example, consider a situation where you make an
// initial request and the request times out. If you make the request again
// with the same request ID, the server can check if original operation with
// the same request ID was received, and if so, will ignore the second request.
// This prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsDeploymentsCreateCall) RequestId(requestId string) *ProjectsLocationsDeploymentsCreateCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

func (c *ProjectsLocationsDeploymentsCreateCall) 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, "v1/{+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", "workloadmanager.projects.locations.deployments.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.deployments.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 *ProjectsLocationsDeploymentsCreateCall) 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", "workloadmanager.projects.locations.deployments.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes a single Deployment.
//
// - name: Name of the resource.
func (r *ProjectsLocationsDeploymentsService) Delete(name string) *ProjectsLocationsDeploymentsDeleteCall {
	c := &ProjectsLocationsDeploymentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Force sets the optional parameter "force": If set to true, any actuation
// will also be deleted. Follows the best practice from
// https://aip.dev/135#cascading-delete.
func (c *ProjectsLocationsDeploymentsDeleteCall) Force(force bool) *ProjectsLocationsDeploymentsDeleteCall {
	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 *ProjectsLocationsDeploymentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDeploymentsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

// Do executes the "workloadmanager.projects.locations.deployments.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 *ProjectsLocationsDeploymentsDeleteCall) 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", "workloadmanager.projects.locations.deployments.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets details of a single Deployment.
//
//   - name: Name of the resource. The format is
//     'projects/{project_id}/locations/{location_id}/deployments/{deployment_id}'
//     .
func (r *ProjectsLocationsDeploymentsService) Get(name string) *ProjectsLocationsDeploymentsGetCall {
	c := &ProjectsLocationsDeploymentsGetCall{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 *ProjectsLocationsDeploymentsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDeploymentsGetCall {
	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 *ProjectsLocationsDeploymentsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDeploymentsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

// Do executes the "workloadmanager.projects.locations.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 *ProjectsLocationsDeploymentsGetCall) 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", "workloadmanager.projects.locations.deployments.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// List: Lists Deployments in a given project and location.
//
//   - parent: The resource prefix of the Deployment using the form:
//     `projects/{project_id}/locations/{location_id}`.
func (r *ProjectsLocationsDeploymentsService) List(parent string) *ProjectsLocationsDeploymentsListCall {
	c := &ProjectsLocationsDeploymentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter resource following
// https://google.aip.dev/160.
func (c *ProjectsLocationsDeploymentsListCall) Filter(filter string) *ProjectsLocationsDeploymentsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. See
// https://google.aip.dev/132#ordering for more details.
func (c *ProjectsLocationsDeploymentsListCall) OrderBy(orderBy string) *ProjectsLocationsDeploymentsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": Requested page size. Server
// may return fewer items than requested. The maximum value is 1000; values
// above 1000 will be coerced to 1000.
func (c *ProjectsLocationsDeploymentsListCall) PageSize(pageSize int64) *ProjectsLocationsDeploymentsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsDeploymentsListCall) PageToken(pageToken string) *ProjectsLocationsDeploymentsListCall {
	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 *ProjectsLocationsDeploymentsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDeploymentsListCall {
	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 *ProjectsLocationsDeploymentsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDeploymentsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

// Do executes the "workloadmanager.projects.locations.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 *ProjectsLocationsDeploymentsListCall) 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", "workloadmanager.projects.locations.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 *ProjectsLocationsDeploymentsListCall) 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 ProjectsLocationsDeploymentsActuationsCreateCall struct {
	s          *Service
	parent     string
	actuation  *Actuation
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new actuation for an existing Deployment.
//
//   - parent: The resource name of the Actuation location using the form:
//     'projects/{project_id}/locations/{location}/deployments/{deployment}'.
func (r *ProjectsLocationsDeploymentsActuationsService) Create(parent string, actuation *Actuation) *ProjectsLocationsDeploymentsActuationsCreateCall {
	c := &ProjectsLocationsDeploymentsActuationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.actuation = actuation
	return c
}

// RequestId sets the optional parameter "requestId": An optional request ID to
// identify requests. Specify a unique request ID so that if you must retry
// your request, the server will know to ignore the request if it has already
// been completed. The server will guarantee that for at least 60 minutes since
// the first request. For example, consider a situation where you make an
// initial request and the request times out. If you make the request again
// with the same request ID, the server can check if original operation with
// the same request ID was received, and if so, will ignore the second request.
// This prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsDeploymentsActuationsCreateCall) RequestId(requestId string) *ProjectsLocationsDeploymentsActuationsCreateCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

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

// Do executes the "workloadmanager.projects.locations.deployments.actuations.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 *ProjectsLocationsDeploymentsActuationsCreateCall) 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", "workloadmanager.projects.locations.deployments.actuations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes a single Actuation.
//
//   - name: The name of the actuation to delete.
//     projects/{project}/locations/{location}/deployments/{deployment}/actuations
//     /{actuation}.
func (r *ProjectsLocationsDeploymentsActuationsService) Delete(name string) *ProjectsLocationsDeploymentsActuationsDeleteCall {
	c := &ProjectsLocationsDeploymentsActuationsDeleteCall{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 *ProjectsLocationsDeploymentsActuationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDeploymentsActuationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *ProjectsLocationsDeploymentsActuationsDeleteCall) 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, "v1/{+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", "workloadmanager.projects.locations.deployments.actuations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.deployments.actuations.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 *ProjectsLocationsDeploymentsActuationsDeleteCall) 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", "workloadmanager.projects.locations.deployments.actuations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets details of a single Actuation.
//
// - name: Name of the resource.
func (r *ProjectsLocationsDeploymentsActuationsService) Get(name string) *ProjectsLocationsDeploymentsActuationsGetCall {
	c := &ProjectsLocationsDeploymentsActuationsGetCall{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 *ProjectsLocationsDeploymentsActuationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDeploymentsActuationsGetCall {
	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 *ProjectsLocationsDeploymentsActuationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDeploymentsActuationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

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

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

// List: Lists Actuations in a given project, location and deployment.
//
//   - parent: The resource prefix of the Actuation using the form:
//     'projects/{project_id}/locations/{location}/deployments/{deployment}'.
func (r *ProjectsLocationsDeploymentsActuationsService) List(parent string) *ProjectsLocationsDeploymentsActuationsListCall {
	c := &ProjectsLocationsDeploymentsActuationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filtering results.
func (c *ProjectsLocationsDeploymentsActuationsListCall) Filter(filter string) *ProjectsLocationsDeploymentsActuationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

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

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsDeploymentsActuationsListCall) PageToken(pageToken string) *ProjectsLocationsDeploymentsActuationsListCall {
	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 *ProjectsLocationsDeploymentsActuationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDeploymentsActuationsListCall {
	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 *ProjectsLocationsDeploymentsActuationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDeploymentsActuationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *ProjectsLocationsDeploymentsActuationsListCall) 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, "v1/{+parent}/actuations")
	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", "workloadmanager.projects.locations.deployments.actuations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Get: Gets details of a discovered workload profile.
//
// - name: Name of the resource.
func (r *ProjectsLocationsDiscoveredprofilesService) Get(name string) *ProjectsLocationsDiscoveredprofilesGetCall {
	c := &ProjectsLocationsDiscoveredprofilesGetCall{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 *ProjectsLocationsDiscoveredprofilesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDiscoveredprofilesGetCall {
	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 *ProjectsLocationsDiscoveredprofilesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDiscoveredprofilesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

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

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

// List: List discovered workload profiles
//
// - parent: Parent value for ListDiscoveredProfilesRequest.
func (r *ProjectsLocationsDiscoveredprofilesService) List(parent string) *ProjectsLocationsDiscoveredprofilesListCall {
	c := &ProjectsLocationsDiscoveredprofilesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filtering results
func (c *ProjectsLocationsDiscoveredprofilesListCall) Filter(filter string) *ProjectsLocationsDiscoveredprofilesListCall {
	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 *ProjectsLocationsDiscoveredprofilesListCall) PageSize(pageSize int64) *ProjectsLocationsDiscoveredprofilesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsDiscoveredprofilesListCall) PageToken(pageToken string) *ProjectsLocationsDiscoveredprofilesListCall {
	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 *ProjectsLocationsDiscoveredprofilesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDiscoveredprofilesListCall {
	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 *ProjectsLocationsDiscoveredprofilesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDiscoveredprofilesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

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

// Get: Get the health of a discovered workload profile.
//
// - name: The resource name.
func (r *ProjectsLocationsDiscoveredprofilesHealthService) Get(name string) *ProjectsLocationsDiscoveredprofilesHealthGetCall {
	c := &ProjectsLocationsDiscoveredprofilesHealthGetCall{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 *ProjectsLocationsDiscoveredprofilesHealthGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDiscoveredprofilesHealthGetCall {
	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 *ProjectsLocationsDiscoveredprofilesHealthGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDiscoveredprofilesHealthGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

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

type ProjectsLocationsEvaluationsCreateCall struct {
	s          *Service
	parent     string
	evaluation *Evaluation
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new Evaluation in a given project and location.
//
//   - parent: The resource prefix of the evaluation location using the form:
//     `projects/{project_id}/locations/{location_id}`.
func (r *ProjectsLocationsEvaluationsService) Create(parent string, evaluation *Evaluation) *ProjectsLocationsEvaluationsCreateCall {
	c := &ProjectsLocationsEvaluationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.evaluation = evaluation
	return c
}

// EvaluationId sets the optional parameter "evaluationId": Required. Id of the
// requesting object.
func (c *ProjectsLocationsEvaluationsCreateCall) EvaluationId(evaluationId string) *ProjectsLocationsEvaluationsCreateCall {
	c.urlParams_.Set("evaluationId", evaluationId)
	return c
}

// RequestId sets the optional parameter "requestId": An optional request ID to
// identify requests. Specify a unique request ID so that if you must retry
// your request, the server will know to ignore the request if it has already
// been completed. The server will guarantee that for at least 60 minutes since
// the first request. For example, consider a situation where you make an
// initial request and the request times out. If you make the request again
// with the same request ID, the server can check if original operation with
// the same request ID was received, and if so, will ignore the second request.
// This prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsEvaluationsCreateCall) RequestId(requestId string) *ProjectsLocationsEvaluationsCreateCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

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

// Do executes the "workloadmanager.projects.locations.evaluations.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 *ProjectsLocationsEvaluationsCreateCall) 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", "workloadmanager.projects.locations.evaluations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes a single Evaluation.
//
// - name: Name of the resource.
func (r *ProjectsLocationsEvaluationsService) Delete(name string) *ProjectsLocationsEvaluationsDeleteCall {
	c := &ProjectsLocationsEvaluationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Force sets the optional parameter "force": Followed the best practice from
// https://aip.dev/135#cascading-delete.
func (c *ProjectsLocationsEvaluationsDeleteCall) Force(force bool) *ProjectsLocationsEvaluationsDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// RequestId sets the optional parameter "requestId": An optional request ID to
// identify requests. Specify a unique request ID so that if you must retry
// your request, the server will know to ignore the request if it has already
// been completed. The server will guarantee that for at least 60 minutes after
// the first request. For example, consider a situation where you make an
// initial request and the request times out. If you make the request again
// with the same request ID, the server can check if original operation with
// the same request ID was received, and if so, will ignore the second request.
// This prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsEvaluationsDeleteCall) RequestId(requestId string) *ProjectsLocationsEvaluationsDeleteCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

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

// Do executes the "workloadmanager.projects.locations.evaluations.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 *ProjectsLocationsEvaluationsDeleteCall) 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", "workloadmanager.projects.locations.evaluations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets details of a single Evaluation.
//
// - name: Name of the resource.
func (r *ProjectsLocationsEvaluationsService) Get(name string) *ProjectsLocationsEvaluationsGetCall {
	c := &ProjectsLocationsEvaluationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

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

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *ProjectsLocationsEvaluationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *ProjectsLocationsEvaluationsGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+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", "workloadmanager.projects.locations.evaluations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.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 *ProjectsLocationsEvaluationsGetCall) 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", "workloadmanager.projects.locations.evaluations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// List: Lists Evaluations in a given project and location.
//
// - parent: Parent value for ListEvaluationsRequest.
func (r *ProjectsLocationsEvaluationsService) List(parent string) *ProjectsLocationsEvaluationsListCall {
	c := &ProjectsLocationsEvaluationsListCall{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.
func (c *ProjectsLocationsEvaluationsListCall) Filter(filter string) *ProjectsLocationsEvaluationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Hint for how to order the
// results.
func (c *ProjectsLocationsEvaluationsListCall) OrderBy(orderBy string) *ProjectsLocationsEvaluationsListCall {
	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 *ProjectsLocationsEvaluationsListCall) PageSize(pageSize int64) *ProjectsLocationsEvaluationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsEvaluationsListCall) PageToken(pageToken string) *ProjectsLocationsEvaluationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

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

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *ProjectsLocationsEvaluationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *ProjectsLocationsEvaluationsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+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", "workloadmanager.projects.locations.evaluations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.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 *ProjectsLocationsEvaluationsListCall) 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", "workloadmanager.projects.locations.evaluations.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsLocationsEvaluationsListCall) Pages(ctx context.Context, f func(*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 ProjectsLocationsEvaluationsPatchCall struct {
	s          *Service
	name       string
	evaluation *Evaluation
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the parameters of a single Evaluation.
//
//   - name: Name of resource that has the form
//     `projects/{project_id}/locations/{location_id}/evaluations/{evaluation_id}`
//     .
func (r *ProjectsLocationsEvaluationsService) Patch(name string, evaluation *Evaluation) *ProjectsLocationsEvaluationsPatchCall {
	c := &ProjectsLocationsEvaluationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.evaluation = evaluation
	return c
}

// RequestId sets the optional parameter "requestId": An optional request ID to
// identify requests. Specify a unique request ID so that if you must retry
// your request, the server will know to ignore the request if it has already
// been completed. The server will guarantee that for at least 60 minutes since
// the first request. For example, consider a situation where you make an
// initial request and the request times out. If you make the request again
// with the same request ID, the server can check if original operation with
// the same request ID was received, and if so, will ignore the second request.
// This prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsEvaluationsPatchCall) RequestId(requestId string) *ProjectsLocationsEvaluationsPatchCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

// UpdateMask sets the optional parameter "updateMask": Required. Field mask is
// used to specify the fields to be overwritten in the Evaluation resource by
// the update. The fields specified in the update_mask are relative to the
// resource, not the full request. A field will be overwritten if it is in the
// mask.
func (c *ProjectsLocationsEvaluationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsEvaluationsPatchCall {
	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 *ProjectsLocationsEvaluationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *ProjectsLocationsEvaluationsPatchCall) 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, "v1/{+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", "workloadmanager.projects.locations.evaluations.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.evaluations.patch" 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 *ProjectsLocationsEvaluationsPatchCall) 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", "workloadmanager.projects.locations.evaluations.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes a single Execution.
//
// - name: Name of the resource.
func (r *ProjectsLocationsEvaluationsExecutionsService) Delete(name string) *ProjectsLocationsEvaluationsExecutionsDeleteCall {
	c := &ProjectsLocationsEvaluationsExecutionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// RequestId sets the optional parameter "requestId": An optional request ID to
// identify requests. Specify a unique request ID so that if you must retry
// your request, the server will know to ignore the request if it has already
// been completed. The server will guarantee that for at least 60 minutes after
// the first request. For example, consider a situation where you make an
// initial request and the request times out. If you make the request again
// with the same request ID, the server can check if original operation with
// the same request ID was received, and if so, will ignore the second request.
// This prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsEvaluationsExecutionsDeleteCall) RequestId(requestId string) *ProjectsLocationsEvaluationsExecutionsDeleteCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

func (c *ProjectsLocationsEvaluationsExecutionsDeleteCall) 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, "v1/{+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", "workloadmanager.projects.locations.evaluations.executions.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.evaluations.executions.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 *ProjectsLocationsEvaluationsExecutionsDeleteCall) 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", "workloadmanager.projects.locations.evaluations.executions.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets details of a single Execution.
//
// - name: Name of the resource.
func (r *ProjectsLocationsEvaluationsExecutionsService) Get(name string) *ProjectsLocationsEvaluationsExecutionsGetCall {
	c := &ProjectsLocationsEvaluationsExecutionsGetCall{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 *ProjectsLocationsEvaluationsExecutionsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsExecutionsGetCall {
	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 *ProjectsLocationsEvaluationsExecutionsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsExecutionsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

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

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

// List: Lists Executions in a given project and location.
//
//   - parent: The resource prefix of the Execution using the form:
//     `projects/{project}/locations/{location}/evaluations/{evaluation}`.
func (r *ProjectsLocationsEvaluationsExecutionsService) List(parent string) *ProjectsLocationsEvaluationsExecutionsListCall {
	c := &ProjectsLocationsEvaluationsExecutionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filtering results.
func (c *ProjectsLocationsEvaluationsExecutionsListCall) Filter(filter string) *ProjectsLocationsEvaluationsExecutionsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

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

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsEvaluationsExecutionsListCall) PageToken(pageToken string) *ProjectsLocationsEvaluationsExecutionsListCall {
	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 *ProjectsLocationsEvaluationsExecutionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsExecutionsListCall {
	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 *ProjectsLocationsEvaluationsExecutionsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsExecutionsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *ProjectsLocationsEvaluationsExecutionsListCall) 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, "v1/{+parent}/executions")
	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", "workloadmanager.projects.locations.evaluations.executions.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Run: Creates a new Execution in a given project and location.
//
//   - name: The resource name of the Evaluation using the form:
//     `projects/{project}/locations/{location}/evaluations/{evaluation}`.
func (r *ProjectsLocationsEvaluationsExecutionsService) Run(name string, runevaluationrequest *RunEvaluationRequest) *ProjectsLocationsEvaluationsExecutionsRunCall {
	c := &ProjectsLocationsEvaluationsExecutionsRunCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsEvaluationsExecutionsRunCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsExecutionsRunCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *ProjectsLocationsEvaluationsExecutionsRunCall) 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, "v1/{+name}/executions:run")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "workloadmanager.projects.locations.evaluations.executions.run", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.evaluations.executions.run" 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 *ProjectsLocationsEvaluationsExecutionsRunCall) 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", "workloadmanager.projects.locations.evaluations.executions.run", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// List: Lists the result of a single evaluation.
//
//   - parent: The execution results. Format:
//     {parent}/evaluations/*/executions/*/results.
func (r *ProjectsLocationsEvaluationsExecutionsResultsService) List(parent string) *ProjectsLocationsEvaluationsExecutionsResultsListCall {
	c := &ProjectsLocationsEvaluationsExecutionsResultsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filtering results.
func (c *ProjectsLocationsEvaluationsExecutionsResultsListCall) Filter(filter string) *ProjectsLocationsEvaluationsExecutionsResultsListCall {
	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 *ProjectsLocationsEvaluationsExecutionsResultsListCall) PageSize(pageSize int64) *ProjectsLocationsEvaluationsExecutionsResultsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsEvaluationsExecutionsResultsListCall) PageToken(pageToken string) *ProjectsLocationsEvaluationsExecutionsResultsListCall {
	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 *ProjectsLocationsEvaluationsExecutionsResultsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsExecutionsResultsListCall {
	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 *ProjectsLocationsEvaluationsExecutionsResultsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsExecutionsResultsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *ProjectsLocationsEvaluationsExecutionsResultsListCall) 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, "v1/{+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", "workloadmanager.projects.locations.evaluations.executions.results.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: List all scanned resources for a single Execution.
//
// - parent: Parent for ListScannedResourcesRequest.
func (r *ProjectsLocationsEvaluationsExecutionsScannedResourcesService) List(parent string) *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall {
	c := &ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filtering results.
func (c *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall) Filter(filter string) *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

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

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall) PageToken(pageToken string) *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// Rule sets the optional parameter "rule": Rule name.
func (c *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall) Rule(rule string) *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall {
	c.urlParams_.Set("rule", rule)
	return c
}

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

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

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

func (c *ProjectsLocationsEvaluationsExecutionsScannedResourcesListCall) 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, "v1/{+parent}/scannedResources")
	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", "workloadmanager.projects.locations.evaluations.executions.scannedResources.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Delete: Delete the data insights from workload manager data warehouse.
//
//   - name: The system id of the SAP system resource to delete. Formatted as
//     projects/{project}/locations/{location}/sapSystems/{sap_system_id}.
func (r *ProjectsLocationsInsightsService) Delete(name string) *ProjectsLocationsInsightsDeleteCall {
	c := &ProjectsLocationsInsightsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// RequestId sets the optional parameter "requestId": An optional request ID to
// identify requests. Specify a unique request ID so that if you must retry
// your request, the server will know to ignore the request if it has already
// been completed. The server will guarantee that for at least 60 minutes since
// the first request. For example, consider a situation where you make an
// initial request and the request times out. If you make the request again
// with the same request ID, the server can check if original operation with
// the same request ID was received, and if so, will ignore the second request.
// This prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsInsightsDeleteCall) RequestId(requestId string) *ProjectsLocationsInsightsDeleteCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

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

// Do executes the "workloadmanager.projects.locations.insights.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 *ProjectsLocationsInsightsDeleteCall) 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", "workloadmanager.projects.locations.insights.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsInsightsWriteInsightCall struct {
	s                   *Service
	location            string
	writeinsightrequest *WriteInsightRequest
	urlParams_          gensupport.URLParams
	ctx_                context.Context
	header_             http.Header
}

// WriteInsight: Write the data insights to workload manager data warehouse.
//
//   - location: The GCP location. The format is:
//     projects/{project}/locations/{location}.
func (r *ProjectsLocationsInsightsService) WriteInsight(location string, writeinsightrequest *WriteInsightRequest) *ProjectsLocationsInsightsWriteInsightCall {
	c := &ProjectsLocationsInsightsWriteInsightCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.location = location
	c.writeinsightrequest = writeinsightrequest
	return c
}

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

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

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

func (c *ProjectsLocationsInsightsWriteInsightCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.writeinsightrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+location}/insights:writeInsight")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"location": c.location,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "workloadmanager.projects.locations.insights.writeInsight", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.projects.locations.insights.writeInsight" call.
// Any non-2xx status code is an error. Response headers are in either
// *WriteInsightResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsInsightsWriteInsightCall) Do(opts ...googleapi.CallOption) (*WriteInsightResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &WriteInsightResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "workloadmanager.projects.locations.insights.writeInsight", "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, "v1/{+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", "workloadmanager.projects.locations.operations.cancel", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.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", "workloadmanager.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, "v1/{+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", "workloadmanager.projects.locations.operations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.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", "workloadmanager.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, "v1/{+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", "workloadmanager.projects.locations.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.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", "workloadmanager.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, "v1/{+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", "workloadmanager.projects.locations.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "workloadmanager.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", "workloadmanager.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)
	}
}

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

// List: Lists rules in a given project.
//
//   - parent: The [project] on which to execute the request. The format is:
//     projects/{project_id}/locations/{location} Currently, the pre-defined
//     rules are global available to all projects and all regions.
func (r *ProjectsLocationsRulesService) List(parent string) *ProjectsLocationsRulesListCall {
	c := &ProjectsLocationsRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// CustomRulesBucket sets the optional parameter "customRulesBucket": The Cloud
// Storage bucket name for custom rules.
func (c *ProjectsLocationsRulesListCall) CustomRulesBucket(customRulesBucket string) *ProjectsLocationsRulesListCall {
	c.urlParams_.Set("customRulesBucket", customRulesBucket)
	return c
}

// EvaluationType sets the optional parameter "evaluationType": The evaluation
// type of the rules will be applied to. The Cloud Storage bucket name for
// custom rules.
//
// Possible values:
//
//	"EVALUATION_TYPE_UNSPECIFIED" - Not specified.
//	"SAP" - SAP best practices.
//	"SQL_SERVER" - SQL best practices.
//	"OTHER" - Customized best practices.
func (c *ProjectsLocationsRulesListCall) EvaluationType(evaluationType string) *ProjectsLocationsRulesListCall {
	c.urlParams_.Set("evaluationType", evaluationType)
	return c
}

// Filter sets the optional parameter "filter": Filter based on
// primary_category, secondary_category.
func (c *ProjectsLocationsRulesListCall) Filter(filter string) *ProjectsLocationsRulesListCall {
	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 *ProjectsLocationsRulesListCall) PageSize(pageSize int64) *ProjectsLocationsRulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsRulesListCall) PageToken(pageToken string) *ProjectsLocationsRulesListCall {
	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 *ProjectsLocationsRulesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsRulesListCall {
	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 *ProjectsLocationsRulesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsRulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

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

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