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

// Code generated file. DO NOT EDIT.

// Package securitycenter provides access to the Security Command Center API.
//
// For product documentation, see: https://cloud.google.com/security-command-center
//
// # 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/securitycenter/v1"
//	...
//	ctx := context.Background()
//	securitycenterService, err := securitycenter.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]:
//
//	securitycenterService, err := securitycenter.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, ...)
//	securitycenterService, err := securitycenter.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package securitycenter // import "google.golang.org/api/securitycenter/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 = "securitycenter:v1"
const apiName = "securitycenter"
const apiVersion = "v1"
const basePath = "https://securitycenter.googleapis.com/"
const basePathTemplate = "https://securitycenter.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://securitycenter.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.Folders = NewFoldersService(s)
	s.Organizations = NewOrganizationsService(s)
	s.Projects = NewProjectsService(s)
	if endpoint != "" {
		s.BasePath = endpoint
	}
	return s, nil
}

// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
	if client == nil {
		return nil, errors.New("client is nil")
	}
	return NewService(context.TODO(), option.WithHTTPClient(client))
}

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

	Folders *FoldersService

	Organizations *OrganizationsService

	Projects *ProjectsService
}

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

func NewFoldersService(s *Service) *FoldersService {
	rs := &FoldersService{s: s}
	rs.Assets = NewFoldersAssetsService(s)
	rs.BigQueryExports = NewFoldersBigQueryExportsService(s)
	rs.EventThreatDetectionSettings = NewFoldersEventThreatDetectionSettingsService(s)
	rs.Findings = NewFoldersFindingsService(s)
	rs.Locations = NewFoldersLocationsService(s)
	rs.MuteConfigs = NewFoldersMuteConfigsService(s)
	rs.NotificationConfigs = NewFoldersNotificationConfigsService(s)
	rs.SecurityHealthAnalyticsSettings = NewFoldersSecurityHealthAnalyticsSettingsService(s)
	rs.Sources = NewFoldersSourcesService(s)
	return rs
}

type FoldersService struct {
	s *Service

	Assets *FoldersAssetsService

	BigQueryExports *FoldersBigQueryExportsService

	EventThreatDetectionSettings *FoldersEventThreatDetectionSettingsService

	Findings *FoldersFindingsService

	Locations *FoldersLocationsService

	MuteConfigs *FoldersMuteConfigsService

	NotificationConfigs *FoldersNotificationConfigsService

	SecurityHealthAnalyticsSettings *FoldersSecurityHealthAnalyticsSettingsService

	Sources *FoldersSourcesService
}

func NewFoldersAssetsService(s *Service) *FoldersAssetsService {
	rs := &FoldersAssetsService{s: s}
	return rs
}

type FoldersAssetsService struct {
	s *Service
}

func NewFoldersBigQueryExportsService(s *Service) *FoldersBigQueryExportsService {
	rs := &FoldersBigQueryExportsService{s: s}
	return rs
}

type FoldersBigQueryExportsService struct {
	s *Service
}

func NewFoldersEventThreatDetectionSettingsService(s *Service) *FoldersEventThreatDetectionSettingsService {
	rs := &FoldersEventThreatDetectionSettingsService{s: s}
	rs.CustomModules = NewFoldersEventThreatDetectionSettingsCustomModulesService(s)
	rs.EffectiveCustomModules = NewFoldersEventThreatDetectionSettingsEffectiveCustomModulesService(s)
	return rs
}

type FoldersEventThreatDetectionSettingsService struct {
	s *Service

	CustomModules *FoldersEventThreatDetectionSettingsCustomModulesService

	EffectiveCustomModules *FoldersEventThreatDetectionSettingsEffectiveCustomModulesService
}

func NewFoldersEventThreatDetectionSettingsCustomModulesService(s *Service) *FoldersEventThreatDetectionSettingsCustomModulesService {
	rs := &FoldersEventThreatDetectionSettingsCustomModulesService{s: s}
	return rs
}

type FoldersEventThreatDetectionSettingsCustomModulesService struct {
	s *Service
}

func NewFoldersEventThreatDetectionSettingsEffectiveCustomModulesService(s *Service) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesService {
	rs := &FoldersEventThreatDetectionSettingsEffectiveCustomModulesService{s: s}
	return rs
}

type FoldersEventThreatDetectionSettingsEffectiveCustomModulesService struct {
	s *Service
}

func NewFoldersFindingsService(s *Service) *FoldersFindingsService {
	rs := &FoldersFindingsService{s: s}
	return rs
}

type FoldersFindingsService struct {
	s *Service
}

func NewFoldersLocationsService(s *Service) *FoldersLocationsService {
	rs := &FoldersLocationsService{s: s}
	rs.MuteConfigs = NewFoldersLocationsMuteConfigsService(s)
	return rs
}

type FoldersLocationsService struct {
	s *Service

	MuteConfigs *FoldersLocationsMuteConfigsService
}

func NewFoldersLocationsMuteConfigsService(s *Service) *FoldersLocationsMuteConfigsService {
	rs := &FoldersLocationsMuteConfigsService{s: s}
	return rs
}

type FoldersLocationsMuteConfigsService struct {
	s *Service
}

func NewFoldersMuteConfigsService(s *Service) *FoldersMuteConfigsService {
	rs := &FoldersMuteConfigsService{s: s}
	return rs
}

type FoldersMuteConfigsService struct {
	s *Service
}

func NewFoldersNotificationConfigsService(s *Service) *FoldersNotificationConfigsService {
	rs := &FoldersNotificationConfigsService{s: s}
	return rs
}

type FoldersNotificationConfigsService struct {
	s *Service
}

func NewFoldersSecurityHealthAnalyticsSettingsService(s *Service) *FoldersSecurityHealthAnalyticsSettingsService {
	rs := &FoldersSecurityHealthAnalyticsSettingsService{s: s}
	rs.CustomModules = NewFoldersSecurityHealthAnalyticsSettingsCustomModulesService(s)
	rs.EffectiveCustomModules = NewFoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService(s)
	return rs
}

type FoldersSecurityHealthAnalyticsSettingsService struct {
	s *Service

	CustomModules *FoldersSecurityHealthAnalyticsSettingsCustomModulesService

	EffectiveCustomModules *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService
}

func NewFoldersSecurityHealthAnalyticsSettingsCustomModulesService(s *Service) *FoldersSecurityHealthAnalyticsSettingsCustomModulesService {
	rs := &FoldersSecurityHealthAnalyticsSettingsCustomModulesService{s: s}
	return rs
}

type FoldersSecurityHealthAnalyticsSettingsCustomModulesService struct {
	s *Service
}

func NewFoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService(s *Service) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService {
	rs := &FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService{s: s}
	return rs
}

type FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService struct {
	s *Service
}

func NewFoldersSourcesService(s *Service) *FoldersSourcesService {
	rs := &FoldersSourcesService{s: s}
	rs.Findings = NewFoldersSourcesFindingsService(s)
	return rs
}

type FoldersSourcesService struct {
	s *Service

	Findings *FoldersSourcesFindingsService
}

func NewFoldersSourcesFindingsService(s *Service) *FoldersSourcesFindingsService {
	rs := &FoldersSourcesFindingsService{s: s}
	rs.ExternalSystems = NewFoldersSourcesFindingsExternalSystemsService(s)
	return rs
}

type FoldersSourcesFindingsService struct {
	s *Service

	ExternalSystems *FoldersSourcesFindingsExternalSystemsService
}

func NewFoldersSourcesFindingsExternalSystemsService(s *Service) *FoldersSourcesFindingsExternalSystemsService {
	rs := &FoldersSourcesFindingsExternalSystemsService{s: s}
	return rs
}

type FoldersSourcesFindingsExternalSystemsService struct {
	s *Service
}

func NewOrganizationsService(s *Service) *OrganizationsService {
	rs := &OrganizationsService{s: s}
	rs.Assets = NewOrganizationsAssetsService(s)
	rs.AttackPaths = NewOrganizationsAttackPathsService(s)
	rs.BigQueryExports = NewOrganizationsBigQueryExportsService(s)
	rs.EventThreatDetectionSettings = NewOrganizationsEventThreatDetectionSettingsService(s)
	rs.Findings = NewOrganizationsFindingsService(s)
	rs.Locations = NewOrganizationsLocationsService(s)
	rs.MuteConfigs = NewOrganizationsMuteConfigsService(s)
	rs.NotificationConfigs = NewOrganizationsNotificationConfigsService(s)
	rs.Operations = NewOrganizationsOperationsService(s)
	rs.ResourceValueConfigs = NewOrganizationsResourceValueConfigsService(s)
	rs.SecurityHealthAnalyticsSettings = NewOrganizationsSecurityHealthAnalyticsSettingsService(s)
	rs.Simulations = NewOrganizationsSimulationsService(s)
	rs.Sources = NewOrganizationsSourcesService(s)
	rs.ValuedResources = NewOrganizationsValuedResourcesService(s)
	return rs
}

type OrganizationsService struct {
	s *Service

	Assets *OrganizationsAssetsService

	AttackPaths *OrganizationsAttackPathsService

	BigQueryExports *OrganizationsBigQueryExportsService

	EventThreatDetectionSettings *OrganizationsEventThreatDetectionSettingsService

	Findings *OrganizationsFindingsService

	Locations *OrganizationsLocationsService

	MuteConfigs *OrganizationsMuteConfigsService

	NotificationConfigs *OrganizationsNotificationConfigsService

	Operations *OrganizationsOperationsService

	ResourceValueConfigs *OrganizationsResourceValueConfigsService

	SecurityHealthAnalyticsSettings *OrganizationsSecurityHealthAnalyticsSettingsService

	Simulations *OrganizationsSimulationsService

	Sources *OrganizationsSourcesService

	ValuedResources *OrganizationsValuedResourcesService
}

func NewOrganizationsAssetsService(s *Service) *OrganizationsAssetsService {
	rs := &OrganizationsAssetsService{s: s}
	return rs
}

type OrganizationsAssetsService struct {
	s *Service
}

func NewOrganizationsAttackPathsService(s *Service) *OrganizationsAttackPathsService {
	rs := &OrganizationsAttackPathsService{s: s}
	return rs
}

type OrganizationsAttackPathsService struct {
	s *Service
}

func NewOrganizationsBigQueryExportsService(s *Service) *OrganizationsBigQueryExportsService {
	rs := &OrganizationsBigQueryExportsService{s: s}
	return rs
}

type OrganizationsBigQueryExportsService struct {
	s *Service
}

func NewOrganizationsEventThreatDetectionSettingsService(s *Service) *OrganizationsEventThreatDetectionSettingsService {
	rs := &OrganizationsEventThreatDetectionSettingsService{s: s}
	rs.CustomModules = NewOrganizationsEventThreatDetectionSettingsCustomModulesService(s)
	rs.EffectiveCustomModules = NewOrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService(s)
	return rs
}

type OrganizationsEventThreatDetectionSettingsService struct {
	s *Service

	CustomModules *OrganizationsEventThreatDetectionSettingsCustomModulesService

	EffectiveCustomModules *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService
}

func NewOrganizationsEventThreatDetectionSettingsCustomModulesService(s *Service) *OrganizationsEventThreatDetectionSettingsCustomModulesService {
	rs := &OrganizationsEventThreatDetectionSettingsCustomModulesService{s: s}
	return rs
}

type OrganizationsEventThreatDetectionSettingsCustomModulesService struct {
	s *Service
}

func NewOrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService(s *Service) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService {
	rs := &OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService{s: s}
	return rs
}

type OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService struct {
	s *Service
}

func NewOrganizationsFindingsService(s *Service) *OrganizationsFindingsService {
	rs := &OrganizationsFindingsService{s: s}
	return rs
}

type OrganizationsFindingsService struct {
	s *Service
}

func NewOrganizationsLocationsService(s *Service) *OrganizationsLocationsService {
	rs := &OrganizationsLocationsService{s: s}
	rs.MuteConfigs = NewOrganizationsLocationsMuteConfigsService(s)
	return rs
}

type OrganizationsLocationsService struct {
	s *Service

	MuteConfigs *OrganizationsLocationsMuteConfigsService
}

func NewOrganizationsLocationsMuteConfigsService(s *Service) *OrganizationsLocationsMuteConfigsService {
	rs := &OrganizationsLocationsMuteConfigsService{s: s}
	return rs
}

type OrganizationsLocationsMuteConfigsService struct {
	s *Service
}

func NewOrganizationsMuteConfigsService(s *Service) *OrganizationsMuteConfigsService {
	rs := &OrganizationsMuteConfigsService{s: s}
	return rs
}

type OrganizationsMuteConfigsService struct {
	s *Service
}

func NewOrganizationsNotificationConfigsService(s *Service) *OrganizationsNotificationConfigsService {
	rs := &OrganizationsNotificationConfigsService{s: s}
	return rs
}

type OrganizationsNotificationConfigsService struct {
	s *Service
}

func NewOrganizationsOperationsService(s *Service) *OrganizationsOperationsService {
	rs := &OrganizationsOperationsService{s: s}
	return rs
}

type OrganizationsOperationsService struct {
	s *Service
}

func NewOrganizationsResourceValueConfigsService(s *Service) *OrganizationsResourceValueConfigsService {
	rs := &OrganizationsResourceValueConfigsService{s: s}
	return rs
}

type OrganizationsResourceValueConfigsService struct {
	s *Service
}

func NewOrganizationsSecurityHealthAnalyticsSettingsService(s *Service) *OrganizationsSecurityHealthAnalyticsSettingsService {
	rs := &OrganizationsSecurityHealthAnalyticsSettingsService{s: s}
	rs.CustomModules = NewOrganizationsSecurityHealthAnalyticsSettingsCustomModulesService(s)
	rs.EffectiveCustomModules = NewOrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService(s)
	return rs
}

type OrganizationsSecurityHealthAnalyticsSettingsService struct {
	s *Service

	CustomModules *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService

	EffectiveCustomModules *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService
}

func NewOrganizationsSecurityHealthAnalyticsSettingsCustomModulesService(s *Service) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService {
	rs := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService{s: s}
	return rs
}

type OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService struct {
	s *Service
}

func NewOrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService(s *Service) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService {
	rs := &OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService{s: s}
	return rs
}

type OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService struct {
	s *Service
}

func NewOrganizationsSimulationsService(s *Service) *OrganizationsSimulationsService {
	rs := &OrganizationsSimulationsService{s: s}
	rs.AttackExposureResults = NewOrganizationsSimulationsAttackExposureResultsService(s)
	rs.AttackPaths = NewOrganizationsSimulationsAttackPathsService(s)
	rs.ValuedResources = NewOrganizationsSimulationsValuedResourcesService(s)
	return rs
}

type OrganizationsSimulationsService struct {
	s *Service

	AttackExposureResults *OrganizationsSimulationsAttackExposureResultsService

	AttackPaths *OrganizationsSimulationsAttackPathsService

	ValuedResources *OrganizationsSimulationsValuedResourcesService
}

func NewOrganizationsSimulationsAttackExposureResultsService(s *Service) *OrganizationsSimulationsAttackExposureResultsService {
	rs := &OrganizationsSimulationsAttackExposureResultsService{s: s}
	rs.AttackPaths = NewOrganizationsSimulationsAttackExposureResultsAttackPathsService(s)
	rs.ValuedResources = NewOrganizationsSimulationsAttackExposureResultsValuedResourcesService(s)
	return rs
}

type OrganizationsSimulationsAttackExposureResultsService struct {
	s *Service

	AttackPaths *OrganizationsSimulationsAttackExposureResultsAttackPathsService

	ValuedResources *OrganizationsSimulationsAttackExposureResultsValuedResourcesService
}

func NewOrganizationsSimulationsAttackExposureResultsAttackPathsService(s *Service) *OrganizationsSimulationsAttackExposureResultsAttackPathsService {
	rs := &OrganizationsSimulationsAttackExposureResultsAttackPathsService{s: s}
	return rs
}

type OrganizationsSimulationsAttackExposureResultsAttackPathsService struct {
	s *Service
}

func NewOrganizationsSimulationsAttackExposureResultsValuedResourcesService(s *Service) *OrganizationsSimulationsAttackExposureResultsValuedResourcesService {
	rs := &OrganizationsSimulationsAttackExposureResultsValuedResourcesService{s: s}
	return rs
}

type OrganizationsSimulationsAttackExposureResultsValuedResourcesService struct {
	s *Service
}

func NewOrganizationsSimulationsAttackPathsService(s *Service) *OrganizationsSimulationsAttackPathsService {
	rs := &OrganizationsSimulationsAttackPathsService{s: s}
	return rs
}

type OrganizationsSimulationsAttackPathsService struct {
	s *Service
}

func NewOrganizationsSimulationsValuedResourcesService(s *Service) *OrganizationsSimulationsValuedResourcesService {
	rs := &OrganizationsSimulationsValuedResourcesService{s: s}
	rs.AttackPaths = NewOrganizationsSimulationsValuedResourcesAttackPathsService(s)
	return rs
}

type OrganizationsSimulationsValuedResourcesService struct {
	s *Service

	AttackPaths *OrganizationsSimulationsValuedResourcesAttackPathsService
}

func NewOrganizationsSimulationsValuedResourcesAttackPathsService(s *Service) *OrganizationsSimulationsValuedResourcesAttackPathsService {
	rs := &OrganizationsSimulationsValuedResourcesAttackPathsService{s: s}
	return rs
}

type OrganizationsSimulationsValuedResourcesAttackPathsService struct {
	s *Service
}

func NewOrganizationsSourcesService(s *Service) *OrganizationsSourcesService {
	rs := &OrganizationsSourcesService{s: s}
	rs.Findings = NewOrganizationsSourcesFindingsService(s)
	return rs
}

type OrganizationsSourcesService struct {
	s *Service

	Findings *OrganizationsSourcesFindingsService
}

func NewOrganizationsSourcesFindingsService(s *Service) *OrganizationsSourcesFindingsService {
	rs := &OrganizationsSourcesFindingsService{s: s}
	rs.ExternalSystems = NewOrganizationsSourcesFindingsExternalSystemsService(s)
	return rs
}

type OrganizationsSourcesFindingsService struct {
	s *Service

	ExternalSystems *OrganizationsSourcesFindingsExternalSystemsService
}

func NewOrganizationsSourcesFindingsExternalSystemsService(s *Service) *OrganizationsSourcesFindingsExternalSystemsService {
	rs := &OrganizationsSourcesFindingsExternalSystemsService{s: s}
	return rs
}

type OrganizationsSourcesFindingsExternalSystemsService struct {
	s *Service
}

func NewOrganizationsValuedResourcesService(s *Service) *OrganizationsValuedResourcesService {
	rs := &OrganizationsValuedResourcesService{s: s}
	return rs
}

type OrganizationsValuedResourcesService struct {
	s *Service
}

func NewProjectsService(s *Service) *ProjectsService {
	rs := &ProjectsService{s: s}
	rs.Assets = NewProjectsAssetsService(s)
	rs.BigQueryExports = NewProjectsBigQueryExportsService(s)
	rs.EventThreatDetectionSettings = NewProjectsEventThreatDetectionSettingsService(s)
	rs.Findings = NewProjectsFindingsService(s)
	rs.Locations = NewProjectsLocationsService(s)
	rs.MuteConfigs = NewProjectsMuteConfigsService(s)
	rs.NotificationConfigs = NewProjectsNotificationConfigsService(s)
	rs.SecurityHealthAnalyticsSettings = NewProjectsSecurityHealthAnalyticsSettingsService(s)
	rs.Sources = NewProjectsSourcesService(s)
	return rs
}

type ProjectsService struct {
	s *Service

	Assets *ProjectsAssetsService

	BigQueryExports *ProjectsBigQueryExportsService

	EventThreatDetectionSettings *ProjectsEventThreatDetectionSettingsService

	Findings *ProjectsFindingsService

	Locations *ProjectsLocationsService

	MuteConfigs *ProjectsMuteConfigsService

	NotificationConfigs *ProjectsNotificationConfigsService

	SecurityHealthAnalyticsSettings *ProjectsSecurityHealthAnalyticsSettingsService

	Sources *ProjectsSourcesService
}

func NewProjectsAssetsService(s *Service) *ProjectsAssetsService {
	rs := &ProjectsAssetsService{s: s}
	return rs
}

type ProjectsAssetsService struct {
	s *Service
}

func NewProjectsBigQueryExportsService(s *Service) *ProjectsBigQueryExportsService {
	rs := &ProjectsBigQueryExportsService{s: s}
	return rs
}

type ProjectsBigQueryExportsService struct {
	s *Service
}

func NewProjectsEventThreatDetectionSettingsService(s *Service) *ProjectsEventThreatDetectionSettingsService {
	rs := &ProjectsEventThreatDetectionSettingsService{s: s}
	rs.CustomModules = NewProjectsEventThreatDetectionSettingsCustomModulesService(s)
	rs.EffectiveCustomModules = NewProjectsEventThreatDetectionSettingsEffectiveCustomModulesService(s)
	return rs
}

type ProjectsEventThreatDetectionSettingsService struct {
	s *Service

	CustomModules *ProjectsEventThreatDetectionSettingsCustomModulesService

	EffectiveCustomModules *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesService
}

func NewProjectsEventThreatDetectionSettingsCustomModulesService(s *Service) *ProjectsEventThreatDetectionSettingsCustomModulesService {
	rs := &ProjectsEventThreatDetectionSettingsCustomModulesService{s: s}
	return rs
}

type ProjectsEventThreatDetectionSettingsCustomModulesService struct {
	s *Service
}

func NewProjectsEventThreatDetectionSettingsEffectiveCustomModulesService(s *Service) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesService {
	rs := &ProjectsEventThreatDetectionSettingsEffectiveCustomModulesService{s: s}
	return rs
}

type ProjectsEventThreatDetectionSettingsEffectiveCustomModulesService struct {
	s *Service
}

func NewProjectsFindingsService(s *Service) *ProjectsFindingsService {
	rs := &ProjectsFindingsService{s: s}
	return rs
}

type ProjectsFindingsService struct {
	s *Service
}

func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
	rs := &ProjectsLocationsService{s: s}
	rs.MuteConfigs = NewProjectsLocationsMuteConfigsService(s)
	return rs
}

type ProjectsLocationsService struct {
	s *Service

	MuteConfigs *ProjectsLocationsMuteConfigsService
}

func NewProjectsLocationsMuteConfigsService(s *Service) *ProjectsLocationsMuteConfigsService {
	rs := &ProjectsLocationsMuteConfigsService{s: s}
	return rs
}

type ProjectsLocationsMuteConfigsService struct {
	s *Service
}

func NewProjectsMuteConfigsService(s *Service) *ProjectsMuteConfigsService {
	rs := &ProjectsMuteConfigsService{s: s}
	return rs
}

type ProjectsMuteConfigsService struct {
	s *Service
}

func NewProjectsNotificationConfigsService(s *Service) *ProjectsNotificationConfigsService {
	rs := &ProjectsNotificationConfigsService{s: s}
	return rs
}

type ProjectsNotificationConfigsService struct {
	s *Service
}

func NewProjectsSecurityHealthAnalyticsSettingsService(s *Service) *ProjectsSecurityHealthAnalyticsSettingsService {
	rs := &ProjectsSecurityHealthAnalyticsSettingsService{s: s}
	rs.CustomModules = NewProjectsSecurityHealthAnalyticsSettingsCustomModulesService(s)
	rs.EffectiveCustomModules = NewProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService(s)
	return rs
}

type ProjectsSecurityHealthAnalyticsSettingsService struct {
	s *Service

	CustomModules *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService

	EffectiveCustomModules *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService
}

func NewProjectsSecurityHealthAnalyticsSettingsCustomModulesService(s *Service) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService {
	rs := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesService{s: s}
	return rs
}

type ProjectsSecurityHealthAnalyticsSettingsCustomModulesService struct {
	s *Service
}

func NewProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService(s *Service) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService {
	rs := &ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService{s: s}
	return rs
}

type ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService struct {
	s *Service
}

func NewProjectsSourcesService(s *Service) *ProjectsSourcesService {
	rs := &ProjectsSourcesService{s: s}
	rs.Findings = NewProjectsSourcesFindingsService(s)
	return rs
}

type ProjectsSourcesService struct {
	s *Service

	Findings *ProjectsSourcesFindingsService
}

func NewProjectsSourcesFindingsService(s *Service) *ProjectsSourcesFindingsService {
	rs := &ProjectsSourcesFindingsService{s: s}
	rs.ExternalSystems = NewProjectsSourcesFindingsExternalSystemsService(s)
	return rs
}

type ProjectsSourcesFindingsService struct {
	s *Service

	ExternalSystems *ProjectsSourcesFindingsExternalSystemsService
}

func NewProjectsSourcesFindingsExternalSystemsService(s *Service) *ProjectsSourcesFindingsExternalSystemsService {
	rs := &ProjectsSourcesFindingsExternalSystemsService{s: s}
	return rs
}

type ProjectsSourcesFindingsExternalSystemsService struct {
	s *Service
}

// Access: Represents an access event.
type Access struct {
	// CallerIp: Caller's IP address, such as "1.1.1.1".
	CallerIp string `json:"callerIp,omitempty"`
	// CallerIpGeo: The caller IP's geolocation, which identifies where the call
	// came from.
	CallerIpGeo *Geolocation `json:"callerIpGeo,omitempty"`
	// MethodName: The method that the service account called, e.g. "SetIamPolicy".
	MethodName string `json:"methodName,omitempty"`
	// PrincipalEmail: Associated email, such as "foo@google.com". The email
	// address of the authenticated user or a service account acting on behalf of a
	// third party principal making the request. For third party identity callers,
	// the `principal_subject` field is populated instead of this field. For
	// privacy reasons, the principal email address is sometimes redacted. For more
	// information, see Caller identities in audit logs
	// (https://cloud.google.com/logging/docs/audit#user-id).
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// PrincipalSubject: A string that represents the principal_subject that is
	// associated with the identity. Unlike `principal_email`, `principal_subject`
	// supports principals that aren't associated with email addresses, such as
	// third party principals. For most identities, the format is
	// `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`.
	// Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD,
	// still use the legacy format `serviceAccount:{identity pool
	// name}[{subject}]`.
	PrincipalSubject string `json:"principalSubject,omitempty"`
	// ServiceAccountDelegationInfo: The identity delegation history of an
	// authenticated service account that made the request. The
	// `serviceAccountDelegationInfo[]` object contains information about the real
	// authorities that try to access Google Cloud resources by delegating on a
	// service account. When multiple authorities are present, they are guaranteed
	// to be sorted based on the original ordering of the identity delegation
	// events.
	ServiceAccountDelegationInfo []*ServiceAccountDelegationInfo `json:"serviceAccountDelegationInfo,omitempty"`
	// ServiceAccountKeyName: The name of the service account key that was used to
	// create or exchange credentials when authenticating the service account that
	// made the request. This is a scheme-less URI full resource name. For example:
	// "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{k
	// ey}".
	ServiceAccountKeyName string `json:"serviceAccountKeyName,omitempty"`
	// ServiceName: This is the API service that the service account made a call
	// to, e.g. "iam.googleapis.com"
	ServiceName string `json:"serviceName,omitempty"`
	// UserAgent: The caller's user agent string associated with the finding.
	UserAgent string `json:"userAgent,omitempty"`
	// UserAgentFamily: Type of user agent associated with the finding. For
	// example, an operating system shell or an embedded or standalone application.
	UserAgentFamily string `json:"userAgentFamily,omitempty"`
	// UserName: A string that represents a username. The username provided depends
	// on the type of the finding and is likely not an IAM principal. For example,
	// this can be a system username if the finding is related to a virtual
	// machine, or it can be an application login username.
	UserName string `json:"userName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallerIp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallerIp") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AccessReview: Conveys information about a Kubernetes access review (such as
// one returned by a `kubectl auth can-i`
// (https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access)
// command) that was involved in a finding.
type AccessReview struct {
	// Group: The API group of the resource. "*" means all.
	Group string `json:"group,omitempty"`
	// Name: The name of the resource being requested. Empty means all.
	Name string `json:"name,omitempty"`
	// Ns: Namespace of the action being requested. Currently, there is no
	// distinction between no namespace and all namespaces. Both are represented by
	// "" (empty).
	Ns string `json:"ns,omitempty"`
	// Resource: The optional resource type requested. "*" means all.
	Resource string `json:"resource,omitempty"`
	// Subresource: The optional subresource type.
	Subresource string `json:"subresource,omitempty"`
	// Verb: A Kubernetes resource API verb, like get, list, watch, create, update,
	// delete, proxy. "*" means all.
	Verb string `json:"verb,omitempty"`
	// Version: The API version of the resource. "*" means all.
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Group") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Group") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AdaptiveProtection: Information about Google Cloud Armor Adaptive Protection
// (https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).
type AdaptiveProtection struct {
	// Confidence: A score of 0 means that there is low confidence that the
	// detected event is an actual attack. A score of 1 means that there is high
	// confidence that the detected event is an attack. See the Adaptive Protection
	// documentation
	// (https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning)
	// for further explanation.
	Confidence float64 `json:"confidence,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Confidence") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Confidence") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// AffectedResources: Details about resources affected by this finding.
type AffectedResources struct {
	// Count: The count of resources affected by the finding.
	Count int64 `json:"count,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AiModel: Contains information about the AI model associated with the
// finding.
type AiModel struct {
	// DeploymentPlatform: The platform on which the model is deployed.
	//
	// Possible values:
	//   "DEPLOYMENT_PLATFORM_UNSPECIFIED" - Unspecified deployment platform.
	//   "VERTEX_AI" - Vertex AI.
	//   "GKE" - Google Kubernetes Engine.
	//   "GCE" - Google Compute Engine.
	//   "FINE_TUNED_MODEL" - Fine tuned model.
	DeploymentPlatform string `json:"deploymentPlatform,omitempty"`
	// DisplayName: The user defined display name of model. Ex.
	// baseline-classification-model
	DisplayName string `json:"displayName,omitempty"`
	// Domain: The domain of the model, for example, “image-classification”.
	Domain string `json:"domain,omitempty"`
	// Library: The name of the model library, for example, “transformers”.
	Library string `json:"library,omitempty"`
	// Location: The region in which the model is used, for example,
	// “us-central1”.
	Location string `json:"location,omitempty"`
	// Name: The name of the AI model, for example, "gemini:1.0.0".
	Name string `json:"name,omitempty"`
	// Publisher: The publisher of the model, for example, “google” or
	// “nvidia”.
	Publisher string `json:"publisher,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeploymentPlatform") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeploymentPlatform") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// Application: Represents an application associated with a finding.
type Application struct {
	// BaseUri: The base URI that identifies the network location of the
	// application in which the vulnerability was detected. For example,
	// `http://example.com`.
	BaseUri string `json:"baseUri,omitempty"`
	// FullUri: The full URI with payload that can be used to reproduce the
	// vulnerability. For example, `http://example.com?p=aMmYgI6H`.
	FullUri string `json:"fullUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BaseUri") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BaseUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Asset: Security Command Center representation of a Google Cloud resource.
// The Asset is a Security Command Center resource that captures information
// about a single Google Cloud resource. All modifications to an Asset are only
// within the context of Security Command Center and don't affect the
// referenced Google Cloud resource.
type Asset struct {
	// CanonicalName: The canonical name of the resource. It's either
	// "organizations/{organization_id}/assets/{asset_id}",
	// "folders/{folder_id}/assets/{asset_id}" or
	// "projects/{project_number}/assets/{asset_id}", depending on the closest CRM
	// ancestor of the resource.
	CanonicalName string `json:"canonicalName,omitempty"`
	// CreateTime: The time at which the asset was created in Security Command
	// Center.
	CreateTime string `json:"createTime,omitempty"`
	// IamPolicy: Cloud IAM Policy information associated with the Google Cloud
	// resource described by the Security Command Center asset. This information is
	// managed and defined by the Google Cloud resource and cannot be modified by
	// the user.
	IamPolicy *IamPolicy `json:"iamPolicy,omitempty"`
	// Name: The relative resource name of this asset. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Example: "organizations/{organization_id}/assets/{asset_id}".
	Name string `json:"name,omitempty"`
	// ResourceProperties: Resource managed properties. These properties are
	// managed and defined by the Google Cloud resource and cannot be modified by
	// the user.
	ResourceProperties googleapi.RawMessage `json:"resourceProperties,omitempty"`
	// SecurityCenterProperties: Security Command Center managed properties. These
	// properties are managed by Security Command Center and cannot be modified by
	// the user.
	SecurityCenterProperties *SecurityCenterProperties `json:"securityCenterProperties,omitempty"`
	// SecurityMarks: User specified security marks. These marks are entirely
	// managed by the user and come from the SecurityMarks resource that belongs to
	// the asset.
	SecurityMarks *SecurityMarks `json:"securityMarks,omitempty"`
	// UpdateTime: The time at which the asset was last updated or added in Cloud
	// SCC.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AssetDiscoveryConfig: The configuration used for Asset Discovery runs.
type AssetDiscoveryConfig struct {
	// FolderIds: The folder ids to use for filtering asset discovery. It consists
	// of only digits, e.g., 756619654966.
	FolderIds []string `json:"folderIds,omitempty"`
	// InclusionMode: The mode to use for filtering asset discovery.
	//
	// Possible values:
	//   "INCLUSION_MODE_UNSPECIFIED" - Unspecified. Setting the mode with this
	// value will disable inclusion/exclusion filtering for Asset Discovery.
	//   "INCLUDE_ONLY" - Asset Discovery will capture only the resources within
	// the projects specified. All other resources will be ignored.
	//   "EXCLUDE" - Asset Discovery will ignore all resources under the projects
	// specified. All other resources will be retrieved.
	InclusionMode string `json:"inclusionMode,omitempty"`
	// ProjectIds: The project ids to use for filtering asset discovery.
	ProjectIds []string `json:"projectIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FolderIds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FolderIds") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Attack: Information about DDoS attack volume and classification.
type Attack struct {
	// Classification: Type of attack, for example, 'SYN-flood', 'NTP-udp', or
	// 'CHARGEN-udp'.
	Classification string `json:"classification,omitempty"`
	// VolumeBps: Total BPS (bytes per second) volume of attack. Deprecated - refer
	// to volume_bps_long instead.
	VolumeBps int64 `json:"volumeBps,omitempty"`
	// VolumeBpsLong: Total BPS (bytes per second) volume of attack.
	VolumeBpsLong int64 `json:"volumeBpsLong,omitempty,string"`
	// VolumePps: Total PPS (packets per second) volume of attack. Deprecated -
	// refer to volume_pps_long instead.
	VolumePps int64 `json:"volumePps,omitempty"`
	// VolumePpsLong: Total PPS (packets per second) volume of attack.
	VolumePpsLong int64 `json:"volumePpsLong,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Classification") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Classification") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AttackExposure: An attack exposure contains the results of an attack path
// simulation run.
type AttackExposure struct {
	// AttackExposureResult: The resource name of the attack path simulation result
	// that contains the details regarding this attack exposure score. Example:
	// `organizations/123/simulations/456/attackExposureResults/789`
	AttackExposureResult string `json:"attackExposureResult,omitempty"`
	// ExposedHighValueResourcesCount: The number of high value resources that are
	// exposed as a result of this finding.
	ExposedHighValueResourcesCount int64 `json:"exposedHighValueResourcesCount,omitempty"`
	// ExposedLowValueResourcesCount: The number of high value resources that are
	// exposed as a result of this finding.
	ExposedLowValueResourcesCount int64 `json:"exposedLowValueResourcesCount,omitempty"`
	// ExposedMediumValueResourcesCount: The number of medium value resources that
	// are exposed as a result of this finding.
	ExposedMediumValueResourcesCount int64 `json:"exposedMediumValueResourcesCount,omitempty"`
	// LatestCalculationTime: The most recent time the attack exposure was updated
	// on this finding.
	LatestCalculationTime string `json:"latestCalculationTime,omitempty"`
	// Score: A number between 0 (inclusive) and infinity that represents how
	// important this finding is to remediate. The higher the score, the more
	// important it is to remediate.
	Score float64 `json:"score,omitempty"`
	// State: What state this AttackExposure is in. This captures whether or not an
	// attack exposure has been calculated or not.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is not specified.
	//   "CALCULATED" - The attack exposure has been calculated.
	//   "NOT_CALCULATED" - The attack exposure has not been calculated.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttackExposureResult") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttackExposureResult") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// AttackPath: A path that an attacker could take to reach an exposed resource.
type AttackPath struct {
	// Edges: A list of the edges between nodes in this attack path.
	Edges []*AttackPathEdge `json:"edges,omitempty"`
	// Name: The attack path name, for example,
	// `organizations/12/simulation/34/valuedResources/56/attackPaths/78`
	Name string `json:"name,omitempty"`
	// PathNodes: A list of nodes that exist in this attack path.
	PathNodes []*AttackPathNode `json:"pathNodes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Edges") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Edges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AttackPathEdge: Represents a connection between a source node and a
// destination node in this attack path.
type AttackPathEdge struct {
	// Destination: The attack node uuid of the destination node.
	Destination string `json:"destination,omitempty"`
	// Source: The attack node uuid of the source node.
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Destination") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Destination") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AttackPathNode: Represents one point that an attacker passes through in this
// attack path.
type AttackPathNode struct {
	// AssociatedFindings: The findings associated with this node in the attack
	// path.
	AssociatedFindings []*PathNodeAssociatedFinding `json:"associatedFindings,omitempty"`
	// AttackSteps: A list of attack step nodes that exist in this attack path
	// node.
	AttackSteps []*AttackStepNode `json:"attackSteps,omitempty"`
	// DisplayName: Human-readable name of this resource.
	DisplayName string `json:"displayName,omitempty"`
	// Resource: The name of the resource at this point in the attack path. The
	// format of the name follows the Cloud Asset Inventory resource name format
	// (https://cloud.google.com/asset-inventory/docs/resource-name-format)
	Resource string `json:"resource,omitempty"`
	// ResourceType: The supported resource type
	// (https://cloud.google.com/asset-inventory/docs/supported-asset-types)
	ResourceType string `json:"resourceType,omitempty"`
	// Uuid: Unique id of the attack path node.
	Uuid string `json:"uuid,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssociatedFindings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssociatedFindings") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AttackStepNode: Detailed steps the attack can take between path nodes.
type AttackStepNode struct {
	// Description: Attack step description
	Description string `json:"description,omitempty"`
	// DisplayName: User friendly name of the attack step
	DisplayName string `json:"displayName,omitempty"`
	// Labels: Attack step labels for metadata
	Labels map[string]string `json:"labels,omitempty"`
	// Type: Attack step type. Can be either AND, OR or DEFENSE
	//
	// Possible values:
	//   "NODE_TYPE_UNSPECIFIED" - Type not specified
	//   "NODE_TYPE_AND" - Incoming edge joined with AND
	//   "NODE_TYPE_OR" - Incoming edge joined with OR
	//   "NODE_TYPE_DEFENSE" - Incoming edge is defense
	//   "NODE_TYPE_ATTACKER" - Incoming edge is attacker
	Type string `json:"type,omitempty"`
	// Uuid: Unique ID for one Node
	Uuid string `json:"uuid,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AuditConfig: Specifies the audit configuration for a service. The
// configuration determines which permission types are logged, and what
// identities, if any, are exempted from logging. An AuditConfig must have one
// or more AuditLogConfigs. If there are AuditConfigs for both `allServices`
// and a specific service, the union of the two AuditConfigs is used for that
// service: the log_types specified in each AuditConfig are enabled, and the
// exempted_members in each AuditLogConfig are exempted. Example Policy with
// multiple AuditConfigs: { "audit_configs": [ { "service": "allServices",
// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [
// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type":
// "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com",
// "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type":
// "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For
// sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
// logging. It also exempts `jose@example.com` from DATA_READ logging, and
// `aliya@example.com` from DATA_WRITE logging.
type AuditConfig struct {
	// AuditLogConfigs: The configuration for logging of each type of permission.
	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
	// Service: Specifies a service that will be enabled for audit logging. For
	// example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices`
	// is a special value that covers all services.
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuditLogConfigs") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AuditLogConfig: Provides the configuration for logging a type of
// permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ",
// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
// "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while
// exempting jose@example.com from DATA_READ logging.
type AuditLogConfig struct {
	// ExemptedMembers: Specifies the identities that do not cause logging for this
	// type of permission. Follows the same format of Binding.members.
	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
	// LogType: The log type that this config enables.
	//
	// Possible values:
	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
	LogType string `json:"logType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExemptedMembers") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AwsAccount: An AWS account that is a member of an organization.
type AwsAccount struct {
	// Id: The unique identifier (ID) of the account, containing exactly 12 digits.
	Id string `json:"id,omitempty"`
	// Name: The friendly name of this account.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AwsMetadata: AWS metadata associated with the resource, only applicable if
// the finding's cloud provider is Amazon Web Services.
type AwsMetadata struct {
	// Account: The AWS account associated with the resource.
	Account *AwsAccount `json:"account,omitempty"`
	// Organization: The AWS organization associated with the resource.
	Organization *AwsOrganization `json:"organization,omitempty"`
	// OrganizationalUnits: A list of AWS organizational units associated with the
	// resource, ordered from lowest level (closest to the account) to highest
	// level.
	OrganizationalUnits []*AwsOrganizationalUnit `json:"organizationalUnits,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Account") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Account") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AwsOrganization: An organization is a collection of accounts that are
// centrally managed together using consolidated billing, organized
// hierarchically with organizational units (OUs), and controlled with
// policies.
type AwsOrganization struct {
	// Id: The unique identifier (ID) for the organization. The regex pattern for
	// an organization ID string requires "o-" followed by from 10 to 32 lowercase
	// letters or digits.
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AwsOrganizationalUnit: An Organizational Unit (OU) is a container of AWS
// accounts within a root of an organization. Policies that are attached to an
// OU apply to all accounts contained in that OU and in any child OUs.
type AwsOrganizationalUnit struct {
	// Id: The unique identifier (ID) associated with this OU. The regex pattern
	// for an organizational unit ID string requires "ou-" followed by from 4 to 32
	// lowercase letters or digits (the ID of the root that contains the OU). This
	// string is followed by a second "-" dash and from 8 to 32 additional
	// lowercase letters or digits. For example, "ou-ab12-cd34ef56".
	Id string `json:"id,omitempty"`
	// Name: The friendly name of the OU.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AzureManagementGroup: Represents an Azure management group.
type AzureManagementGroup struct {
	// DisplayName: The display name of the Azure management group.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The UUID of the Azure management group, for example,
	// `20000000-0001-0000-0000-000000000000`.
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AzureMetadata: Azure metadata associated with the resource, only applicable
// if the finding's cloud provider is Microsoft Azure.
type AzureMetadata struct {
	// ManagementGroups: A list of Azure management groups associated with the
	// resource, ordered from lowest level (closest to the subscription) to highest
	// level.
	ManagementGroups []*AzureManagementGroup `json:"managementGroups,omitempty"`
	// ResourceGroup: The Azure resource group associated with the resource.
	ResourceGroup *AzureResourceGroup `json:"resourceGroup,omitempty"`
	// Subscription: The Azure subscription associated with the resource.
	Subscription *AzureSubscription `json:"subscription,omitempty"`
	// Tenant: The Azure Entra tenant associated with the resource.
	Tenant *AzureTenant `json:"tenant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ManagementGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManagementGroups") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AzureResourceGroup: Represents an Azure resource group.
type AzureResourceGroup struct {
	// Id: The ID of the Azure resource group.
	Id string `json:"id,omitempty"`
	// Name: The name of the Azure resource group. This is not a UUID.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AzureSubscription: Represents an Azure subscription.
type AzureSubscription struct {
	// DisplayName: The display name of the Azure subscription.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The UUID of the Azure subscription, for example,
	// `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`.
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AzureTenant: Represents a Microsoft Entra tenant.
type AzureTenant struct {
	// DisplayName: The display name of the Azure tenant.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The ID of the Microsoft Entra tenant, for example,
	// "a11aaa11-aa11-1aa1-11aa-1aaa11a".
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BackupDisasterRecovery: Information related to Google Cloud Backup and DR
// Service findings.
type BackupDisasterRecovery struct {
	// Appliance: The name of the Backup and DR appliance that captures, moves, and
	// manages the lifecycle of backup data. For example, `backup-server-57137`.
	Appliance string `json:"appliance,omitempty"`
	// Applications: The names of Backup and DR applications. An application is a
	// VM, database, or file system on a managed host monitored by a backup and
	// recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`,
	// `centos7-01-vol02`.
	Applications []string `json:"applications,omitempty"`
	// BackupCreateTime: The timestamp at which the Backup and DR backup was
	// created.
	BackupCreateTime string `json:"backupCreateTime,omitempty"`
	// BackupTemplate: The name of a Backup and DR template which comprises one or
	// more backup policies. See the Backup and DR documentation
	// (https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp)
	// for more information. For example, `snap-ov`.
	BackupTemplate string `json:"backupTemplate,omitempty"`
	// BackupType: The backup type of the Backup and DR image. For example,
	// `Snapshot`, `Remote Snapshot`, `OnVault`.
	BackupType string `json:"backupType,omitempty"`
	// Host: The name of a Backup and DR host, which is managed by the backup and
	// recovery appliance and known to the management console. The host can be of
	// type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file
	// system, etc.), vCenter, or an ESX server. See the Backup and DR
	// documentation on hosts
	// (https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications)
	// for more information. For example, `centos7-01`.
	Host string `json:"host,omitempty"`
	// Policies: The names of Backup and DR policies that are associated with a
	// template and that define when to run a backup, how frequently to run a
	// backup, and how long to retain the backup image. For example, `onvaults`.
	Policies []string `json:"policies,omitempty"`
	// PolicyOptions: The names of Backup and DR advanced policy options of a
	// policy applying to an application. See the Backup and DR documentation on
	// policy options
	// (https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
	// For example, `skipofflineappsincongrp, nounmap`.
	PolicyOptions []string `json:"policyOptions,omitempty"`
	// Profile: The name of the Backup and DR resource profile that specifies the
	// storage media for backups of application and VM data. See the Backup and DR
	// documentation on profiles
	// (https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile).
	// For example, `GCP`.
	Profile string `json:"profile,omitempty"`
	// StoragePool: The name of the Backup and DR storage pool that the backup and
	// recovery appliance is storing data in. The storage pool could be of type
	// Cloud, Primary, Snapshot, or OnVault. See the Backup and DR documentation on
	// storage pools
	// (https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
	// For example, `DiskPoolOne`.
	StoragePool string `json:"storagePool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Appliance") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Appliance") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// BatchCreateResourceValueConfigsResponse: Response message for
// BatchCreateResourceValueConfigs
type BatchCreateResourceValueConfigsResponse struct {
	// ResourceValueConfigs: The resource value configs created
	ResourceValueConfigs []*GoogleCloudSecuritycenterV1ResourceValueConfig `json:"resourceValueConfigs,omitempty"`

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

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

// BigQueryDestination: The destination BigQuery dataset to export findings to.
type BigQueryDestination struct {
	// Dataset: Required. The relative resource name of the destination dataset, in
	// the form projects/{projectId}/datasets/{datasetId}.
	Dataset string `json:"dataset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dataset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dataset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Binding: Associates `members`, or principals, with a `role`.
type Binding struct {
	// Condition: The condition that is associated with this binding. If the
	// condition evaluates to `true`, then this binding applies to the current
	// request. If the condition evaluates to `false`, then this binding does not
	// apply to the current request. However, a different role binding might grant
	// the same role to one or more of the principals in this binding. To learn
	// which resources support conditions in their IAM policies, see the IAM
	// documentation
	// (https://cloud.google.com/iam/help/conditions/resource-policies).
	Condition *Expr `json:"condition,omitempty"`
	// Members: Specifies the principals requesting access for a Google Cloud
	// resource. `members` can have the following values: * `allUsers`: A special
	// identifier that represents anyone who is on the internet; with or without a
	// Google account. * `allAuthenticatedUsers`: A special identifier that
	// represents anyone who is authenticated with a Google account or a service
	// account. Does not include identities that come from external identity
	// providers (IdPs) through identity federation. * `user:{emailid}`: An email
	// address that represents a specific Google account. For example,
	// `alice@example.com` . * `serviceAccount:{emailid}`: An email address that
	// represents a Google service account. For example,
	// `my-other-app@appspot.gserviceaccount.com`. *
	// `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An
	// identifier for a Kubernetes service account
	// (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).
	// For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. *
	// `group:{emailid}`: An email address that represents a Google group. For
	// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain
	// (primary) that represents all the users of that domain. For example,
	// `google.com` or `example.com`. *
	// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/sub
	// ject/{subject_attribute_value}`: A single identity in a workforce identity
	// pool. *
	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
	// group/{group_id}`: All workforce identities in a group. *
	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
	// attribute.{attribute_name}/{attribute_value}`: All workforce identities with
	// a specific attribute value. *
	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
	// *`: All identities in a workforce identity pool. *
	// `principal://iam.googleapis.com/projects/{project_number}/locations/global/wo
	// rkloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single
	// identity in a workload identity pool. *
	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
	// /workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool
	// group. *
	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
	// /workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}
	// `: All identities in a workload identity pool with a certain attribute. *
	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
	// /workloadIdentityPools/{pool_id}/*`: All identities in a workload identity
	// pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
	// unique identifier) representing a user that has been recently deleted. For
	// example, `alice@example.com?uid=123456789012345678901`. If the user is
	// recovered, this value reverts to `user:{emailid}` and the recovered user
	// retains the role in the binding. *
	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
	// unique identifier) representing a service account that has been recently
	// deleted. For example,
	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the
	// service account is undeleted, this value reverts to
	// `serviceAccount:{emailid}` and the undeleted service account retains the
	// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email
	// address (plus unique identifier) representing a Google group that has been
	// recently deleted. For example,
	// `admins@example.com?uid=123456789012345678901`. If the group is recovered,
	// this value reverts to `group:{emailid}` and the recovered group retains the
	// role in the binding. *
	// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool
	// _id}/subject/{subject_attribute_value}`: Deleted single identity in a
	// workforce identity pool. For example,
	// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-po
	// ol-id/subject/my-subject-attribute-value`.
	Members []string `json:"members,omitempty"`
	// Role: Role that is assigned to the list of `members`, or principals. For
	// example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview
	// of the IAM roles and permissions, see the IAM documentation
	// (https://cloud.google.com/iam/docs/roles-overview). For a list of the
	// available pre-defined roles, see here
	// (https://cloud.google.com/iam/docs/understanding-roles).
	Role string `json:"role,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Condition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Condition") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BulkMuteFindingsRequest: Request message for bulk findings update. Note: 1.
// If multiple bulk update requests match the same resource, the order in which
// they get executed is not defined. 2. Once a bulk operation is started, there
// is no way to stop it.
type BulkMuteFindingsRequest struct {
	// Filter: Expression that identifies findings that should be updated. The
	// expression is a list of zero or more restrictions combined via logical
	// operators `AND` and `OR`. Parentheses are supported, and `OR` has higher
	// precedence than `AND`. Restrictions have the form ` ` and may have a `-`
	// character in front of them to indicate negation. The fields map to those
	// defined in the corresponding resource. The supported operators are: * `=`
	// for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`,
	// meaning substring matching, for strings. The supported value types are: *
	// string literals in quotes. * integer literals without quotes. * boolean
	// literals `true` and `false` without quotes.
	Filter string `json:"filter,omitempty"`
	// MuteAnnotation: This can be a mute configuration name or any identifier for
	// mute/unmute of findings based on the filter.
	MuteAnnotation string `json:"muteAnnotation,omitempty"`
	// MuteState: Optional. All findings matching the given filter will have their
	// mute state set to this value. The default value is `MUTED`. Setting this to
	// `UNDEFINED` will clear the mute state on all matching findings.
	//
	// Possible values:
	//   "MUTE_STATE_UNSPECIFIED" - Unused.
	//   "MUTED" - Matching findings will be muted (default).
	//   "UNDEFINED" - Matching findings will have their mute state cleared.
	MuteState string `json:"muteState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Filter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Chokepoint: Contains details about a chokepoint, which is a resource or
// resource group where high-risk attack paths converge, based on [attack path
// simulations]
// (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_path_simulations).
type Chokepoint struct {
	// RelatedFindings: List of resource names of findings associated with this
	// chokepoint. For example, organizations/123/sources/456/findings/789. This
	// list will have at most 100 findings.
	RelatedFindings []string `json:"relatedFindings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RelatedFindings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RelatedFindings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CloudArmor: Fields related to Google Cloud Armor findings.
type CloudArmor struct {
	// AdaptiveProtection: Information about potential Layer 7 DDoS attacks
	// identified by Google Cloud Armor Adaptive Protection
	// (https://cloud.google.com/armor/docs/adaptive-protection-overview).
	AdaptiveProtection *AdaptiveProtection `json:"adaptiveProtection,omitempty"`
	// Attack: Information about DDoS attack volume and classification.
	Attack *Attack `json:"attack,omitempty"`
	// Duration: Duration of attack from the start until the current moment
	// (updated every 5 minutes).
	Duration string `json:"duration,omitempty"`
	// Requests: Information about incoming requests evaluated by Google Cloud
	// Armor security policies
	// (https://cloud.google.com/armor/docs/security-policy-overview).
	Requests *Requests `json:"requests,omitempty"`
	// SecurityPolicy: Information about the Google Cloud Armor security policy
	// (https://cloud.google.com/armor/docs/security-policy-overview) relevant to
	// the finding.
	SecurityPolicy *SecurityPolicy `json:"securityPolicy,omitempty"`
	// ThreatVector: Distinguish between volumetric & protocol DDoS attack and
	// application layer attacks. For example, "L3_4" for Layer 3 and Layer 4 DDoS
	// attacks, or "L_7" for Layer 7 DDoS attacks.
	ThreatVector string `json:"threatVector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdaptiveProtection") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdaptiveProtection") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CloudControl: CloudControl associated with the finding.
type CloudControl struct {
	// CloudControlName: Name of the CloudControl associated with the finding.
	CloudControlName string `json:"cloudControlName,omitempty"`
	// PolicyType: Policy type of the CloudControl
	PolicyType string `json:"policyType,omitempty"`
	// Type: Type of cloud control.
	//
	// Possible values:
	//   "CLOUD_CONTROL_TYPE_UNSPECIFIED" - Unspecified.
	//   "BUILT_IN" - Built in Cloud Control.
	//   "CUSTOM" - Custom Cloud Control.
	Type string `json:"type,omitempty"`
	// Version: Version of the Cloud Control
	Version int64 `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudControlName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudControlName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CloudDlpDataProfile: The data profile
// (https://cloud.google.com/dlp/docs/data-profiles) associated with the
// finding.
type CloudDlpDataProfile struct {
	// DataProfile: Name of the data profile, for example,
	// `projects/123/locations/europe/tableProfiles/8383929`.
	DataProfile string `json:"dataProfile,omitempty"`
	// InfoTypes: Type of information detected by SDP. Info type includes name,
	// version and sensitivity of the detected information type.
	InfoTypes []*InfoType `json:"infoTypes,omitempty"`
	// ParentType: The resource hierarchy level at which the data profile was
	// generated.
	//
	// Possible values:
	//   "PARENT_TYPE_UNSPECIFIED" - Unspecified parent type.
	//   "ORGANIZATION" - Organization-level configurations.
	//   "PROJECT" - Project-level configurations.
	ParentType string `json:"parentType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataProfile") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataProfile") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CloudDlpInspection: Details about the Cloud Data Loss Prevention (Cloud DLP)
// inspection job (https://cloud.google.com/dlp/docs/concepts-job-triggers)
// that produced the finding.
type CloudDlpInspection struct {
	// FullScan: Whether Cloud DLP scanned the complete resource or a sampled
	// subset.
	FullScan bool `json:"fullScan,omitempty"`
	// InfoType: The type of information (or *infoType
	// (https://cloud.google.com/dlp/docs/infotypes-reference)*) found, for
	// example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.
	InfoType string `json:"infoType,omitempty"`
	// InfoTypeCount: The number of times Cloud DLP found this infoType within this
	// job and resource.
	InfoTypeCount int64 `json:"infoTypeCount,omitempty,string"`
	// InspectJob: Name of the inspection job, for example,
	// `projects/123/locations/europe/dlpJobs/i-8383929`.
	InspectJob string `json:"inspectJob,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FullScan") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FullScan") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CloudLoggingEntry: Metadata taken from a Cloud Logging LogEntry
// (https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)
type CloudLoggingEntry struct {
	// InsertId: A unique identifier for the log entry.
	InsertId string `json:"insertId,omitempty"`
	// LogId: The type of the log (part of `log_name`. `log_name` is the resource
	// name of the log to which this log entry belongs). For example:
	// `cloudresourcemanager.googleapis.com/activity`. Note that this field is not
	// URL-encoded, unlike the `LOG_ID` field in `LogEntry`.
	LogId string `json:"logId,omitempty"`
	// ResourceContainer: The organization, folder, or project of the monitored
	// resource that produced this log entry.
	ResourceContainer string `json:"resourceContainer,omitempty"`
	// Timestamp: The time the event described by the log entry occurred.
	Timestamp string `json:"timestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InsertId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InsertId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Compliance: Contains compliance information about a security standard
// indicating unmet recommendations.
type Compliance struct {
	// Ids: Policies within the standard or benchmark, for example, A.12.4.1
	Ids []string `json:"ids,omitempty"`
	// Standard: Industry-wide compliance standards or benchmarks, such as CIS,
	// PCI, and OWASP.
	Standard string `json:"standard,omitempty"`
	// Version: Version of the standard or benchmark, for example, 1.1
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ids") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ids") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ComplianceDetails: Compliance Details associated with the finding.
type ComplianceDetails struct {
	// CloudControl: CloudControl associated with the finding
	CloudControl *CloudControl `json:"cloudControl,omitempty"`
	// CloudControlDeploymentNames: Cloud Control Deployments associated with the
	// finding. For example,
	// organizations/123/locations/global/cloudControlDeployments/deploymentIdentifi
	// er
	CloudControlDeploymentNames []string `json:"cloudControlDeploymentNames,omitempty"`
	// Frameworks: Details of Frameworks associated with the finding
	Frameworks []*Framework `json:"frameworks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudControl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudControl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Connection: Contains information about the IP connection associated with the
// finding.
type Connection struct {
	// DestinationIp: Destination IP address. Not present for sockets that are
	// listening and not connected.
	DestinationIp string `json:"destinationIp,omitempty"`
	// DestinationPort: Destination port. Not present for sockets that are
	// listening and not connected.
	DestinationPort int64 `json:"destinationPort,omitempty"`
	// Protocol: IANA Internet Protocol Number such as TCP(6) and UDP(17).
	//
	// Possible values:
	//   "PROTOCOL_UNSPECIFIED" - Unspecified protocol (not HOPOPT).
	//   "ICMP" - Internet Control Message Protocol.
	//   "TCP" - Transmission Control Protocol.
	//   "UDP" - User Datagram Protocol.
	//   "GRE" - Generic Routing Encapsulation.
	//   "ESP" - Encap Security Payload.
	Protocol string `json:"protocol,omitempty"`
	// SourceIp: Source IP address.
	SourceIp string `json:"sourceIp,omitempty"`
	// SourcePort: Source port.
	SourcePort int64 `json:"sourcePort,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationIp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationIp") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Contact: The email address of a contact.
type Contact struct {
	// Email: An email address. For example, "person123@company.com".
	Email string `json:"email,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Email") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// Container: Container associated with the finding.
type Container struct {
	// CreateTime: The time that the container was created.
	CreateTime string `json:"createTime,omitempty"`
	// ImageId: Optional container image ID, if provided by the container runtime.
	// Uniquely identifies the container image launched using a container image
	// digest.
	ImageId string `json:"imageId,omitempty"`
	// Labels: Container labels, as provided by the container runtime.
	Labels []*Label `json:"labels,omitempty"`
	// Name: Name of the container.
	Name string `json:"name,omitempty"`
	// Uri: Container image URI provided when configuring a pod or container. This
	// string can identify a container image version using mutable tags.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Control: Compliance control associated with the finding.
type Control struct {
	// ControlName: Name of the Control
	ControlName string `json:"controlName,omitempty"`
	// DisplayName: Display name of the control. For example, AU-02.
	DisplayName string `json:"displayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ControlName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ControlName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CreateResourceValueConfigRequest: Request message to create single resource
// value config
type CreateResourceValueConfigRequest struct {
	// Parent: Required. Resource name of the new ResourceValueConfig's parent.
	Parent string `json:"parent,omitempty"`
	// ResourceValueConfig: Required. The resource value config being created.
	ResourceValueConfig *GoogleCloudSecuritycenterV1ResourceValueConfig `json:"resourceValueConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Parent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Parent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CustomModuleValidationError: An error encountered while validating the
// uploaded configuration of an Event Threat Detection Custom Module.
type CustomModuleValidationError struct {
	// Description: A description of the error, suitable for human consumption.
	// Required.
	Description string `json:"description,omitempty"`
	// End: The end position of the error in the uploaded text version of the
	// module. This field may be omitted if no specific position applies, or if one
	// could not be computed.
	End *Position `json:"end,omitempty"`
	// FieldPath: The path, in RFC 8901 JSON Pointer format, to the field that
	// failed validation. This may be left empty if no specific field is affected.
	FieldPath string `json:"fieldPath,omitempty"`
	// Start: The initial position of the error in the uploaded text version of the
	// module. This field may be omitted if no specific position applies, or if one
	// could not be computed.
	Start *Position `json:"start,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CustomModuleValidationErrors: A list of zero or more errors encountered
// while validating the uploaded configuration of an Event Threat Detection
// Custom Module.
type CustomModuleValidationErrors struct {
	// Errors: The list of errors.
	Errors []*CustomModuleValidationError `json:"errors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Cve: CVE stands for Common Vulnerabilities and Exposures. Information from
// the CVE record (https://www.cve.org/ResourcesSupport/Glossary) that
// describes this vulnerability.
type Cve struct {
	// Cvssv3: Describe Common Vulnerability Scoring System specified at
	// https://www.first.org/cvss/v3.1/specification-document
	Cvssv3 *Cvssv3 `json:"cvssv3,omitempty"`
	// ExploitReleaseDate: Date the first publicly available exploit or PoC was
	// released.
	ExploitReleaseDate string `json:"exploitReleaseDate,omitempty"`
	// ExploitationActivity: The exploitation activity of the vulnerability in the
	// wild.
	//
	// Possible values:
	//   "EXPLOITATION_ACTIVITY_UNSPECIFIED" - Invalid or empty value.
	//   "WIDE" - Exploitation has been reported or confirmed to widely occur.
	//   "CONFIRMED" - Limited reported or confirmed exploitation activities.
	//   "AVAILABLE" - Exploit is publicly available.
	//   "ANTICIPATED" - No known exploitation activity, but has a high potential
	// for exploitation.
	//   "NO_KNOWN" - No known exploitation activity.
	ExploitationActivity string `json:"exploitationActivity,omitempty"`
	// FirstExploitationDate: Date of the earliest known exploitation.
	FirstExploitationDate string `json:"firstExploitationDate,omitempty"`
	// Id: The unique identifier for the vulnerability. e.g. CVE-2021-34527
	Id string `json:"id,omitempty"`
	// Impact: The potential impact of the vulnerability if it was to be exploited.
	//
	// Possible values:
	//   "RISK_RATING_UNSPECIFIED" - Invalid or empty value.
	//   "LOW" - Exploitation would have little to no security impact.
	//   "MEDIUM" - Exploitation would enable attackers to perform activities, or
	// could allow attackers to have a direct impact, but would require additional
	// steps.
	//   "HIGH" - Exploitation would enable attackers to have a notable direct
	// impact without needing to overcome any major mitigating factors.
	//   "CRITICAL" - Exploitation would fundamentally undermine the security of
	// affected systems, enable actors to perform significant attacks with minimal
	// effort, with little to no mitigating factors to overcome.
	Impact string `json:"impact,omitempty"`
	// ObservedInTheWild: Whether or not the vulnerability has been observed in the
	// wild.
	ObservedInTheWild bool `json:"observedInTheWild,omitempty"`
	// References: Additional information about the CVE. e.g.
	// https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527
	References []*Reference `json:"references,omitempty"`
	// UpstreamFixAvailable: Whether upstream fix is available for the CVE.
	UpstreamFixAvailable bool `json:"upstreamFixAvailable,omitempty"`
	// ZeroDay: Whether or not the vulnerability was zero day when the finding was
	// published.
	ZeroDay bool `json:"zeroDay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cvssv3") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cvssv3") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Cvssv3: Common Vulnerability Scoring System version 3.
type Cvssv3 struct {
	// AttackComplexity: This metric describes the conditions beyond the attacker's
	// control that must exist in order to exploit the vulnerability.
	//
	// Possible values:
	//   "ATTACK_COMPLEXITY_UNSPECIFIED" - Invalid value.
	//   "ATTACK_COMPLEXITY_LOW" - Specialized access conditions or extenuating
	// circumstances do not exist. An attacker can expect repeatable success when
	// attacking the vulnerable component.
	//   "ATTACK_COMPLEXITY_HIGH" - A successful attack depends on conditions
	// beyond the attacker's control. That is, a successful attack cannot be
	// accomplished at will, but requires the attacker to invest in some measurable
	// amount of effort in preparation or execution against the vulnerable
	// component before a successful attack can be expected.
	AttackComplexity string `json:"attackComplexity,omitempty"`
	// AttackVector: Base Metrics Represents the intrinsic characteristics of a
	// vulnerability that are constant over time and across user environments. This
	// metric reflects the context by which vulnerability exploitation is possible.
	//
	// Possible values:
	//   "ATTACK_VECTOR_UNSPECIFIED" - Invalid value.
	//   "ATTACK_VECTOR_NETWORK" - The vulnerable component is bound to the network
	// stack and the set of possible attackers extends beyond the other options
	// listed below, up to and including the entire Internet.
	//   "ATTACK_VECTOR_ADJACENT" - The vulnerable component is bound to the
	// network stack, but the attack is limited at the protocol level to a
	// logically adjacent topology.
	//   "ATTACK_VECTOR_LOCAL" - The vulnerable component is not bound to the
	// network stack and the attacker's path is via read/write/execute
	// capabilities.
	//   "ATTACK_VECTOR_PHYSICAL" - The attack requires the attacker to physically
	// touch or manipulate the vulnerable component.
	AttackVector string `json:"attackVector,omitempty"`
	// AvailabilityImpact: This metric measures the impact to the availability of
	// the impacted component resulting from a successfully exploited
	// vulnerability.
	//
	// Possible values:
	//   "IMPACT_UNSPECIFIED" - Invalid value.
	//   "IMPACT_HIGH" - High impact.
	//   "IMPACT_LOW" - Low impact.
	//   "IMPACT_NONE" - No impact.
	AvailabilityImpact string `json:"availabilityImpact,omitempty"`
	// BaseScore: The base score is a function of the base metric scores.
	BaseScore float64 `json:"baseScore,omitempty"`
	// ConfidentialityImpact: This metric measures the impact to the
	// confidentiality of the information resources managed by a software component
	// due to a successfully exploited vulnerability.
	//
	// Possible values:
	//   "IMPACT_UNSPECIFIED" - Invalid value.
	//   "IMPACT_HIGH" - High impact.
	//   "IMPACT_LOW" - Low impact.
	//   "IMPACT_NONE" - No impact.
	ConfidentialityImpact string `json:"confidentialityImpact,omitempty"`
	// IntegrityImpact: This metric measures the impact to integrity of a
	// successfully exploited vulnerability.
	//
	// Possible values:
	//   "IMPACT_UNSPECIFIED" - Invalid value.
	//   "IMPACT_HIGH" - High impact.
	//   "IMPACT_LOW" - Low impact.
	//   "IMPACT_NONE" - No impact.
	IntegrityImpact string `json:"integrityImpact,omitempty"`
	// PrivilegesRequired: This metric describes the level of privileges an
	// attacker must possess before successfully exploiting the vulnerability.
	//
	// Possible values:
	//   "PRIVILEGES_REQUIRED_UNSPECIFIED" - Invalid value.
	//   "PRIVILEGES_REQUIRED_NONE" - The attacker is unauthorized prior to attack,
	// and therefore does not require any access to settings or files of the
	// vulnerable system to carry out an attack.
	//   "PRIVILEGES_REQUIRED_LOW" - The attacker requires privileges that provide
	// basic user capabilities that could normally affect only settings and files
	// owned by a user. Alternatively, an attacker with Low privileges has the
	// ability to access only non-sensitive resources.
	//   "PRIVILEGES_REQUIRED_HIGH" - The attacker requires privileges that provide
	// significant (e.g., administrative) control over the vulnerable component
	// allowing access to component-wide settings and files.
	PrivilegesRequired string `json:"privilegesRequired,omitempty"`
	// Scope: The Scope metric captures whether a vulnerability in one vulnerable
	// component impacts resources in components beyond its security scope.
	//
	// Possible values:
	//   "SCOPE_UNSPECIFIED" - Invalid value.
	//   "SCOPE_UNCHANGED" - An exploited vulnerability can only affect resources
	// managed by the same security authority.
	//   "SCOPE_CHANGED" - An exploited vulnerability can affect resources beyond
	// the security scope managed by the security authority of the vulnerable
	// component.
	Scope string `json:"scope,omitempty"`
	// UserInteraction: This metric captures the requirement for a human user,
	// other than the attacker, to participate in the successful compromise of the
	// vulnerable component.
	//
	// Possible values:
	//   "USER_INTERACTION_UNSPECIFIED" - Invalid value.
	//   "USER_INTERACTION_NONE" - The vulnerable system can be exploited without
	// interaction from any user.
	//   "USER_INTERACTION_REQUIRED" - Successful exploitation of this
	// vulnerability requires a user to take some action before the vulnerability
	// can be exploited.
	UserInteraction string `json:"userInteraction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttackComplexity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttackComplexity") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// Cwe: CWE stands for Common Weakness Enumeration. Information about this
// weakness, as described by CWE (https://cwe.mitre.org/).
type Cwe struct {
	// Id: The CWE identifier, e.g. CWE-94
	Id string `json:"id,omitempty"`
	// References: Any reference to the details on the CWE, for example,
	// https://cwe.mitre.org/data/definitions/94.html
	References []*Reference `json:"references,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataAccessEvent: Details about a data access attempt made by a principal not
// authorized under applicable data security policy.
type DataAccessEvent struct {
	// EventId: Unique identifier for data access event.
	EventId string `json:"eventId,omitempty"`
	// EventTime: Timestamp of data access event.
	EventTime string `json:"eventTime,omitempty"`
	// Operation: The operation performed by the principal to access the data.
	//
	// Possible values:
	//   "OPERATION_UNSPECIFIED" - The operation is unspecified.
	//   "READ" - Represents a read operation.
	//   "MOVE" - Represents a move operation.
	//   "COPY" - Represents a copy operation.
	Operation string `json:"operation,omitempty"`
	// PrincipalEmail: The email address of the principal that accessed the data.
	// The principal could be a user account, service account, Google group, or
	// other.
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataFlowEvent: Details about a data flow event, in which either the data is
// moved to or is accessed from a non-compliant geo-location, as defined in the
// applicable data security policy.
type DataFlowEvent struct {
	// EventId: Unique identifier for data flow event.
	EventId string `json:"eventId,omitempty"`
	// EventTime: Timestamp of data flow event.
	EventTime string `json:"eventTime,omitempty"`
	// Operation: The operation performed by the principal for the data flow event.
	//
	// Possible values:
	//   "OPERATION_UNSPECIFIED" - The operation is unspecified.
	//   "READ" - Represents a read operation.
	//   "MOVE" - Represents a move operation.
	//   "COPY" - Represents a copy operation.
	Operation string `json:"operation,omitempty"`
	// PrincipalEmail: The email address of the principal that initiated the data
	// flow event. The principal could be a user account, service account, Google
	// group, or other.
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// ViolatedLocation: Non-compliant location of the principal or the data
	// destination.
	ViolatedLocation string `json:"violatedLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataRetentionDeletionEvent: Details about data retention deletion
// violations, in which the data is non-compliant based on their retention or
// deletion time, as defined in the applicable data security policy. The Data
// Retention Deletion (DRD) control is a control of the DSPM (Data Security
// Posture Management) suite that enables organizations to manage data
// retention and deletion policies in compliance with regulations, such as GDPR
// and CRPA. DRD supports two primary policy types: maximum storage length (max
// TTL) and minimum storage length (min TTL). Both are aimed at helping
// organizations meet regulatory and data management commitments.
type DataRetentionDeletionEvent struct {
	// DataObjectCount: Number of objects that violated the policy for this
	// resource. If the number is less than 1,000, then the value of this field is
	// the exact number. If the number of objects that violated the policy is
	// greater than or equal to 1,000, then the value of this field is 1000.
	DataObjectCount int64 `json:"dataObjectCount,omitempty,string"`
	// EventDetectionTime: Timestamp indicating when the event was detected.
	EventDetectionTime string `json:"eventDetectionTime,omitempty"`
	// EventType: Type of the DRD event.
	//
	// Possible values:
	//   "EVENT_TYPE_UNSPECIFIED" - Unspecified event type.
	//   "EVENT_TYPE_MAX_TTL_EXCEEDED" - The maximum retention time has been
	// exceeded.
	//   "EVENT_TYPE_MAX_TTL_FROM_CREATION" - Max TTL from the asset's creation
	// time.
	//   "EVENT_TYPE_MAX_TTL_FROM_LAST_MODIFICATION" - Max TTL from the asset's
	// last modification time.
	EventType string `json:"eventType,omitempty"`
	// MaxRetentionAllowed: Maximum duration of retention allowed from the DRD
	// control. This comes from the DRD control where users set a max TTL for their
	// data. For example, suppose that a user sets the max TTL for a Cloud Storage
	// bucket to 90 days. However, an object in that bucket is 100 days old. In
	// this case, a DataRetentionDeletionEvent will be generated for that Cloud
	// Storage bucket, and the max_retention_allowed is 90 days.
	MaxRetentionAllowed string `json:"maxRetentionAllowed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataObjectCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataObjectCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Database: Represents database access information, such as queries. A
// database may be a sub-resource of an instance (as in the case of Cloud SQL
// instances or Cloud Spanner instances), or the database instance itself. Some
// database resources might not have the full resource name
// (https://google.aip.dev/122#full-resource-names) populated because these
// resource types, such as Cloud SQL databases, are not yet supported by Cloud
// Asset Inventory. In these cases only the display name is provided.
type Database struct {
	// DisplayName: The human-readable name of the database that the user connected
	// to.
	DisplayName string `json:"displayName,omitempty"`
	// Grantees: The target usernames, roles, or groups of an SQL privilege grant,
	// which is not an IAM policy change.
	Grantees []string `json:"grantees,omitempty"`
	// Name: Some database resources may not have the full resource name
	// (https://google.aip.dev/122#full-resource-names) populated because these
	// resource types are not yet supported by Cloud Asset Inventory (e.g. Cloud
	// SQL databases). In these cases only the display name will be provided. The
	// full resource name (https://google.aip.dev/122#full-resource-names) of the
	// database that the user connected to, if it is supported by Cloud Asset
	// Inventory.
	Name string `json:"name,omitempty"`
	// Query: The SQL statement that is associated with the database access.
	Query string `json:"query,omitempty"`
	// UserName: The username used to connect to the database. The username might
	// not be an IAM principal and does not have a set format.
	UserName string `json:"userName,omitempty"`
	// Version: The version of the database, for example, POSTGRES_14. See the
	// complete list
	// (https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Dataset: Vertex AI dataset associated with the finding.
type Dataset struct {
	// DisplayName: The user defined display name of dataset, e.g. plants-dataset
	DisplayName string `json:"displayName,omitempty"`
	// Name: Resource name of the dataset, e.g.
	// projects/{project}/locations/{location}/datasets/2094040236064505856
	Name string `json:"name,omitempty"`
	// Source: Data source, such as BigQuery source URI, e.g.
	// bq://scc-nexus-test.AIPPtest.gsod
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// Detection: Memory hash detection contributing to the binary family match.
type Detection struct {
	// Binary: The name of the binary associated with the memory hash signature
	// detection.
	Binary string `json:"binary,omitempty"`
	// PercentPagesMatched: The percentage of memory page hashes in the signature
	// that were matched.
	PercentPagesMatched float64 `json:"percentPagesMatched,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Binary") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Binary") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// Disk: Contains information about the disk associated with the finding.
type Disk struct {
	// Name: The name of the disk, for example,
	// "https://www.googleapis.com/compute/v1/projects/{project-id}/zones/{zone-id}/
	// disks/{disk-id}".
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DiskPath: Path of the file in terms of underlying disk/partition
// identifiers.
type DiskPath struct {
	// PartitionUuid: UUID of the partition (format
	// https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)
	PartitionUuid string `json:"partitionUuid,omitempty"`
	// RelativePath: Relative path of the file in the partition as a JSON encoded
	// string. Example: /home/user1/executable_file.sh
	RelativePath string `json:"relativePath,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PartitionUuid") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartitionUuid") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DynamicMuteRecord: The record of a dynamic mute rule that matches the
// finding.
type DynamicMuteRecord struct {
	// MatchTime: When the dynamic mute rule first matched the finding.
	MatchTime string `json:"matchTime,omitempty"`
	// MuteConfig: The relative resource name of the mute rule, represented by a
	// mute config, that created this record, for example
	// `organizations/123/muteConfigs/mymuteconfig` or
	// `organizations/123/locations/global/muteConfigs/mymuteconfig`.
	MuteConfig string `json:"muteConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EffectiveEventThreatDetectionCustomModule: An
// EffectiveEventThreatDetectionCustomModule is the representation of an Event
// Threat Detection custom module at a specified level of the resource
// hierarchy: organization, folder, or project. If a custom module is inherited
// from a parent organization or folder, the value of the `enablement_state`
// property in EffectiveEventThreatDetectionCustomModule is set to the value
// that is effective in the parent, instead of `INHERITED`. For example, if the
// module is enabled in a parent organization or folder, the effective
// `enablement_state` for the module in all child folders or projects is also
// `enabled`. EffectiveEventThreatDetectionCustomModule is read-only.
type EffectiveEventThreatDetectionCustomModule struct {
	// CloudProvider: The cloud provider of the custom module.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - Unspecified cloud provider.
	//   "GOOGLE_CLOUD_PLATFORM" - Google Cloud.
	//   "AMAZON_WEB_SERVICES" - Amazon Web Services.
	//   "MICROSOFT_AZURE" - Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// Config: Output only. Config for the effective module.
	Config googleapi.RawMessage `json:"config,omitempty"`
	// Description: Output only. The description for the module.
	Description string `json:"description,omitempty"`
	// DisplayName: Output only. The human readable name to be displayed for the
	// module.
	DisplayName string `json:"displayName,omitempty"`
	// EnablementState: Output only. The effective state of enablement for the
	// module at the given level of the hierarchy.
	//
	// Possible values:
	//   "ENABLEMENT_STATE_UNSPECIFIED" - Unspecified enablement state.
	//   "ENABLED" - The module is enabled at the given level.
	//   "DISABLED" - The module is disabled at the given level.
	EnablementState string `json:"enablementState,omitempty"`
	// Name: Output only. The resource name of the effective ETD custom module. Its
	// format is: *
	// `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomMod
	// ules/{module}`. *
	// `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module
	// }`. *
	// `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{modu
	// le}`.
	Name string `json:"name,omitempty"`
	// Type: Output only. Type for the module. e.g. CONFIGURABLE_BAD_IP.
	Type string `json:"type,omitempty"`

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

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

// EnvironmentVariable: A name-value pair representing an environment variable
// used in an operating system process.
type EnvironmentVariable struct {
	// Name: Environment variable name as a JSON encoded string.
	Name string `json:"name,omitempty"`
	// Val: Environment variable value as a JSON encoded string.
	Val string `json:"val,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 EnvironmentVariable) MarshalJSON() ([]byte, error) {
	type NoMethod EnvironmentVariable
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// EventThreatDetectionCustomModule: Represents an instance of an Event Threat
// Detection custom module, including its full module name, display name,
// enablement state, and last updated time. You can create a custom module at
// the organization, folder, or project level. Custom modules that you create
// at the organization or folder level are inherited by child folders and
// projects.
type EventThreatDetectionCustomModule struct {
	// AncestorModule: Output only. The closest ancestor module that this module
	// inherits the enablement state from. The format is the same as the
	// EventThreatDetectionCustomModule resource name.
	AncestorModule string `json:"ancestorModule,omitempty"`
	// CloudProvider: The cloud provider of the custom module.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - Unspecified cloud provider.
	//   "GOOGLE_CLOUD_PLATFORM" - Google Cloud.
	//   "AMAZON_WEB_SERVICES" - Amazon Web Services (AWS).
	//   "MICROSOFT_AZURE" - Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// Config: Config for the module. For the resident module, its config value is
	// defined at this level. For the inherited module, its config value is
	// inherited from the ancestor module.
	Config googleapi.RawMessage `json:"config,omitempty"`
	// Description: The description for the module.
	Description string `json:"description,omitempty"`
	// DisplayName: The human readable name to be displayed for the module.
	DisplayName string `json:"displayName,omitempty"`
	// EnablementState: The state of enablement for the module at the given level
	// of the hierarchy.
	//
	// Possible values:
	//   "ENABLEMENT_STATE_UNSPECIFIED" - Unspecified enablement state.
	//   "ENABLED" - The module is enabled at the given level.
	//   "DISABLED" - The module is disabled at the given level.
	//   "INHERITED" - When the enablement state is inherited.
	EnablementState string `json:"enablementState,omitempty"`
	// LastEditor: Output only. The editor the module was last updated by.
	LastEditor string `json:"lastEditor,omitempty"`
	// Name: Immutable. The resource name of the Event Threat Detection custom
	// module. Its format is: *
	// `organizations/{organization}/eventThreatDetectionSettings/customModules/{mod
	// ule}`. *
	// `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
	// `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
	Name string `json:"name,omitempty"`
	// Type: Type for the module. e.g. CONFIGURABLE_BAD_IP.
	Type string `json:"type,omitempty"`
	// UpdateTime: Output only. The time the module was last updated.
	UpdateTime string `json:"updateTime,omitempty"`

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

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

// ExfilResource: Resource where data was exfiltrated from or exfiltrated to.
type ExfilResource struct {
	// Components: Subcomponents of the asset that was exfiltrated, like URIs used
	// during exfiltration, table names, databases, and filenames. For example,
	// multiple tables might have been exfiltrated from the same Cloud SQL
	// instance, or multiple files might have been exfiltrated from the same Cloud
	// Storage bucket.
	Components []string `json:"components,omitempty"`
	// Name: The resource's full resource name
	// (https://cloud.google.com/apis/design/resource_names#full_resource_name).
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Components") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Components") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Exfiltration: Exfiltration represents a data exfiltration attempt from one
// or more sources to one or more targets. The `sources` attribute lists the
// sources of the exfiltrated data. The `targets` attribute lists the
// destinations the data was copied to.
type Exfiltration struct {
	// Sources: If there are multiple sources, then the data is considered "joined"
	// between them. For instance, BigQuery can join multiple tables, and each
	// table would be considered a source.
	Sources []*ExfilResource `json:"sources,omitempty"`
	// Targets: If there are multiple targets, each target would get a complete
	// copy of the "joined" source data.
	Targets []*ExfilResource `json:"targets,omitempty"`
	// TotalExfiltratedBytes: Total exfiltrated bytes processed for the entire job.
	TotalExfiltratedBytes int64 `json:"totalExfiltratedBytes,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Sources") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Sources") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportFindingsMetadata: The LRO metadata for a ExportFindings request.
type ExportFindingsMetadata struct {
	// BigQueryDestination: Required. The destination BigQuery dataset to export
	// findings to.
	BigQueryDestination *BigQueryDestination `json:"bigQueryDestination,omitempty"`
	// ExportStartTime: Optional. Timestamp at which export was started
	ExportStartTime string `json:"exportStartTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BigQueryDestination") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigQueryDestination") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportFindingsResponse: The response to a ExportFindings request. Contains
// the LRO information.
type ExportFindingsResponse struct {
}

// Expr: Represents a textual expression in the Common Expression Language
// (CEL) syntax. CEL is a C-like expression language. The syntax and semantics
// of CEL are documented at https://github.com/google/cel-spec. Example
// (Comparison): title: "Summary size limit" description: "Determines if a
// summary is less than 100 chars" expression: "document.summary.size() < 100"
// Example (Equality): title: "Requestor is owner" description: "Determines if
// requestor is the document owner" expression: "document.owner ==
// request.auth.claims.email" Example (Logic): title: "Public documents"
// description: "Determine whether the document should be publicly visible"
// expression: "document.type != 'private' && document.type != 'internal'"
// Example (Data Manipulation): title: "Notification string" description:
// "Create a notification string with a timestamp." expression: "'New message
// received at ' + string(document.create_time)" The exact variables and
// functions that may be referenced within an expression are determined by the
// service that evaluates it. See the service documentation for additional
// information.
type Expr struct {
	// Description: Optional. Description of the expression. This is a longer text
	// which describes the expression, e.g. when hovered over it in a UI.
	Description string `json:"description,omitempty"`
	// Expression: Textual representation of an expression in Common Expression
	// Language syntax.
	Expression string `json:"expression,omitempty"`
	// Location: Optional. String indicating the location of the expression for
	// error reporting, e.g. a file name and a position in the file.
	Location string `json:"location,omitempty"`
	// Title: Optional. Title for the expression, i.e. a short string describing
	// its purpose. This can be used e.g. in UIs which allow to enter the
	// expression.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// File: File information about the related binary/library used by an
// executable, or the script used by a script interpreter
type File struct {
	// Contents: Prefix of the file contents as a JSON-encoded string.
	Contents string `json:"contents,omitempty"`
	// DiskPath: Path of the file in terms of underlying disk/partition
	// identifiers.
	DiskPath *DiskPath `json:"diskPath,omitempty"`
	// HashedSize: The length in bytes of the file prefix that was hashed. If
	// hashed_size == size, any hashes reported represent the entire file.
	HashedSize int64 `json:"hashedSize,omitempty,string"`
	// Operations: Operation(s) performed on a file.
	Operations []*FileOperation `json:"operations,omitempty"`
	// PartiallyHashed: True when the hash covers only a prefix of the file.
	PartiallyHashed bool `json:"partiallyHashed,omitempty"`
	// Path: Absolute path of the file as a JSON encoded string.
	Path string `json:"path,omitempty"`
	// Sha256: SHA256 hash of the first hashed_size bytes of the file encoded as a
	// hex string. If hashed_size == size, sha256 represents the SHA256 hash of the
	// entire file.
	Sha256 string `json:"sha256,omitempty"`
	// Size: Size of the file in bytes.
	Size int64 `json:"size,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Contents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Contents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// FileOperation: Operation(s) performed on a file.
type FileOperation struct {
	// Type: The type of the operation
	//
	// Possible values:
	//   "OPERATION_TYPE_UNSPECIFIED" - The operation is unspecified.
	//   "OPEN" - Represents an open operation.
	//   "READ" - Represents a read operation.
	//   "RENAME" - Represents a rename operation.
	//   "WRITE" - Represents a write operation.
	//   "EXECUTE" - Represents an execute operation.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Finding: Security Command Center finding. A finding is a record of
// assessment data like security, risk, health, or privacy, that is ingested
// into Security Command Center for presentation, notification, analysis,
// policy testing, and enforcement. For example, a cross-site scripting (XSS)
// vulnerability in an App Engine application is a finding.
type Finding struct {
	// Access: Access details associated with the finding, such as more information
	// on the caller, which method was accessed, and from where.
	Access *Access `json:"access,omitempty"`
	// AffectedResources: AffectedResources associated with the finding.
	AffectedResources *AffectedResources `json:"affectedResources,omitempty"`
	// AiModel: The AI model associated with the finding.
	AiModel *AiModel `json:"aiModel,omitempty"`
	// Application: Represents an application associated with the finding.
	Application *Application `json:"application,omitempty"`
	// AttackExposure: The results of an attack path simulation relevant to this
	// finding.
	AttackExposure *AttackExposure `json:"attackExposure,omitempty"`
	// BackupDisasterRecovery: Fields related to Backup and DR findings.
	BackupDisasterRecovery *BackupDisasterRecovery `json:"backupDisasterRecovery,omitempty"`
	// CanonicalName: The canonical name of the finding. It's either
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}",
	// "folders/{folder_id}/sources/{source_id}/findings/{finding_id}" or
	// "projects/{project_number}/sources/{source_id}/findings/{finding_id}",
	// depending on the closest CRM ancestor of the resource associated with the
	// finding.
	CanonicalName string `json:"canonicalName,omitempty"`
	// Category: The additional taxonomy group within findings from a given source.
	// This field is immutable after creation time. Example: "XSS_FLASH_INJECTION"
	Category string `json:"category,omitempty"`
	// Chokepoint: Contains details about a chokepoint, which is a resource or
	// resource group where high-risk attack paths converge, based on [attack path
	// simulations]
	// (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_path_simulations).
	// This field cannot be updated. Its value is ignored in all update requests.
	Chokepoint *Chokepoint `json:"chokepoint,omitempty"`
	// CloudArmor: Fields related to Cloud Armor findings.
	CloudArmor *CloudArmor `json:"cloudArmor,omitempty"`
	// CloudDlpDataProfile: Cloud DLP data profile that is associated with the
	// finding.
	CloudDlpDataProfile *CloudDlpDataProfile `json:"cloudDlpDataProfile,omitempty"`
	// CloudDlpInspection: Cloud Data Loss Prevention (Cloud DLP) inspection
	// results that are associated with the finding.
	CloudDlpInspection *CloudDlpInspection `json:"cloudDlpInspection,omitempty"`
	// ComplianceDetails: Details about the compliance implications of the finding.
	ComplianceDetails *ComplianceDetails `json:"complianceDetails,omitempty"`
	// Compliances: Contains compliance information for security standards
	// associated to the finding.
	Compliances []*Compliance `json:"compliances,omitempty"`
	// Connections: Contains information about the IP connection associated with
	// the finding.
	Connections []*Connection `json:"connections,omitempty"`
	// Contacts: Output only. Map containing the points of contact for the given
	// finding. The key represents the type of contact, while the value contains a
	// list of all the contacts that pertain. Please refer to:
	// https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories
	// { "security": { "contacts": [ { "email": "person1@company.com" }, { "email":
	// "person2@company.com" } ] } }
	Contacts map[string]ContactDetails `json:"contacts,omitempty"`
	// Containers: Containers associated with the finding. This field provides
	// information for both Kubernetes and non-Kubernetes containers.
	Containers []*Container `json:"containers,omitempty"`
	// CreateTime: The time at which the finding was created in Security Command
	// Center.
	CreateTime string `json:"createTime,omitempty"`
	// DataAccessEvents: Data access events associated with the finding.
	DataAccessEvents []*DataAccessEvent `json:"dataAccessEvents,omitempty"`
	// DataFlowEvents: Data flow events associated with the finding.
	DataFlowEvents []*DataFlowEvent `json:"dataFlowEvents,omitempty"`
	// DataRetentionDeletionEvents: Data retention deletion events associated with
	// the finding.
	DataRetentionDeletionEvents []*DataRetentionDeletionEvent `json:"dataRetentionDeletionEvents,omitempty"`
	// Database: Database associated with the finding.
	Database *Database `json:"database,omitempty"`
	// Description: Contains more details about the finding.
	Description string `json:"description,omitempty"`
	// Disk: Disk associated with the finding.
	Disk *Disk `json:"disk,omitempty"`
	// EventTime: The time the finding was first detected. If an existing finding
	// is updated, then this is the time the update occurred. For example, if the
	// finding represents an open firewall, this property captures the time the
	// detector believes the firewall became open. The accuracy is determined by
	// the detector. If the finding is later resolved, then this time reflects when
	// the finding was resolved. This must not be set to a value greater than the
	// current timestamp.
	EventTime string `json:"eventTime,omitempty"`
	// Exfiltration: Represents exfiltrations associated with the finding.
	Exfiltration *Exfiltration `json:"exfiltration,omitempty"`
	// ExternalSystems: Output only. Third party SIEM/SOAR fields within SCC,
	// contains external system information and external system finding fields.
	ExternalSystems map[string]GoogleCloudSecuritycenterV1ExternalSystem `json:"externalSystems,omitempty"`
	// ExternalUri: The URI that, if available, points to a web page outside of
	// Security Command Center where additional information about the finding can
	// be found. This field is guaranteed to be either empty or a well formed URL.
	ExternalUri string `json:"externalUri,omitempty"`
	// Files: File associated with the finding.
	Files []*File `json:"files,omitempty"`
	// FindingClass: The class of the finding.
	//
	// Possible values:
	//   "FINDING_CLASS_UNSPECIFIED" - Unspecified finding class.
	//   "THREAT" - Describes unwanted or malicious activity.
	//   "VULNERABILITY" - Describes a potential weakness in software that
	// increases risk to Confidentiality & Integrity & Availability.
	//   "MISCONFIGURATION" - Describes a potential weakness in cloud
	// resource/asset configuration that increases risk.
	//   "OBSERVATION" - Describes a security observation that is for informational
	// purposes.
	//   "SCC_ERROR" - Describes an error that prevents some SCC functionality.
	//   "POSTURE_VIOLATION" - Describes a potential security risk due to a change
	// in the security posture.
	//   "TOXIC_COMBINATION" - Describes a group of security issues that, when the
	// issues occur together, represent a greater risk than when the issues occur
	// independently. A group of such issues is referred to as a toxic combination.
	//   "SENSITIVE_DATA_RISK" - Describes a potential security risk to data assets
	// that contain sensitive data.
	//   "CHOKEPOINT" - Describes a resource or resource group where high risk
	// attack paths converge, based on attack path simulations (APS).
	FindingClass string `json:"findingClass,omitempty"`
	// GroupMemberships: Contains details about groups of which this finding is a
	// member. A group is a collection of findings that are related in some way.
	// This field cannot be updated. Its value is ignored in all update requests.
	GroupMemberships []*GroupMembership `json:"groupMemberships,omitempty"`
	// IamBindings: Represents IAM bindings associated with the finding.
	IamBindings []*IamBinding `json:"iamBindings,omitempty"`
	// Indicator: Represents what's commonly known as an *indicator of compromise*
	// (IoC) in computer forensics. This is an artifact observed on a network or in
	// an operating system that, with high confidence, indicates a computer
	// intrusion. For more information, see Indicator of compromise
	// (https://en.wikipedia.org/wiki/Indicator_of_compromise).
	Indicator *Indicator `json:"indicator,omitempty"`
	// IpRules: IP rules associated with the finding.
	IpRules *IpRules `json:"ipRules,omitempty"`
	// Job: Job associated with the finding.
	Job *Job `json:"job,omitempty"`
	// KernelRootkit: Signature of the kernel rootkit.
	KernelRootkit *KernelRootkit `json:"kernelRootkit,omitempty"`
	// Kubernetes: Kubernetes resources associated with the finding.
	Kubernetes *Kubernetes `json:"kubernetes,omitempty"`
	// LoadBalancers: The load balancers associated with the finding.
	LoadBalancers []*LoadBalancer `json:"loadBalancers,omitempty"`
	// LogEntries: Log entries that are relevant to the finding.
	LogEntries []*LogEntry `json:"logEntries,omitempty"`
	// MitreAttack: MITRE ATT&CK tactics and techniques related to this finding.
	// See: https://attack.mitre.org
	MitreAttack *MitreAttack `json:"mitreAttack,omitempty"`
	// ModuleName: Unique identifier of the module which generated the finding.
	// Example:
	// folders/598186756061/securityHealthAnalyticsSettings/customModules/5679944116
	// 1885
	ModuleName string `json:"moduleName,omitempty"`
	// Mute: Indicates the mute state of a finding (either muted, unmuted or
	// undefined). Unlike other attributes of a finding, a finding provider
	// shouldn't set the value of mute.
	//
	// Possible values:
	//   "MUTE_UNSPECIFIED" - Unspecified.
	//   "MUTED" - Finding has been muted.
	//   "UNMUTED" - Finding has been unmuted.
	//   "UNDEFINED" - Finding has never been muted/unmuted.
	Mute string `json:"mute,omitempty"`
	// MuteInfo: Output only. The mute information regarding this finding.
	MuteInfo *MuteInfo `json:"muteInfo,omitempty"`
	// MuteInitiator: Records additional information about the mute operation, for
	// example, the mute configuration
	// (/security-command-center/docs/how-to-mute-findings) that muted the finding
	// and the user who muted the finding.
	MuteInitiator string `json:"muteInitiator,omitempty"`
	// MuteUpdateTime: Output only. The most recent time this finding was muted or
	// unmuted.
	MuteUpdateTime string `json:"muteUpdateTime,omitempty"`
	// Name: The relative resource name
	// (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
	// of the finding. Example:
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}",
	// "folders/{folder_id}/sources/{source_id}/findings/{finding_id}",
	// "projects/{project_id}/sources/{source_id}/findings/{finding_id}".
	Name string `json:"name,omitempty"`
	// Networks: Represents the VPC networks that the resource is attached to.
	Networks []*Network `json:"networks,omitempty"`
	// NextSteps: Steps to address the finding.
	NextSteps string `json:"nextSteps,omitempty"`
	// Notebook: Notebook associated with the finding.
	Notebook *Notebook `json:"notebook,omitempty"`
	// OrgPolicies: Contains information about the org policies associated with the
	// finding.
	OrgPolicies []*OrgPolicy `json:"orgPolicies,omitempty"`
	// Parent: The relative resource name of the source the finding belongs to.
	// See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// This field is immutable after creation time. For example:
	// "organizations/{organization_id}/sources/{source_id}"
	Parent string `json:"parent,omitempty"`
	// ParentDisplayName: Output only. The human readable display name of the
	// finding source such as "Event Threat Detection" or "Security Health
	// Analytics".
	ParentDisplayName string `json:"parentDisplayName,omitempty"`
	// Processes: Represents operating system processes associated with the
	// Finding.
	Processes []*Process `json:"processes,omitempty"`
	// ResourceName: For findings on Google Cloud resources, the full resource name
	// of the Google Cloud resource this finding is for. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name When
	// the finding is for a non-Google Cloud resource, the resourceName can be a
	// customer or partner defined string. This field is immutable after creation
	// time.
	ResourceName string `json:"resourceName,omitempty"`
	// SecurityMarks: Output only. User specified security marks. These marks are
	// entirely managed by the user and come from the SecurityMarks resource that
	// belongs to the finding.
	SecurityMarks *SecurityMarks `json:"securityMarks,omitempty"`
	// SecurityPosture: The security posture associated with the finding.
	SecurityPosture *SecurityPosture `json:"securityPosture,omitempty"`
	// Severity: The severity of the finding. This field is managed by the source
	// that writes the finding.
	//
	// Possible values:
	//   "SEVERITY_UNSPECIFIED" - This value is used for findings when a source
	// doesn't write a severity value.
	//   "CRITICAL" - Vulnerability: A critical vulnerability is easily
	// discoverable by an external actor, exploitable, and results in the direct
	// ability to execute arbitrary code, exfiltrate data, and otherwise gain
	// additional access and privileges to cloud resources and workloads. Examples
	// include publicly accessible unprotected user data and public SSH access with
	// weak or no passwords. Threat: Indicates a threat that is able to access,
	// modify, or delete data or execute unauthorized code within existing
	// resources.
	//   "HIGH" - Vulnerability: A high risk vulnerability can be easily discovered
	// and exploited in combination with other vulnerabilities in order to gain
	// direct access and the ability to execute arbitrary code, exfiltrate data,
	// and otherwise gain additional access and privileges to cloud resources and
	// workloads. An example is a database with weak or no passwords that is only
	// accessible internally. This database could easily be compromised by an actor
	// that had access to the internal network. Threat: Indicates a threat that is
	// able to create new computational resources in an environment but not able to
	// access data or execute code in existing resources.
	//   "MEDIUM" - Vulnerability: A medium risk vulnerability could be used by an
	// actor to gain access to resources or privileges that enable them to
	// eventually (through multiple steps or a complex exploit) gain access and the
	// ability to execute arbitrary code or exfiltrate data. An example is a
	// service account with access to more projects than it should have. If an
	// actor gains access to the service account, they could potentially use that
	// access to manipulate a project the service account was not intended to.
	// Threat: Indicates a threat that is able to cause operational impact but may
	// not access data or execute unauthorized code.
	//   "LOW" - Vulnerability: A low risk vulnerability hampers a security
	// organization's ability to detect vulnerabilities or active threats in their
	// deployment, or prevents the root cause investigation of security issues. An
	// example is monitoring and logs being disabled for resource configurations
	// and access. Threat: Indicates a threat that has obtained minimal access to
	// an environment but is not able to access data, execute code, or create
	// resources.
	Severity string `json:"severity,omitempty"`
	// SourceProperties: Source specific properties. These properties are managed
	// by the source that writes the finding. The key names in the
	// source_properties map must be between 1 and 255 characters, and must start
	// with a letter and contain alphanumeric characters or underscores only.
	SourceProperties googleapi.RawMessage `json:"sourceProperties,omitempty"`
	// State: The state of the finding.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unspecified state.
	//   "ACTIVE" - The finding requires attention and has not been addressed yet.
	//   "INACTIVE" - The finding has been fixed, triaged as a non-issue or
	// otherwise addressed and is no longer active.
	State string `json:"state,omitempty"`
	// ToxicCombination: Contains details about a group of security issues that,
	// when the issues occur together, represent a greater risk than when the
	// issues occur independently. A group of such issues is referred to as a toxic
	// combination. This field cannot be updated. Its value is ignored in all
	// update requests.
	ToxicCombination *ToxicCombination `json:"toxicCombination,omitempty"`
	// VertexAi: VertexAi associated with the finding.
	VertexAi *VertexAi `json:"vertexAi,omitempty"`
	// Vulnerability: Represents vulnerability-specific fields like CVE and CVSS
	// scores. CVE stands for Common Vulnerabilities and Exposures
	// (https://cve.mitre.org/about/)
	Vulnerability *Vulnerability `json:"vulnerability,omitempty"`

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

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

// Folder: Message that contains the resource name and display name of a folder
// resource.
type Folder struct {
	// ResourceFolder: Full resource name of this folder. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	ResourceFolder string `json:"resourceFolder,omitempty"`
	// ResourceFolderDisplayName: The user defined display name for this folder.
	ResourceFolderDisplayName string `json:"resourceFolderDisplayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceFolder") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceFolder") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Framework: Compliance framework associated with the finding.
type Framework struct {
	// Category: Category of the framework associated with the finding. E.g.
	// Security Benchmark, or Assured Workloads
	//
	// Possible values:
	//   "FRAMEWORK_CATEGORY_UNSPECIFIED" - Default value. This value is unused.
	//   "SECURITY_BENCHMARKS" - Security Benchmarks framework
	//   "ASSURED_WORKLOADS" - Assured Workloads framework
	//   "DATA_SECURITY" - Data Security framework
	//   "GOOGLE_BEST_PRACTICES" - Google Best Practices framework
	Category []string `json:"category,omitempty"`
	// Controls: The controls associated with the framework.
	Controls []*Control `json:"controls,omitempty"`
	// DisplayName: Display name of the framework. For a standard framework, this
	// will look like e.g. PCI DSS 3.2.1, whereas for a custom framework it can be
	// a user defined string like MyFramework
	DisplayName string `json:"displayName,omitempty"`
	// Name: Name of the framework associated with the finding
	Name string `json:"name,omitempty"`
	// Type: Type of the framework associated with the finding, to specify whether
	// the framework is built-in (pre-defined and immutable) or a custom framework
	// defined by the customer (equivalent to security posture)
	//
	// Possible values:
	//   "FRAMEWORK_TYPE_UNSPECIFIED" - Default value. This value is unused.
	//   "FRAMEWORK_TYPE_BUILT_IN" - The framework is a built-in framework if it is
	// created and managed by GCP.
	//   "FRAMEWORK_TYPE_CUSTOM" - The framework is a custom framework if it is
	// created and managed by the user.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Category") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Category") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GcpMetadata: Google Cloud metadata associated with the resource. Only
// applicable if the finding's cloud provider is Google Cloud.
type GcpMetadata struct {
	// Folders: Output only. Contains a Folder message for each folder in the
	// assets ancestry. The first folder is the deepest nested folder, and the last
	// folder is the folder directly under the Organization.
	Folders []*GoogleCloudSecuritycenterV2Folder `json:"folders,omitempty"`
	// Organization: The name of the organization that the resource belongs to.
	Organization string `json:"organization,omitempty"`
	// Parent: The full resource name of resource's parent.
	Parent string `json:"parent,omitempty"`
	// ParentDisplayName: The human readable name of resource's parent.
	ParentDisplayName string `json:"parentDisplayName,omitempty"`
	// Project: The full resource name of project that the resource belongs to.
	Project string `json:"project,omitempty"`
	// ProjectDisplayName: The project ID that the resource belongs to.
	ProjectDisplayName string `json:"projectDisplayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Folders") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Folders") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GetIamPolicyRequest: Request message for `GetIamPolicy` method.
type GetIamPolicyRequest struct {
	// Options: OPTIONAL: A `GetPolicyOptions` object for specifying options to
	// `GetIamPolicy`.
	Options *GetPolicyOptions `json:"options,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Options") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Options") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GetPolicyOptions: Encapsulates settings provided to GetIamPolicy.
type GetPolicyOptions struct {
	// RequestedPolicyVersion: Optional. The maximum policy version that will be
	// used to format the policy. Valid values are 0, 1, and 3. Requests specifying
	// an invalid value will be rejected. Requests for policies with any
	// conditional role bindings must specify version 3. Policies with no
	// conditional role bindings may specify any valid value or leave the field
	// unset. The policy in the response might use the policy version that you
	// specified, or it might use a lower policy version. For example, if you
	// specify version 3, but the policy has no conditional role bindings, the
	// response uses version 1. To learn which resources support conditions in
	// their IAM policies, see the IAM documentation
	// (https://cloud.google.com/iam/help/conditions/resource-policies).
	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RequestedPolicyVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RequestedPolicyVersion") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1BigQueryExport: Configures how to deliver
// Findings to BigQuery Instance.
type GoogleCloudSecuritycenterV1BigQueryExport struct {
	// CreateTime: Output only. The time at which the BigQuery export was created.
	// This field is set by the server and will be ignored if provided on export on
	// creation.
	CreateTime string `json:"createTime,omitempty"`
	// Dataset: The dataset to write findings' updates to. Its format is
	// "projects/[project_id]/datasets/[bigquery_dataset_id]". BigQuery Dataset
	// unique ID must contain only letters (a-z, A-Z), numbers (0-9), or
	// underscores (_).
	Dataset string `json:"dataset,omitempty"`
	// Description: The description of the export (max of 1024 characters).
	Description string `json:"description,omitempty"`
	// Filter: Expression that defines the filter to apply across create/update
	// events of findings. The expression is a list of zero or more restrictions
	// combined via logical operators `AND` and `OR`. Parentheses are supported,
	// and `OR` has higher precedence than `AND`. Restrictions have the form ` `
	// and may have a `-` character in front of them to indicate negation. The
	// fields map to those defined in the corresponding resource. The supported
	// operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer
	// values. * `:`, meaning substring matching, for strings. The supported value
	// types are: * string literals in quotes. * integer literals without quotes. *
	// boolean literals `true` and `false` without quotes.
	Filter string `json:"filter,omitempty"`
	// MostRecentEditor: Output only. Email address of the user who last edited the
	// BigQuery export. This field is set by the server and will be ignored if
	// provided on export creation or update.
	MostRecentEditor string `json:"mostRecentEditor,omitempty"`
	// Name: The relative resource name of this export. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name.
	// Example format:
	// "organizations/{organization_id}/bigQueryExports/{export_id}" Example
	// format: "folders/{folder_id}/bigQueryExports/{export_id}" Example format:
	// "projects/{project_id}/bigQueryExports/{export_id}" This field is provided
	// in responses, and is ignored when provided in create requests.
	Name string `json:"name,omitempty"`
	// Principal: Output only. The service account that needs permission to create
	// table and upload data to the BigQuery dataset.
	Principal string `json:"principal,omitempty"`
	// UpdateTime: Output only. The most recent time at which the BigQuery export
	// was updated. This field is set by the server and will be ignored if provided
	// on export creation or update.
	UpdateTime string `json:"updateTime,omitempty"`

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

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

// GoogleCloudSecuritycenterV1Binding: Represents a Kubernetes RoleBinding or
// ClusterRoleBinding.
type GoogleCloudSecuritycenterV1Binding struct {
	// Name: Name for the binding.
	Name string `json:"name,omitempty"`
	// Ns: Namespace for the binding.
	Ns string `json:"ns,omitempty"`
	// Role: The Role or ClusterRole referenced by the binding.
	Role *Role `json:"role,omitempty"`
	// Subjects: Represents one or more subjects that are bound to the role. Not
	// always available for PATCH requests.
	Subjects []*Subject `json:"subjects,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 GoogleCloudSecuritycenterV1Binding) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV1Binding
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV1BulkMuteFindingsResponse: The response to a
// BulkMute request. Contains the LRO information.
type GoogleCloudSecuritycenterV1BulkMuteFindingsResponse struct {
}

// GoogleCloudSecuritycenterV1CustomConfig: Defines the properties in a custom
// module configuration for Security Health Analytics. Use the custom module
// configuration to create custom detectors that generate custom findings for
// resources that you specify.
type GoogleCloudSecuritycenterV1CustomConfig struct {
	// CustomOutput: Custom output properties.
	CustomOutput *GoogleCloudSecuritycenterV1CustomOutputSpec `json:"customOutput,omitempty"`
	// Description: Text that describes the vulnerability or misconfiguration that
	// the custom module detects. This explanation is returned with each finding
	// instance to help investigators understand the detected issue. The text must
	// be enclosed in quotation marks.
	Description string `json:"description,omitempty"`
	// Predicate: The CEL expression to evaluate to produce findings. When the
	// expression evaluates to true against a resource, a finding is generated.
	Predicate *Expr `json:"predicate,omitempty"`
	// Recommendation: An explanation of the recommended steps that security teams
	// can take to resolve the detected issue. This explanation is returned with
	// each finding generated by this module in the `nextSteps` property of the
	// finding JSON.
	Recommendation string `json:"recommendation,omitempty"`
	// ResourceSelector: The resource types that the custom module operates on.
	// Each custom module can specify up to 5 resource types.
	ResourceSelector *GoogleCloudSecuritycenterV1ResourceSelector `json:"resourceSelector,omitempty"`
	// Severity: The severity to assign to findings generated by the module.
	//
	// Possible values:
	//   "SEVERITY_UNSPECIFIED" - Unspecified severity.
	//   "CRITICAL" - Critical severity.
	//   "HIGH" - High severity.
	//   "MEDIUM" - Medium severity.
	//   "LOW" - Low severity.
	Severity string `json:"severity,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomOutput") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomOutput") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1CustomOutputSpec: A set of optional name-value
// pairs that define custom source properties to return with each finding that
// is generated by the custom module. The custom source properties that are
// defined here are included in the finding JSON under `sourceProperties`.
type GoogleCloudSecuritycenterV1CustomOutputSpec struct {
	// Properties: A list of custom output properties to add to the finding.
	Properties []*GoogleCloudSecuritycenterV1Property `json:"properties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Properties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Properties") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule: An
// EffectiveSecurityHealthAnalyticsCustomModule is the representation of a
// Security Health Analytics custom module at a specified level of the resource
// hierarchy: organization, folder, or project. If a custom module is inherited
// from a parent organization or folder, the value of the `enablementState`
// property in EffectiveSecurityHealthAnalyticsCustomModule is set to the value
// that is effective in the parent, instead of `INHERITED`. For example, if the
// module is enabled in a parent organization or folder, the effective
// enablement_state for the module in all child folders or projects is also
// `enabled`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.
type GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule struct {
	// CloudProvider: The cloud provider of the custom module.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - Unspecified cloud provider.
	//   "GOOGLE_CLOUD_PLATFORM" - Google Cloud.
	//   "AMAZON_WEB_SERVICES" - Amazon Web Services.
	//   "MICROSOFT_AZURE" - Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// CustomConfig: Output only. The user-specified configuration for the module.
	CustomConfig *GoogleCloudSecuritycenterV1CustomConfig `json:"customConfig,omitempty"`
	// DisplayName: Output only. The display name for the custom module. The name
	// must be between 1 and 128 characters, start with a lowercase letter, and
	// contain alphanumeric characters or underscores only.
	DisplayName string `json:"displayName,omitempty"`
	// EnablementState: Output only. The effective state of enablement for the
	// module at the given level of the hierarchy.
	//
	// Possible values:
	//   "ENABLEMENT_STATE_UNSPECIFIED" - Unspecified enablement state.
	//   "ENABLED" - The module is enabled at the given level.
	//   "DISABLED" - The module is disabled at the given level.
	EnablementState string `json:"enablementState,omitempty"`
	// Name: Output only. The resource name of the custom module. Its format is
	// "organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustom
	// Modules/{customModule}", or
	// "folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{cus
	// tomModule}", or
	// "projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{c
	// ustomModule}"
	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. "CloudProvider") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudProvider") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1ExternalSystem: Representation of third party
// SIEM/SOAR fields within SCC.
type GoogleCloudSecuritycenterV1ExternalSystem struct {
	// Assignees: References primary/secondary etc assignees in the external
	// system.
	Assignees []string `json:"assignees,omitempty"`
	// CaseCloseTime: The time when the case was closed, as reported by the
	// external system.
	CaseCloseTime string `json:"caseCloseTime,omitempty"`
	// CaseCreateTime: The time when the case was created, as reported by the
	// external system.
	CaseCreateTime string `json:"caseCreateTime,omitempty"`
	// CasePriority: The priority of the finding's corresponding case in the
	// external system.
	CasePriority string `json:"casePriority,omitempty"`
	// CaseSla: The SLA of the finding's corresponding case in the external system.
	CaseSla string `json:"caseSla,omitempty"`
	// CaseUri: The link to the finding's corresponding case in the external
	// system.
	CaseUri string `json:"caseUri,omitempty"`
	// ExternalSystemUpdateTime: The time when the case was last updated, as
	// reported by the external system.
	ExternalSystemUpdateTime string `json:"externalSystemUpdateTime,omitempty"`
	// ExternalUid: The identifier that's used to track the finding's corresponding
	// case in the external system.
	ExternalUid string `json:"externalUid,omitempty"`
	// Name: Full resource name of the external system, for example:
	// "organizations/1234/sources/5678/findings/123456/externalSystems/jira",
	// "folders/1234/sources/5678/findings/123456/externalSystems/jira",
	// "projects/1234/sources/5678/findings/123456/externalSystems/jira"
	Name string `json:"name,omitempty"`
	// Status: The most recent status of the finding's corresponding case, as
	// reported by the external system.
	Status string `json:"status,omitempty"`
	// TicketInfo: Information about the ticket, if any, that is being used to
	// track the resolution of the issue that is identified by this finding.
	TicketInfo *TicketInfo `json:"ticketInfo,omitempty"`

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

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

// GoogleCloudSecuritycenterV1MuteConfig: A mute config is a Cloud SCC resource
// that contains the configuration to mute create/update events of findings.
type GoogleCloudSecuritycenterV1MuteConfig struct {
	// CreateTime: Output only. The time at which the mute config was created. This
	// field is set by the server and will be ignored if provided on config
	// creation.
	CreateTime string `json:"createTime,omitempty"`
	// Description: A description of the mute config.
	Description string `json:"description,omitempty"`
	// DisplayName: The human readable name to be displayed for the mute config.
	DisplayName string `json:"displayName,omitempty"`
	// ExpiryTime: Optional. The expiry of the mute config. Only applicable for
	// dynamic configs. If the expiry is set, when the config expires, it is
	// removed from all findings.
	ExpiryTime string `json:"expiryTime,omitempty"`
	// Filter: Required. An expression that defines the filter to apply across
	// create/update events of findings. While creating a filter string, be mindful
	// of the scope in which the mute configuration is being created. E.g., If a
	// filter contains project = X but is created under the project = Y scope, it
	// might not match any findings. The following field and operator combinations
	// are supported: * severity: `=`, `:` * category: `=`, `:` * resource.name:
	// `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name:
	// `=`, `:` * resource.folders.resource_folder: `=`, `:` *
	// resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` *
	// resource.type: `=`, `:` * finding_class: `=`, `:` * indicator.ip_addresses:
	// `=`, `:` * indicator.domains: `=`, `:`
	Filter string `json:"filter,omitempty"`
	// MostRecentEditor: Output only. Email address of the user who last edited the
	// mute config. This field is set by the server and will be ignored if provided
	// on config creation or update.
	MostRecentEditor string `json:"mostRecentEditor,omitempty"`
	// Name: This field will be ignored if provided on config creation. Format
	// `organizations/{organization}/muteConfigs/{mute_config}`
	// `folders/{folder}/muteConfigs/{mute_config}`
	// `projects/{project}/muteConfigs/{mute_config}`
	// `organizations/{organization}/locations/global/muteConfigs/{mute_config}`
	// `folders/{folder}/locations/global/muteConfigs/{mute_config}`
	// `projects/{project}/locations/global/muteConfigs/{mute_config}`
	Name string `json:"name,omitempty"`
	// Type: Optional. The type of the mute config, which determines what type of
	// mute state the config affects. The static mute state takes precedence over
	// the dynamic mute state. Immutable after creation. STATIC by default if not
	// set during creation.
	//
	// Possible values:
	//   "MUTE_CONFIG_TYPE_UNSPECIFIED" - Unused.
	//   "STATIC" - A static mute config, which sets the static mute state of
	// future matching findings to muted. Once the static mute state has been set,
	// finding or config modifications will not affect the state.
	//   "DYNAMIC" - A dynamic mute config, which is applied to existing and future
	// matching findings, setting their dynamic mute state to "muted". If the
	// config is updated or deleted, or a matching finding is updated, such that
	// the finding doesn't match the config, the config will be removed from the
	// finding, and the finding's dynamic mute state may become "unmuted" (unless
	// other configs still match).
	Type string `json:"type,omitempty"`
	// UpdateTime: Output only. The most recent time at which the mute config was
	// updated. This field is set by the server and will be ignored if provided on
	// config creation or update.
	UpdateTime string `json:"updateTime,omitempty"`

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

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

// GoogleCloudSecuritycenterV1NotificationMessage: Cloud SCC's Notification
type GoogleCloudSecuritycenterV1NotificationMessage struct {
	// Finding: If it's a Finding based notification config, this field will be
	// populated.
	Finding *Finding `json:"finding,omitempty"`
	// NotificationConfigName: Name of the notification config that generated
	// current notification.
	NotificationConfigName string `json:"notificationConfigName,omitempty"`
	// Resource: The Cloud resource tied to this notification's Finding.
	Resource *GoogleCloudSecuritycenterV1Resource `json:"resource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Finding") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Finding") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1Property: An individual name-value pair that
// defines a custom source property.
type GoogleCloudSecuritycenterV1Property struct {
	// Name: Name of the property for the custom output.
	Name string `json:"name,omitempty"`
	// ValueExpression: The CEL expression for the custom output. A resource
	// property can be specified to return the value of the property or a text
	// string enclosed in quotation marks.
	ValueExpression *Expr `json:"valueExpression,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 GoogleCloudSecuritycenterV1Property) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV1Property
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV1Resource: Information related to the Google Cloud
// resource.
type GoogleCloudSecuritycenterV1Resource struct {
	// AwsMetadata: The AWS metadata associated with the finding.
	AwsMetadata *AwsMetadata `json:"awsMetadata,omitempty"`
	// AzureMetadata: The Azure metadata associated with the finding.
	AzureMetadata *AzureMetadata `json:"azureMetadata,omitempty"`
	// CloudProvider: Indicates which cloud provider the resource resides in.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - The cloud provider is unspecified.
	//   "GOOGLE_CLOUD_PLATFORM" - The cloud provider is Google Cloud.
	//   "AMAZON_WEB_SERVICES" - The cloud provider is Amazon Web Services.
	//   "MICROSOFT_AZURE" - The cloud provider is Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// DisplayName: The human readable name of the resource.
	DisplayName string `json:"displayName,omitempty"`
	// Folders: Output only. Contains a Folder message for each folder in the
	// assets ancestry. The first folder is the deepest nested folder, and the last
	// folder is the folder directly under the Organization.
	Folders []*Folder `json:"folders,omitempty"`
	// Location: The region or location of the service (if applicable).
	Location string `json:"location,omitempty"`
	// Name: The full resource name of the resource. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	Name string `json:"name,omitempty"`
	// Organization: Indicates which organization or tenant in the cloud provider
	// the finding applies to.
	Organization string `json:"organization,omitempty"`
	// Parent: The full resource name of resource's parent.
	Parent string `json:"parent,omitempty"`
	// ParentDisplayName: The human readable name of resource's parent.
	ParentDisplayName string `json:"parentDisplayName,omitempty"`
	// Project: The full resource name of project that the resource belongs to.
	Project string `json:"project,omitempty"`
	// ProjectDisplayName: The project ID that the resource belongs to.
	ProjectDisplayName string `json:"projectDisplayName,omitempty"`
	// ResourcePath: Provides the path to the resource within the resource
	// hierarchy.
	ResourcePath *ResourcePath `json:"resourcePath,omitempty"`
	// ResourcePathString: A string representation of the resource path. For Google
	// Cloud, it has the format of
	// `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/proj
	// ects/{project_id}` where there can be any number of folders. For AWS, it has
	// the format of
	// `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id
	// }/account/{account_id}` where there can be any number of organizational
	// units. For Azure, it has the format of
	// `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription
	// _id}/rg/{resource_group_name}` where there can be any number of management
	// groups.
	ResourcePathString string `json:"resourcePathString,omitempty"`
	// Service: The parent service or product from which the resource is provided,
	// for example, GKE or SNS.
	Service string `json:"service,omitempty"`
	// Type: The full resource type of the resource.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AwsMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AwsMetadata") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudSecuritycenterV1ResourceValueConfig: A resource value
// configuration (RVC) is a mapping configuration of user's resources to
// resource values. Used in Attack path simulations.
type GoogleCloudSecuritycenterV1ResourceValueConfig struct {
	// CloudProvider: Cloud provider this configuration applies to
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - The cloud provider is unspecified.
	//   "GOOGLE_CLOUD_PLATFORM" - The cloud provider is Google Cloud.
	//   "AMAZON_WEB_SERVICES" - The cloud provider is Amazon Web Services.
	//   "MICROSOFT_AZURE" - The cloud provider is Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// CreateTime: Output only. Timestamp this resource value configuration was
	// created.
	CreateTime string `json:"createTime,omitempty"`
	// Description: Description of the resource value configuration.
	Description string `json:"description,omitempty"`
	// Name: Name for the resource value configuration
	Name string `json:"name,omitempty"`
	// ResourceLabelsSelector: List of resource labels to search for, evaluated
	// with `AND`. For example, "resource_labels_selector": {"key": "value",
	// "env": "prod"}` will match resources with labels "key": "value" `AND` "env":
	// "prod"
	// https://cloud.google.com/resource-manager/docs/creating-managing-labels
	ResourceLabelsSelector map[string]string `json:"resourceLabelsSelector,omitempty"`
	// ResourceType: Apply resource_value only to resources that match
	// resource_type. resource_type will be checked with `AND` of other resources.
	// For example, "storage.googleapis.com/Bucket" with resource_value "HIGH" will
	// apply "HIGH" value only to "storage.googleapis.com/Bucket" resources.
	ResourceType string `json:"resourceType,omitempty"`
	// ResourceValue: Required. Resource value level this expression represents
	//
	// Possible values:
	//   "RESOURCE_VALUE_UNSPECIFIED" - Unspecific value
	//   "HIGH" - High resource value
	//   "MEDIUM" - Medium resource value
	//   "LOW" - Low resource value
	//   "NONE" - No resource value, e.g. ignore these resources
	ResourceValue string `json:"resourceValue,omitempty"`
	// Scope: Project or folder to scope this configuration to. For example,
	// "project/456" would apply this configuration only to resources in
	// "project/456" scope will be checked with `AND` of other resources.
	Scope string `json:"scope,omitempty"`
	// SensitiveDataProtectionMapping: A mapping of the sensitivity on Sensitive
	// Data Protection finding to resource values. This mapping can only be used in
	// combination with a resource_type that is related to BigQuery, e.g.
	// "bigquery.googleapis.com/Dataset".
	SensitiveDataProtectionMapping *GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping `json:"sensitiveDataProtectionMapping,omitempty"`
	// TagValues: Required. Tag values combined with `AND` to check against. For
	// Google Cloud resources, they are tag value IDs in the form of
	// "tagValues/123". Example: `[ "tagValues/123", "tagValues/456",
	// "tagValues/789" ]`
	// https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
	TagValues []string `json:"tagValues,omitempty"`
	// UpdateTime: Output only. Timestamp this resource value configuration was
	// last updated.
	UpdateTime string `json:"updateTime,omitempty"`

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

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

// GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse: Response of asset
// discovery run
type GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse struct {
	// Duration: The duration between asset discovery run start and end
	Duration string `json:"duration,omitempty"`
	// State: The state of an asset discovery run.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Asset discovery run state was unspecified.
	//   "COMPLETED" - Asset discovery run completed successfully.
	//   "SUPERSEDED" - Asset discovery run was cancelled with tasks still pending,
	// as another run for the same organization was started with a higher priority.
	//   "TERMINATED" - Asset discovery run was killed and terminated.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Duration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Duration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule: Represents
// an instance of a Security Health Analytics custom module, including its full
// module name, display name, enablement state, and last updated time. You can
// create a custom module at the organization, folder, or project level. Custom
// modules that you create at the organization or folder level are inherited by
// the child folders and projects.
type GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule struct {
	// AncestorModule: Output only. If empty, indicates that the custom module was
	// created in the organization, folder, or project in which you are viewing the
	// custom module. Otherwise, `ancestor_module` specifies the organization or
	// folder from which the custom module is inherited.
	AncestorModule string `json:"ancestorModule,omitempty"`
	// CloudProvider: The cloud provider of the custom module.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - Unspecified cloud provider.
	//   "GOOGLE_CLOUD_PLATFORM" - Google Cloud.
	//   "AMAZON_WEB_SERVICES" - Amazon Web Services (AWS).
	//   "MICROSOFT_AZURE" - Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// CustomConfig: The user specified custom configuration for the module.
	CustomConfig *GoogleCloudSecuritycenterV1CustomConfig `json:"customConfig,omitempty"`
	// DisplayName: The display name of the Security Health Analytics custom
	// module. This display name becomes the finding category for all findings that
	// are returned by this custom module. The display name must be between 1 and
	// 128 characters, start with a lowercase letter, and contain alphanumeric
	// characters or underscores only.
	DisplayName string `json:"displayName,omitempty"`
	// EnablementState: The enablement state of the custom module.
	//
	// Possible values:
	//   "ENABLEMENT_STATE_UNSPECIFIED" - Unspecified enablement state.
	//   "ENABLED" - The module is enabled at the given CRM resource.
	//   "DISABLED" - The module is disabled at the given CRM resource.
	//   "INHERITED" - State is inherited from an ancestor module. The module will
	// either be effectively ENABLED or DISABLED based on its closest non-inherited
	// ancestor module in the CRM hierarchy.
	EnablementState string `json:"enablementState,omitempty"`
	// LastEditor: Output only. The editor that last updated the custom module.
	LastEditor string `json:"lastEditor,omitempty"`
	// Name: Immutable. The resource name of the custom module. Its format is
	// "organizations/{organization}/securityHealthAnalyticsSettings/customModules/{
	// customModule}", or
	// "folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule
	// }", or
	// "projects/{project}/securityHealthAnalyticsSettings/customModules/{customModu
	// le}" The id {customModule} is server-generated and is not user settable. It
	// will be a numeric id containing 1-20 digits.
	Name string `json:"name,omitempty"`
	// UpdateTime: Output only. The time at which the custom module was last
	// updated.
	UpdateTime string `json:"updateTime,omitempty"`

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

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

// GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping: Resource value
// mapping for Sensitive Data Protection findings. If any of these mappings
// have a resource value that is not unspecified, the resource_value field will
// be ignored when reading this configuration.
type GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping struct {
	// HighSensitivityMapping: Resource value mapping for high-sensitivity
	// Sensitive Data Protection findings
	//
	// Possible values:
	//   "RESOURCE_VALUE_UNSPECIFIED" - Unspecific value
	//   "HIGH" - High resource value
	//   "MEDIUM" - Medium resource value
	//   "LOW" - Low resource value
	//   "NONE" - No resource value, e.g. ignore these resources
	HighSensitivityMapping string `json:"highSensitivityMapping,omitempty"`
	// MediumSensitivityMapping: Resource value mapping for medium-sensitivity
	// Sensitive Data Protection findings
	//
	// Possible values:
	//   "RESOURCE_VALUE_UNSPECIFIED" - Unspecific value
	//   "HIGH" - High resource value
	//   "MEDIUM" - Medium resource value
	//   "LOW" - Low resource value
	//   "NONE" - No resource value, e.g. ignore these resources
	MediumSensitivityMapping string `json:"mediumSensitivityMapping,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HighSensitivityMapping") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HighSensitivityMapping") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse: Response of asset
// discovery run
type GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse struct {
	// Duration: The duration between asset discovery run start and end
	Duration string `json:"duration,omitempty"`
	// State: The state of an asset discovery run.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Asset discovery run state was unspecified.
	//   "COMPLETED" - Asset discovery run completed successfully.
	//   "SUPERSEDED" - Asset discovery run was cancelled with tasks still pending,
	// as another run for the same organization was started with a higher priority.
	//   "TERMINATED" - Asset discovery run was killed and terminated.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Duration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Duration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1p1beta1Finding: Security Command Center finding.
// A finding is a record of assessment data (security, risk, health or privacy)
// ingested into Security Command Center for presentation, notification,
// analysis, policy testing, and enforcement. For example, an XSS vulnerability
// in an App Engine application is a finding.
type GoogleCloudSecuritycenterV1p1beta1Finding struct {
	// CanonicalName: The canonical name of the finding. It's either
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}",
	// "folders/{folder_id}/sources/{source_id}/findings/{finding_id}" or
	// "projects/{project_number}/sources/{source_id}/findings/{finding_id}",
	// depending on the closest CRM ancestor of the resource associated with the
	// finding.
	CanonicalName string `json:"canonicalName,omitempty"`
	// Category: The additional taxonomy group within findings from a given source.
	// This field is immutable after creation time. Example: "XSS_FLASH_INJECTION"
	Category string `json:"category,omitempty"`
	// CreateTime: The time at which the finding was created in Security Command
	// Center.
	CreateTime string `json:"createTime,omitempty"`
	// EventTime: The time at which the event took place, or when an update to the
	// finding occurred. For example, if the finding represents an open firewall it
	// would capture the time the detector believes the firewall became open. The
	// accuracy is determined by the detector. If the finding were to be resolved
	// afterward, this time would reflect when the finding was resolved. Must not
	// be set to a value greater than the current timestamp.
	EventTime string `json:"eventTime,omitempty"`
	// ExternalUri: The URI that, if available, points to a web page outside of
	// Security Command Center where additional information about the finding can
	// be found. This field is guaranteed to be either empty or a well formed URL.
	ExternalUri string `json:"externalUri,omitempty"`
	// Name: The relative resource name of this finding. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Example:
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}"
	Name string `json:"name,omitempty"`
	// Parent: The relative resource name of the source the finding belongs to.
	// See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// This field is immutable after creation time. For example:
	// "organizations/{organization_id}/sources/{source_id}"
	Parent string `json:"parent,omitempty"`
	// ResourceName: For findings on Google Cloud resources, the full resource name
	// of the Google Cloud resource this finding is for. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name When
	// the finding is for a non-Google Cloud resource, the resourceName can be a
	// customer or partner defined string. This field is immutable after creation
	// time.
	ResourceName string `json:"resourceName,omitempty"`
	// SecurityMarks: Output only. User specified security marks. These marks are
	// entirely managed by the user and come from the SecurityMarks resource that
	// belongs to the finding.
	SecurityMarks *GoogleCloudSecuritycenterV1p1beta1SecurityMarks `json:"securityMarks,omitempty"`
	// Severity: The severity of the finding. This field is managed by the source
	// that writes the finding.
	//
	// Possible values:
	//   "SEVERITY_UNSPECIFIED" - No severity specified. The default value.
	//   "CRITICAL" - Critical severity.
	//   "HIGH" - High severity.
	//   "MEDIUM" - Medium severity.
	//   "LOW" - Low severity.
	Severity string `json:"severity,omitempty"`
	// SourceProperties: Source specific properties. These properties are managed
	// by the source that writes the finding. The key names in the
	// source_properties map must be between 1 and 255 characters, and must start
	// with a letter and contain alphanumeric characters or underscores only.
	SourceProperties googleapi.RawMessage `json:"sourceProperties,omitempty"`
	// State: The state of the finding.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unspecified state.
	//   "ACTIVE" - The finding requires attention and has not been addressed yet.
	//   "INACTIVE" - The finding has been fixed, triaged as a non-issue or
	// otherwise addressed and is no longer active.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1p1beta1Folder: Message that contains the resource
// name and display name of a folder resource.
type GoogleCloudSecuritycenterV1p1beta1Folder struct {
	// ResourceFolder: Full resource name of this folder. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	ResourceFolder string `json:"resourceFolder,omitempty"`
	// ResourceFolderDisplayName: The user defined display name for this folder.
	ResourceFolderDisplayName string `json:"resourceFolderDisplayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceFolder") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceFolder") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1p1beta1NotificationMessage: Security Command
// Center's Notification
type GoogleCloudSecuritycenterV1p1beta1NotificationMessage struct {
	// Finding: If it's a Finding based notification config, this field will be
	// populated.
	Finding *GoogleCloudSecuritycenterV1p1beta1Finding `json:"finding,omitempty"`
	// NotificationConfigName: Name of the notification config that generated
	// current notification.
	NotificationConfigName string `json:"notificationConfigName,omitempty"`
	// Resource: The Cloud resource tied to the notification.
	Resource *GoogleCloudSecuritycenterV1p1beta1Resource `json:"resource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Finding") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Finding") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1p1beta1Resource: Information related to the
// Google Cloud resource.
type GoogleCloudSecuritycenterV1p1beta1Resource struct {
	// Folders: Output only. Contains a Folder message for each folder in the
	// assets ancestry. The first folder is the deepest nested folder, and the last
	// folder is the folder directly under the Organization.
	Folders []*GoogleCloudSecuritycenterV1p1beta1Folder `json:"folders,omitempty"`
	// Name: The full resource name of the resource. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	Name string `json:"name,omitempty"`
	// Parent: The full resource name of resource's parent.
	Parent string `json:"parent,omitempty"`
	// ParentDisplayName: The human readable name of resource's parent.
	ParentDisplayName string `json:"parentDisplayName,omitempty"`
	// Project: The full resource name of project that the resource belongs to.
	Project string `json:"project,omitempty"`
	// ProjectDisplayName: The project id that the resource belongs to.
	ProjectDisplayName string `json:"projectDisplayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Folders") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Folders") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse: Response of
// asset discovery run
type GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse struct {
	// Duration: The duration between asset discovery run start and end
	Duration string `json:"duration,omitempty"`
	// State: The state of an asset discovery run.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Asset discovery run state was unspecified.
	//   "COMPLETED" - Asset discovery run completed successfully.
	//   "SUPERSEDED" - Asset discovery run was cancelled with tasks still pending,
	// as another run for the same organization was started with a higher priority.
	//   "TERMINATED" - Asset discovery run was killed and terminated.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Duration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Duration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV1p1beta1SecurityMarks: User specified security
// marks that are attached to the parent Security Command Center resource.
// Security marks are scoped within a Security Command Center organization --
// they can be modified and viewed by all users who have proper permissions on
// the organization.
type GoogleCloudSecuritycenterV1p1beta1SecurityMarks struct {
	// CanonicalName: The canonical name of the marks. Examples:
	// "organizations/{organization_id}/assets/{asset_id}/securityMarks"
	// "folders/{folder_id}/assets/{asset_id}/securityMarks"
	// "projects/{project_number}/assets/{asset_id}/securityMarks"
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/se
	// curityMarks"
	// "folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks"
	//
	// "projects/{project_number}/sources/{source_id}/findings/{finding_id}/security
	// Marks"
	CanonicalName string `json:"canonicalName,omitempty"`
	// Marks: Mutable user specified security marks belonging to the parent
	// resource. Constraints are as follows: * Keys and values are treated as case
	// insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys
	// must be letters, numbers, underscores, or dashes * Values have leading and
	// trailing whitespace trimmed, remaining characters must be between 1 - 4096
	// characters (inclusive)
	Marks map[string]string `json:"marks,omitempty"`
	// Name: The relative resource name of the SecurityMarks. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Examples: "organizations/{organization_id}/assets/{asset_id}/securityMarks"
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/se
	// curityMarks".
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Access: Represents an access event.
type GoogleCloudSecuritycenterV2Access struct {
	// CallerIp: Caller's IP address, such as "1.1.1.1".
	CallerIp string `json:"callerIp,omitempty"`
	// CallerIpGeo: The caller IP's geolocation, which identifies where the call
	// came from.
	CallerIpGeo *GoogleCloudSecuritycenterV2Geolocation `json:"callerIpGeo,omitempty"`
	// MethodName: The method that the service account called, e.g. "SetIamPolicy".
	MethodName string `json:"methodName,omitempty"`
	// PrincipalEmail: Associated email, such as "foo@google.com". The email
	// address of the authenticated user or a service account acting on behalf of a
	// third party principal making the request. For third party identity callers,
	// the `principal_subject` field is populated instead of this field. For
	// privacy reasons, the principal email address is sometimes redacted. For more
	// information, see Caller identities in audit logs
	// (https://cloud.google.com/logging/docs/audit#user-id).
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// PrincipalSubject: A string that represents the principal_subject that is
	// associated with the identity. Unlike `principal_email`, `principal_subject`
	// supports principals that aren't associated with email addresses, such as
	// third party principals. For most identities, the format is
	// `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`.
	// Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD,
	// still use the legacy format `serviceAccount:{identity pool
	// name}[{subject}]`.
	PrincipalSubject string `json:"principalSubject,omitempty"`
	// ServiceAccountDelegationInfo: The identity delegation history of an
	// authenticated service account that made the request. The
	// `serviceAccountDelegationInfo[]` object contains information about the real
	// authorities that try to access Google Cloud resources by delegating on a
	// service account. When multiple authorities are present, they are guaranteed
	// to be sorted based on the original ordering of the identity delegation
	// events.
	ServiceAccountDelegationInfo []*GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo `json:"serviceAccountDelegationInfo,omitempty"`
	// ServiceAccountKeyName: The name of the service account key that was used to
	// create or exchange credentials when authenticating the service account that
	// made the request. This is a scheme-less URI full resource name. For example:
	// "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{k
	// ey}".
	ServiceAccountKeyName string `json:"serviceAccountKeyName,omitempty"`
	// ServiceName: This is the API service that the service account made a call
	// to, e.g. "iam.googleapis.com"
	ServiceName string `json:"serviceName,omitempty"`
	// UserAgent: The caller's user agent string associated with the finding.
	UserAgent string `json:"userAgent,omitempty"`
	// UserAgentFamily: Type of user agent associated with the finding. For
	// example, an operating system shell or an embedded or standalone application.
	UserAgentFamily string `json:"userAgentFamily,omitempty"`
	// UserName: A string that represents a username. The username provided depends
	// on the type of the finding and is likely not an IAM principal. For example,
	// this can be a system username if the finding is related to a virtual
	// machine, or it can be an application login username.
	UserName string `json:"userName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallerIp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallerIp") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AccessReview: Conveys information about a
// Kubernetes access review (such as one returned by a `kubectl auth can-i`
// (https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access)
// command) that was involved in a finding.
type GoogleCloudSecuritycenterV2AccessReview struct {
	// Group: The API group of the resource. "*" means all.
	Group string `json:"group,omitempty"`
	// Name: The name of the resource being requested. Empty means all.
	Name string `json:"name,omitempty"`
	// Ns: Namespace of the action being requested. Currently, there is no
	// distinction between no namespace and all namespaces. Both are represented by
	// "" (empty).
	Ns string `json:"ns,omitempty"`
	// Resource: The optional resource type requested. "*" means all.
	Resource string `json:"resource,omitempty"`
	// Subresource: The optional subresource type.
	Subresource string `json:"subresource,omitempty"`
	// Verb: A Kubernetes resource API verb, like get, list, watch, create, update,
	// delete, proxy. "*" means all.
	Verb string `json:"verb,omitempty"`
	// Version: The API version of the resource. "*" means all.
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Group") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Group") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AdaptiveProtection: Information about Google
// Cloud Armor Adaptive Protection
// (https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).
type GoogleCloudSecuritycenterV2AdaptiveProtection struct {
	// Confidence: A score of 0 means that there is low confidence that the
	// detected event is an actual attack. A score of 1 means that there is high
	// confidence that the detected event is an attack. See the Adaptive Protection
	// documentation
	// (https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning)
	// for further explanation.
	Confidence float64 `json:"confidence,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Confidence") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Confidence") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudSecuritycenterV2AffectedResources: Details about resources
// affected by this finding.
type GoogleCloudSecuritycenterV2AffectedResources struct {
	// Count: The count of resources affected by the finding.
	Count int64 `json:"count,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AiModel: Contains information about the AI model
// associated with the finding.
type GoogleCloudSecuritycenterV2AiModel struct {
	// DeploymentPlatform: The platform on which the model is deployed.
	//
	// Possible values:
	//   "DEPLOYMENT_PLATFORM_UNSPECIFIED" - Unspecified deployment platform.
	//   "VERTEX_AI" - Vertex AI.
	//   "GKE" - Google Kubernetes Engine.
	//   "GCE" - Google Compute Engine.
	//   "FINE_TUNED_MODEL" - Fine tuned model.
	DeploymentPlatform string `json:"deploymentPlatform,omitempty"`
	// DisplayName: The user defined display name of model. Ex.
	// baseline-classification-model
	DisplayName string `json:"displayName,omitempty"`
	// Domain: The domain of the model, for example, “image-classification”.
	Domain string `json:"domain,omitempty"`
	// Library: The name of the model library, for example, “transformers”.
	Library string `json:"library,omitempty"`
	// Location: The region in which the model is used, for example,
	// “us-central1”.
	Location string `json:"location,omitempty"`
	// Name: The name of the AI model, for example, "gemini:1.0.0".
	Name string `json:"name,omitempty"`
	// Publisher: The publisher of the model, for example, “google” or
	// “nvidia”.
	Publisher string `json:"publisher,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeploymentPlatform") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeploymentPlatform") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Allowed: Allowed IP rule.
type GoogleCloudSecuritycenterV2Allowed struct {
	// IpRules: Optional. Optional list of allowed IP rules.
	IpRules []*GoogleCloudSecuritycenterV2IpRule `json:"ipRules,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpRules") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpRules") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Application: Represents an application associated
// with a finding.
type GoogleCloudSecuritycenterV2Application struct {
	// BaseUri: The base URI that identifies the network location of the
	// application in which the vulnerability was detected. For example,
	// `http://example.com`.
	BaseUri string `json:"baseUri,omitempty"`
	// FullUri: The full URI with payload that could be used to reproduce the
	// vulnerability. For example, `http://example.com?p=aMmYgI6H`.
	FullUri string `json:"fullUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BaseUri") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BaseUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Attack: Information about DDoS attack volume and
// classification.
type GoogleCloudSecuritycenterV2Attack struct {
	// Classification: Type of attack, for example, 'SYN-flood', 'NTP-udp', or
	// 'CHARGEN-udp'.
	Classification string `json:"classification,omitempty"`
	// VolumeBps: Total BPS (bytes per second) volume of attack. Deprecated - refer
	// to volume_bps_long instead.
	VolumeBps int64 `json:"volumeBps,omitempty"`
	// VolumeBpsLong: Total BPS (bytes per second) volume of attack.
	VolumeBpsLong int64 `json:"volumeBpsLong,omitempty,string"`
	// VolumePps: Total PPS (packets per second) volume of attack. Deprecated -
	// refer to volume_pps_long instead.
	VolumePps int64 `json:"volumePps,omitempty"`
	// VolumePpsLong: Total PPS (packets per second) volume of attack.
	VolumePpsLong int64 `json:"volumePpsLong,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Classification") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Classification") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AttackExposure: An attack exposure contains the
// results of an attack path simulation run.
type GoogleCloudSecuritycenterV2AttackExposure struct {
	// AttackExposureResult: The resource name of the attack path simulation result
	// that contains the details regarding this attack exposure score. Example:
	// `organizations/123/simulations/456/attackExposureResults/789`
	AttackExposureResult string `json:"attackExposureResult,omitempty"`
	// ExposedHighValueResourcesCount: The number of high value resources that are
	// exposed as a result of this finding.
	ExposedHighValueResourcesCount int64 `json:"exposedHighValueResourcesCount,omitempty"`
	// ExposedLowValueResourcesCount: The number of high value resources that are
	// exposed as a result of this finding.
	ExposedLowValueResourcesCount int64 `json:"exposedLowValueResourcesCount,omitempty"`
	// ExposedMediumValueResourcesCount: The number of medium value resources that
	// are exposed as a result of this finding.
	ExposedMediumValueResourcesCount int64 `json:"exposedMediumValueResourcesCount,omitempty"`
	// LatestCalculationTime: The most recent time the attack exposure was updated
	// on this finding.
	LatestCalculationTime string `json:"latestCalculationTime,omitempty"`
	// Score: A number between 0 (inclusive) and infinity that represents how
	// important this finding is to remediate. The higher the score, the more
	// important it is to remediate.
	Score float64 `json:"score,omitempty"`
	// State: Output only. What state this AttackExposure is in. This captures
	// whether or not an attack exposure has been calculated or not.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is not specified.
	//   "CALCULATED" - The attack exposure has been calculated.
	//   "NOT_CALCULATED" - The attack exposure has not been calculated.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttackExposureResult") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttackExposureResult") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudSecuritycenterV2AwsAccount: An AWS account that is a member of an
// organization.
type GoogleCloudSecuritycenterV2AwsAccount struct {
	// Id: The unique identifier (ID) of the account, containing exactly 12 digits.
	Id string `json:"id,omitempty"`
	// Name: The friendly name of this account.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AwsMetadata: AWS metadata associated with the
// resource, only applicable if the finding's cloud provider is Amazon Web
// Services.
type GoogleCloudSecuritycenterV2AwsMetadata struct {
	// Account: The AWS account associated with the resource.
	Account *GoogleCloudSecuritycenterV2AwsAccount `json:"account,omitempty"`
	// Organization: The AWS organization associated with the resource.
	Organization *GoogleCloudSecuritycenterV2AwsOrganization `json:"organization,omitempty"`
	// OrganizationalUnits: A list of AWS organizational units associated with the
	// resource, ordered from lowest level (closest to the account) to highest
	// level.
	OrganizationalUnits []*GoogleCloudSecuritycenterV2AwsOrganizationalUnit `json:"organizationalUnits,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Account") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Account") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AwsOrganization: An organization is a collection
// of accounts that are centrally managed together using consolidated billing,
// organized hierarchically with organizational units (OUs), and controlled
// with policies.
type GoogleCloudSecuritycenterV2AwsOrganization struct {
	// Id: The unique identifier (ID) for the organization. The regex pattern for
	// an organization ID string requires "o-" followed by from 10 to 32 lowercase
	// letters or digits.
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AwsOrganizationalUnit: An Organizational Unit
// (OU) is a container of AWS accounts within a root of an organization.
// Policies that are attached to an OU apply to all accounts contained in that
// OU and in any child OUs.
type GoogleCloudSecuritycenterV2AwsOrganizationalUnit struct {
	// Id: The unique identifier (ID) associated with this OU. The regex pattern
	// for an organizational unit ID string requires "ou-" followed by from 4 to 32
	// lowercase letters or digits (the ID of the root that contains the OU). This
	// string is followed by a second "-" dash and from 8 to 32 additional
	// lowercase letters or digits. For example, "ou-ab12-cd34ef56".
	Id string `json:"id,omitempty"`
	// Name: The friendly name of the OU.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AzureManagementGroup: Represents an Azure
// management group.
type GoogleCloudSecuritycenterV2AzureManagementGroup struct {
	// DisplayName: The display name of the Azure management group.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The UUID of the Azure management group, for example,
	// `20000000-0001-0000-0000-000000000000`.
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AzureMetadata: Azure metadata associated with the
// resource, only applicable if the finding's cloud provider is Microsoft
// Azure.
type GoogleCloudSecuritycenterV2AzureMetadata struct {
	// ManagementGroups: A list of Azure management groups associated with the
	// resource, ordered from lowest level (closest to the subscription) to highest
	// level.
	ManagementGroups []*GoogleCloudSecuritycenterV2AzureManagementGroup `json:"managementGroups,omitempty"`
	// ResourceGroup: The Azure resource group associated with the resource.
	ResourceGroup *GoogleCloudSecuritycenterV2AzureResourceGroup `json:"resourceGroup,omitempty"`
	// Subscription: The Azure subscription associated with the resource.
	Subscription *GoogleCloudSecuritycenterV2AzureSubscription `json:"subscription,omitempty"`
	// Tenant: The Azure Entra tenant associated with the resource.
	Tenant *GoogleCloudSecuritycenterV2AzureTenant `json:"tenant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ManagementGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManagementGroups") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AzureResourceGroup: Represents an Azure resource
// group.
type GoogleCloudSecuritycenterV2AzureResourceGroup struct {
	// Id: The ID of the Azure resource group.
	Id string `json:"id,omitempty"`
	// Name: The name of the Azure resource group. This is not a UUID.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AzureSubscription: Represents an Azure
// subscription.
type GoogleCloudSecuritycenterV2AzureSubscription struct {
	// DisplayName: The display name of the Azure subscription.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The UUID of the Azure subscription, for example,
	// `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`.
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2AzureTenant: Represents a Microsoft Entra tenant.
type GoogleCloudSecuritycenterV2AzureTenant struct {
	// DisplayName: The display name of the Azure tenant.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The ID of the Microsoft Entra tenant, for example,
	// "a11aaa11-aa11-1aa1-11aa-1aaa11a".
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2BackupDisasterRecovery: Information related to
// Google Cloud Backup and DR Service findings.
type GoogleCloudSecuritycenterV2BackupDisasterRecovery struct {
	// Appliance: The name of the Backup and DR appliance that captures, moves, and
	// manages the lifecycle of backup data. For example, `backup-server-57137`.
	Appliance string `json:"appliance,omitempty"`
	// Applications: The names of Backup and DR applications. An application is a
	// VM, database, or file system on a managed host monitored by a backup and
	// recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`,
	// `centos7-01-vol02`.
	Applications []string `json:"applications,omitempty"`
	// BackupCreateTime: The timestamp at which the Backup and DR backup was
	// created.
	BackupCreateTime string `json:"backupCreateTime,omitempty"`
	// BackupTemplate: The name of a Backup and DR template which comprises one or
	// more backup policies. See the Backup and DR documentation
	// (https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp)
	// for more information. For example, `snap-ov`.
	BackupTemplate string `json:"backupTemplate,omitempty"`
	// BackupType: The backup type of the Backup and DR image. For example,
	// `Snapshot`, `Remote Snapshot`, `OnVault`.
	BackupType string `json:"backupType,omitempty"`
	// Host: The name of a Backup and DR host, which is managed by the backup and
	// recovery appliance and known to the management console. The host can be of
	// type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file
	// system, etc.), vCenter, or an ESX server. See the Backup and DR
	// documentation on hosts
	// (https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications)
	// for more information. For example, `centos7-01`.
	Host string `json:"host,omitempty"`
	// Policies: The names of Backup and DR policies that are associated with a
	// template and that define when to run a backup, how frequently to run a
	// backup, and how long to retain the backup image. For example, `onvaults`.
	Policies []string `json:"policies,omitempty"`
	// PolicyOptions: The names of Backup and DR advanced policy options of a
	// policy applying to an application. See the Backup and DR documentation on
	// policy options
	// (https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
	// For example, `skipofflineappsincongrp, nounmap`.
	PolicyOptions []string `json:"policyOptions,omitempty"`
	// Profile: The name of the Backup and DR resource profile that specifies the
	// storage media for backups of application and VM data. See the Backup and DR
	// documentation on profiles
	// (https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile).
	// For example, `GCP`.
	Profile string `json:"profile,omitempty"`
	// StoragePool: The name of the Backup and DR storage pool that the backup and
	// recovery appliance is storing data in. The storage pool could be of type
	// Cloud, Primary, Snapshot, or OnVault. See the Backup and DR documentation on
	// storage pools
	// (https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
	// For example, `DiskPoolOne`.
	StoragePool string `json:"storagePool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Appliance") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Appliance") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2BigQueryExport: Configures how to deliver
// Findings to BigQuery Instance.
type GoogleCloudSecuritycenterV2BigQueryExport struct {
	// CreateTime: Output only. The time at which the BigQuery export was created.
	// This field is set by the server and will be ignored if provided on export on
	// creation.
	CreateTime string `json:"createTime,omitempty"`
	// CryptoKeyName: Output only. The resource name of the Cloud KMS `CryptoKey`
	// used to protect this configuration's data, if configured during Security
	// Command Center activation.
	CryptoKeyName string `json:"cryptoKeyName,omitempty"`
	// Dataset: The dataset to write findings' updates to. Its format is
	// "projects/[project_id]/datasets/[bigquery_dataset_id]". BigQuery dataset
	// unique ID must contain only letters (a-z, A-Z), numbers (0-9), or
	// underscores (_).
	Dataset string `json:"dataset,omitempty"`
	// Description: The description of the export (max of 1024 characters).
	Description string `json:"description,omitempty"`
	// Filter: Expression that defines the filter to apply across create/update
	// events of findings. The expression is a list of zero or more restrictions
	// combined via logical operators `AND` and `OR`. Parentheses are supported,
	// and `OR` has higher precedence than `AND`. Restrictions have the form ` `
	// and may have a `-` character in front of them to indicate negation. The
	// fields map to those defined in the corresponding resource. The supported
	// operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer
	// values. * `:`, meaning substring matching, for strings. The supported value
	// types are: * string literals in quotes. * integer literals without quotes. *
	// boolean literals `true` and `false` without quotes.
	Filter string `json:"filter,omitempty"`
	// MostRecentEditor: Output only. Email address of the user who last edited the
	// BigQuery export. This field is set by the server and will be ignored if
	// provided on export creation or update.
	MostRecentEditor string `json:"mostRecentEditor,omitempty"`
	// Name: Identifier. The relative resource name of this export. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name.
	// The following list shows some examples: +
	// `organizations/{organization_id}/locations/{location_id}/bigQueryExports/{exp
	// ort_id}` +
	// `folders/{folder_id}/locations/{location_id}/bigQueryExports/{export_id}` +
	// `projects/{project_id}/locations/{location_id}/bigQueryExports/{export_id}`
	// This field is provided in responses, and is ignored when provided in create
	// requests.
	Name string `json:"name,omitempty"`
	// Principal: Output only. The service account that needs permission to create
	// table and upload data to the BigQuery dataset.
	Principal string `json:"principal,omitempty"`
	// UpdateTime: Output only. The most recent time at which the BigQuery export
	// was updated. This field is set by the server and will be ignored if provided
	// on export creation or update.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Binding: Represents a Kubernetes RoleBinding or
// ClusterRoleBinding.
type GoogleCloudSecuritycenterV2Binding struct {
	// Name: Name for the binding.
	Name string `json:"name,omitempty"`
	// Ns: Namespace for the binding.
	Ns string `json:"ns,omitempty"`
	// Role: The Role or ClusterRole referenced by the binding.
	Role *GoogleCloudSecuritycenterV2Role `json:"role,omitempty"`
	// Subjects: Represents one or more subjects that are bound to the role. Not
	// always available for PATCH requests.
	Subjects []*GoogleCloudSecuritycenterV2Subject `json:"subjects,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 GoogleCloudSecuritycenterV2Binding) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2Binding
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2BulkMuteFindingsResponse: The response to a
// BulkMute request. Contains the LRO information.
type GoogleCloudSecuritycenterV2BulkMuteFindingsResponse struct {
}

// GoogleCloudSecuritycenterV2Chokepoint: Contains details about a chokepoint,
// which is a resource or resource group where high-risk attack paths converge,
// based on [attack path simulations]
// (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_path_simulations).
type GoogleCloudSecuritycenterV2Chokepoint struct {
	// RelatedFindings: List of resource names of findings associated with this
	// chokepoint. For example, organizations/123/sources/456/findings/789. This
	// list will have at most 100 findings.
	RelatedFindings []string `json:"relatedFindings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RelatedFindings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RelatedFindings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2CloudArmor: Fields related to Google Cloud Armor
// findings.
type GoogleCloudSecuritycenterV2CloudArmor struct {
	// AdaptiveProtection: Information about potential Layer 7 DDoS attacks
	// identified by Google Cloud Armor Adaptive Protection
	// (https://cloud.google.com/armor/docs/adaptive-protection-overview).
	AdaptiveProtection *GoogleCloudSecuritycenterV2AdaptiveProtection `json:"adaptiveProtection,omitempty"`
	// Attack: Information about DDoS attack volume and classification.
	Attack *GoogleCloudSecuritycenterV2Attack `json:"attack,omitempty"`
	// Duration: Duration of attack from the start until the current moment
	// (updated every 5 minutes).
	Duration string `json:"duration,omitempty"`
	// Requests: Information about incoming requests evaluated by Google Cloud
	// Armor security policies
	// (https://cloud.google.com/armor/docs/security-policy-overview).
	Requests *GoogleCloudSecuritycenterV2Requests `json:"requests,omitempty"`
	// SecurityPolicy: Information about the Google Cloud Armor security policy
	// (https://cloud.google.com/armor/docs/security-policy-overview) relevant to
	// the finding.
	SecurityPolicy *GoogleCloudSecuritycenterV2SecurityPolicy `json:"securityPolicy,omitempty"`
	// ThreatVector: Distinguish between volumetric & protocol DDoS attack and
	// application layer attacks. For example, "L3_4" for Layer 3 and Layer 4 DDoS
	// attacks, or "L_7" for Layer 7 DDoS attacks.
	ThreatVector string `json:"threatVector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdaptiveProtection") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdaptiveProtection") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2CloudControl: CloudControl associated with the
// finding.
type GoogleCloudSecuritycenterV2CloudControl struct {
	// CloudControlName: Name of the CloudControl associated with the finding.
	CloudControlName string `json:"cloudControlName,omitempty"`
	// PolicyType: Policy type of the CloudControl
	PolicyType string `json:"policyType,omitempty"`
	// Type: Type of cloud control.
	//
	// Possible values:
	//   "CLOUD_CONTROL_TYPE_UNSPECIFIED" - Unspecified.
	//   "BUILT_IN" - Built in Cloud Control.
	//   "CUSTOM" - Custom Cloud Control.
	Type string `json:"type,omitempty"`
	// Version: Version of the Cloud Control
	Version int64 `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudControlName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudControlName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2CloudDlpDataProfile: The data profile
// (https://cloud.google.com/dlp/docs/data-profiles) associated with the
// finding.
type GoogleCloudSecuritycenterV2CloudDlpDataProfile struct {
	// DataProfile: Name of the data profile, for example,
	// `projects/123/locations/europe/tableProfiles/8383929`.
	DataProfile string `json:"dataProfile,omitempty"`
	// InfoTypes: Type of information detected by SDP. Info type includes name,
	// version and sensitivity of the detected information type.
	InfoTypes []*GoogleCloudSecuritycenterV2InfoType `json:"infoTypes,omitempty"`
	// ParentType: The resource hierarchy level at which the data profile was
	// generated.
	//
	// Possible values:
	//   "PARENT_TYPE_UNSPECIFIED" - Unspecified parent type.
	//   "ORGANIZATION" - Organization-level configurations.
	//   "PROJECT" - Project-level configurations.
	ParentType string `json:"parentType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataProfile") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataProfile") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2CloudDlpInspection: Details about the Cloud Data
// Loss Prevention (Cloud DLP) inspection job
// (https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
// finding.
type GoogleCloudSecuritycenterV2CloudDlpInspection struct {
	// FullScan: Whether Cloud DLP scanned the complete resource or a sampled
	// subset.
	FullScan bool `json:"fullScan,omitempty"`
	// InfoType: The type of information (or *infoType
	// (https://cloud.google.com/dlp/docs/infotypes-reference)*) found, for
	// example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.
	InfoType string `json:"infoType,omitempty"`
	// InfoTypeCount: The number of times Cloud DLP found this infoType within this
	// job and resource.
	InfoTypeCount int64 `json:"infoTypeCount,omitempty,string"`
	// InspectJob: Name of the inspection job, for example,
	// `projects/123/locations/europe/dlpJobs/i-8383929`.
	InspectJob string `json:"inspectJob,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FullScan") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FullScan") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2CloudLoggingEntry: Metadata taken from a Cloud
// Logging LogEntry
// (https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)
type GoogleCloudSecuritycenterV2CloudLoggingEntry struct {
	// InsertId: A unique identifier for the log entry.
	InsertId string `json:"insertId,omitempty"`
	// LogId: The type of the log (part of `log_name`. `log_name` is the resource
	// name of the log to which this log entry belongs). For example:
	// `cloudresourcemanager.googleapis.com/activity` Note that this field is not
	// URL-encoded, unlike in `LogEntry`.
	LogId string `json:"logId,omitempty"`
	// ResourceContainer: The organization, folder, or project of the monitored
	// resource that produced this log entry.
	ResourceContainer string `json:"resourceContainer,omitempty"`
	// Timestamp: The time the event described by the log entry occurred.
	Timestamp string `json:"timestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InsertId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InsertId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Compliance: Contains compliance information about
// a security standard indicating unmet recommendations.
type GoogleCloudSecuritycenterV2Compliance struct {
	// Ids: Policies within the standard or benchmark, for example, A.12.4.1
	Ids []string `json:"ids,omitempty"`
	// Standard: Industry-wide compliance standards or benchmarks, such as CIS,
	// PCI, and OWASP.
	Standard string `json:"standard,omitempty"`
	// Version: Version of the standard or benchmark, for example, 1.1
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ids") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ids") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2ComplianceDetails: Compliance Details associated
// with the finding.
type GoogleCloudSecuritycenterV2ComplianceDetails struct {
	// CloudControl: CloudControl associated with the finding
	CloudControl *GoogleCloudSecuritycenterV2CloudControl `json:"cloudControl,omitempty"`
	// CloudControlDeploymentNames: Cloud Control Deployments associated with the
	// finding. For example,
	// organizations/123/locations/global/cloudControlDeployments/deploymentIdentifi
	// er
	CloudControlDeploymentNames []string `json:"cloudControlDeploymentNames,omitempty"`
	// Frameworks: Details of Frameworks associated with the finding
	Frameworks []*GoogleCloudSecuritycenterV2Framework `json:"frameworks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudControl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudControl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Connection: Contains information about the IP
// connection associated with the finding.
type GoogleCloudSecuritycenterV2Connection struct {
	// DestinationIp: Destination IP address. Not present for sockets that are
	// listening and not connected.
	DestinationIp string `json:"destinationIp,omitempty"`
	// DestinationPort: Destination port. Not present for sockets that are
	// listening and not connected.
	DestinationPort int64 `json:"destinationPort,omitempty"`
	// Protocol: IANA Internet Protocol Number such as TCP(6) and UDP(17).
	//
	// Possible values:
	//   "PROTOCOL_UNSPECIFIED" - Unspecified protocol (not HOPOPT).
	//   "ICMP" - Internet Control Message Protocol.
	//   "TCP" - Transmission Control Protocol.
	//   "UDP" - User Datagram Protocol.
	//   "GRE" - Generic Routing Encapsulation.
	//   "ESP" - Encap Security Payload.
	Protocol string `json:"protocol,omitempty"`
	// SourceIp: Source IP address.
	SourceIp string `json:"sourceIp,omitempty"`
	// SourcePort: Source port.
	SourcePort int64 `json:"sourcePort,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationIp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationIp") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Contact: The email address of a contact.
type GoogleCloudSecuritycenterV2Contact struct {
	// Email: An email address. For example, "person123@company.com".
	Email string `json:"email,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Email") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudSecuritycenterV2Container: Container associated with the finding.
type GoogleCloudSecuritycenterV2Container struct {
	// CreateTime: The time that the container was created.
	CreateTime string `json:"createTime,omitempty"`
	// ImageId: Optional container image ID, if provided by the container runtime.
	// Uniquely identifies the container image launched using a container image
	// digest.
	ImageId string `json:"imageId,omitempty"`
	// Labels: Container labels, as provided by the container runtime.
	Labels []*GoogleCloudSecuritycenterV2Label `json:"labels,omitempty"`
	// Name: Name of the container.
	Name string `json:"name,omitempty"`
	// Uri: Container image URI provided when configuring a pod or container. This
	// string can identify a container image version using mutable tags.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Control: Compliance control associated with the
// finding.
type GoogleCloudSecuritycenterV2Control struct {
	// ControlName: Name of the Control
	ControlName string `json:"controlName,omitempty"`
	// DisplayName: Display name of the control. For example, AU-02.
	DisplayName string `json:"displayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ControlName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ControlName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Cve: CVE stands for Common Vulnerabilities and
// Exposures. Information from the CVE record
// (https://www.cve.org/ResourcesSupport/Glossary) that describes this
// vulnerability.
type GoogleCloudSecuritycenterV2Cve struct {
	// Cvssv3: Describe Common Vulnerability Scoring System specified at
	// https://www.first.org/cvss/v3.1/specification-document
	Cvssv3 *GoogleCloudSecuritycenterV2Cvssv3 `json:"cvssv3,omitempty"`
	// ExploitReleaseDate: Date the first publicly available exploit or PoC was
	// released.
	ExploitReleaseDate string `json:"exploitReleaseDate,omitempty"`
	// ExploitationActivity: The exploitation activity of the vulnerability in the
	// wild.
	//
	// Possible values:
	//   "EXPLOITATION_ACTIVITY_UNSPECIFIED" - Invalid or empty value.
	//   "WIDE" - Exploitation has been reported or confirmed to widely occur.
	//   "CONFIRMED" - Limited reported or confirmed exploitation activities.
	//   "AVAILABLE" - Exploit is publicly available.
	//   "ANTICIPATED" - No known exploitation activity, but has a high potential
	// for exploitation.
	//   "NO_KNOWN" - No known exploitation activity.
	ExploitationActivity string `json:"exploitationActivity,omitempty"`
	// FirstExploitationDate: Date of the earliest known exploitation.
	FirstExploitationDate string `json:"firstExploitationDate,omitempty"`
	// Id: The unique identifier for the vulnerability. e.g. CVE-2021-34527
	Id string `json:"id,omitempty"`
	// Impact: The potential impact of the vulnerability if it was to be exploited.
	//
	// Possible values:
	//   "RISK_RATING_UNSPECIFIED" - Invalid or empty value.
	//   "LOW" - Exploitation would have little to no security impact.
	//   "MEDIUM" - Exploitation would enable attackers to perform activities, or
	// could allow attackers to have a direct impact, but would require additional
	// steps.
	//   "HIGH" - Exploitation would enable attackers to have a notable direct
	// impact without needing to overcome any major mitigating factors.
	//   "CRITICAL" - Exploitation would fundamentally undermine the security of
	// affected systems, enable actors to perform significant attacks with minimal
	// effort, with little to no mitigating factors to overcome.
	Impact string `json:"impact,omitempty"`
	// ObservedInTheWild: Whether or not the vulnerability has been observed in the
	// wild.
	ObservedInTheWild bool `json:"observedInTheWild,omitempty"`
	// References: Additional information about the CVE. e.g.
	// https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527
	References []*GoogleCloudSecuritycenterV2Reference `json:"references,omitempty"`
	// UpstreamFixAvailable: Whether upstream fix is available for the CVE.
	UpstreamFixAvailable bool `json:"upstreamFixAvailable,omitempty"`
	// ZeroDay: Whether or not the vulnerability was zero day when the finding was
	// published.
	ZeroDay bool `json:"zeroDay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cvssv3") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cvssv3") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Cvssv3: Common Vulnerability Scoring System
// version 3.
type GoogleCloudSecuritycenterV2Cvssv3 struct {
	// AttackComplexity: This metric describes the conditions beyond the attacker's
	// control that must exist in order to exploit the vulnerability.
	//
	// Possible values:
	//   "ATTACK_COMPLEXITY_UNSPECIFIED" - Invalid value.
	//   "ATTACK_COMPLEXITY_LOW" - Specialized access conditions or extenuating
	// circumstances do not exist. An attacker can expect repeatable success when
	// attacking the vulnerable component.
	//   "ATTACK_COMPLEXITY_HIGH" - A successful attack depends on conditions
	// beyond the attacker's control. That is, a successful attack cannot be
	// accomplished at will, but requires the attacker to invest in some measurable
	// amount of effort in preparation or execution against the vulnerable
	// component before a successful attack can be expected.
	AttackComplexity string `json:"attackComplexity,omitempty"`
	// AttackVector: Base Metrics Represents the intrinsic characteristics of a
	// vulnerability that are constant over time and across user environments. This
	// metric reflects the context by which vulnerability exploitation is possible.
	//
	// Possible values:
	//   "ATTACK_VECTOR_UNSPECIFIED" - Invalid value.
	//   "ATTACK_VECTOR_NETWORK" - The vulnerable component is bound to the network
	// stack and the set of possible attackers extends beyond the other options
	// listed below, up to and including the entire Internet.
	//   "ATTACK_VECTOR_ADJACENT" - The vulnerable component is bound to the
	// network stack, but the attack is limited at the protocol level to a
	// logically adjacent topology.
	//   "ATTACK_VECTOR_LOCAL" - The vulnerable component is not bound to the
	// network stack and the attacker's path is via read/write/execute
	// capabilities.
	//   "ATTACK_VECTOR_PHYSICAL" - The attack requires the attacker to physically
	// touch or manipulate the vulnerable component.
	AttackVector string `json:"attackVector,omitempty"`
	// AvailabilityImpact: This metric measures the impact to the availability of
	// the impacted component resulting from a successfully exploited
	// vulnerability.
	//
	// Possible values:
	//   "IMPACT_UNSPECIFIED" - Invalid value.
	//   "IMPACT_HIGH" - High impact.
	//   "IMPACT_LOW" - Low impact.
	//   "IMPACT_NONE" - No impact.
	AvailabilityImpact string `json:"availabilityImpact,omitempty"`
	// BaseScore: The base score is a function of the base metric scores.
	BaseScore float64 `json:"baseScore,omitempty"`
	// ConfidentialityImpact: This metric measures the impact to the
	// confidentiality of the information resources managed by a software component
	// due to a successfully exploited vulnerability.
	//
	// Possible values:
	//   "IMPACT_UNSPECIFIED" - Invalid value.
	//   "IMPACT_HIGH" - High impact.
	//   "IMPACT_LOW" - Low impact.
	//   "IMPACT_NONE" - No impact.
	ConfidentialityImpact string `json:"confidentialityImpact,omitempty"`
	// IntegrityImpact: This metric measures the impact to integrity of a
	// successfully exploited vulnerability.
	//
	// Possible values:
	//   "IMPACT_UNSPECIFIED" - Invalid value.
	//   "IMPACT_HIGH" - High impact.
	//   "IMPACT_LOW" - Low impact.
	//   "IMPACT_NONE" - No impact.
	IntegrityImpact string `json:"integrityImpact,omitempty"`
	// PrivilegesRequired: This metric describes the level of privileges an
	// attacker must possess before successfully exploiting the vulnerability.
	//
	// Possible values:
	//   "PRIVILEGES_REQUIRED_UNSPECIFIED" - Invalid value.
	//   "PRIVILEGES_REQUIRED_NONE" - The attacker is unauthorized prior to attack,
	// and therefore does not require any access to settings or files of the
	// vulnerable system to carry out an attack.
	//   "PRIVILEGES_REQUIRED_LOW" - The attacker requires privileges that provide
	// basic user capabilities that could normally affect only settings and files
	// owned by a user. Alternatively, an attacker with Low privileges has the
	// ability to access only non-sensitive resources.
	//   "PRIVILEGES_REQUIRED_HIGH" - The attacker requires privileges that provide
	// significant (e.g., administrative) control over the vulnerable component
	// allowing access to component-wide settings and files.
	PrivilegesRequired string `json:"privilegesRequired,omitempty"`
	// Scope: The Scope metric captures whether a vulnerability in one vulnerable
	// component impacts resources in components beyond its security scope.
	//
	// Possible values:
	//   "SCOPE_UNSPECIFIED" - Invalid value.
	//   "SCOPE_UNCHANGED" - An exploited vulnerability can only affect resources
	// managed by the same security authority.
	//   "SCOPE_CHANGED" - An exploited vulnerability can affect resources beyond
	// the security scope managed by the security authority of the vulnerable
	// component.
	Scope string `json:"scope,omitempty"`
	// UserInteraction: This metric captures the requirement for a human user,
	// other than the attacker, to participate in the successful compromise of the
	// vulnerable component.
	//
	// Possible values:
	//   "USER_INTERACTION_UNSPECIFIED" - Invalid value.
	//   "USER_INTERACTION_NONE" - The vulnerable system can be exploited without
	// interaction from any user.
	//   "USER_INTERACTION_REQUIRED" - Successful exploitation of this
	// vulnerability requires a user to take some action before the vulnerability
	// can be exploited.
	UserInteraction string `json:"userInteraction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttackComplexity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttackComplexity") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudSecuritycenterV2Cwe: CWE stands for Common Weakness Enumeration.
// Information about this weakness, as described by CWE
// (https://cwe.mitre.org/).
type GoogleCloudSecuritycenterV2Cwe struct {
	// Id: The CWE identifier, e.g. CWE-94
	Id string `json:"id,omitempty"`
	// References: Any reference to the details on the CWE, for example,
	// https://cwe.mitre.org/data/definitions/94.html
	References []*GoogleCloudSecuritycenterV2Reference `json:"references,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2DataAccessEvent: Details about a data access
// attempt made by a principal not authorized under applicable data security
// policy.
type GoogleCloudSecuritycenterV2DataAccessEvent struct {
	// EventId: Unique identifier for data access event.
	EventId string `json:"eventId,omitempty"`
	// EventTime: Timestamp of data access event.
	EventTime string `json:"eventTime,omitempty"`
	// Operation: The operation performed by the principal to access the data.
	//
	// Possible values:
	//   "OPERATION_UNSPECIFIED" - The operation is unspecified.
	//   "READ" - Represents a read operation.
	//   "MOVE" - Represents a move operation.
	//   "COPY" - Represents a copy operation.
	Operation string `json:"operation,omitempty"`
	// PrincipalEmail: The email address of the principal that accessed the data.
	// The principal could be a user account, service account, Google group, or
	// other.
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2DataFlowEvent: Details about a data flow event,
// in which either the data is moved to or is accessed from a non-compliant
// geo-location, as defined in the applicable data security policy.
type GoogleCloudSecuritycenterV2DataFlowEvent struct {
	// EventId: Unique identifier for data flow event.
	EventId string `json:"eventId,omitempty"`
	// EventTime: Timestamp of data flow event.
	EventTime string `json:"eventTime,omitempty"`
	// Operation: The operation performed by the principal for the data flow event.
	//
	// Possible values:
	//   "OPERATION_UNSPECIFIED" - The operation is unspecified.
	//   "READ" - Represents a read operation.
	//   "MOVE" - Represents a move operation.
	//   "COPY" - Represents a copy operation.
	Operation string `json:"operation,omitempty"`
	// PrincipalEmail: The email address of the principal that initiated the data
	// flow event. The principal could be a user account, service account, Google
	// group, or other.
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// ViolatedLocation: Non-compliant location of the principal or the data
	// destination.
	ViolatedLocation string `json:"violatedLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2DataRetentionDeletionEvent: Details about data
// retention deletion violations, in which the data is non-compliant based on
// their retention or deletion time, as defined in the applicable data security
// policy. The Data Retention Deletion (DRD) control is a control of the DSPM
// (Data Security Posture Management) suite that enables organizations to
// manage data retention and deletion policies in compliance with regulations,
// such as GDPR and CRPA. DRD supports two primary policy types: maximum
// storage length (max TTL) and minimum storage length (min TTL). Both are
// aimed at helping organizations meet regulatory and data management
// commitments.
type GoogleCloudSecuritycenterV2DataRetentionDeletionEvent struct {
	// DataObjectCount: Number of objects that violated the policy for this
	// resource. If the number is less than 1,000, then the value of this field is
	// the exact number. If the number of objects that violated the policy is
	// greater than or equal to 1,000, then the value of this field is 1000.
	DataObjectCount int64 `json:"dataObjectCount,omitempty,string"`
	// EventDetectionTime: Timestamp indicating when the event was detected.
	EventDetectionTime string `json:"eventDetectionTime,omitempty"`
	// EventType: Type of the DRD event.
	//
	// Possible values:
	//   "EVENT_TYPE_UNSPECIFIED" - Unspecified event type.
	//   "EVENT_TYPE_MAX_TTL_EXCEEDED" - The maximum retention time has been
	// exceeded.
	//   "EVENT_TYPE_MAX_TTL_FROM_CREATION" - Max TTL from the asset's creation
	// time.
	//   "EVENT_TYPE_MAX_TTL_FROM_LAST_MODIFICATION" - Max TTL from the asset's
	// last modification time.
	EventType string `json:"eventType,omitempty"`
	// MaxRetentionAllowed: Maximum duration of retention allowed from the DRD
	// control. This comes from the DRD control where users set a max TTL for their
	// data. For example, suppose that a user sets the max TTL for a Cloud Storage
	// bucket to 90 days. However, an object in that bucket is 100 days old. In
	// this case, a DataRetentionDeletionEvent will be generated for that Cloud
	// Storage bucket, and the max_retention_allowed is 90 days.
	MaxRetentionAllowed string `json:"maxRetentionAllowed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataObjectCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataObjectCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Database: Represents database access information,
// such as queries. A database may be a sub-resource of an instance (as in the
// case of Cloud SQL instances or Cloud Spanner instances), or the database
// instance itself. Some database resources might not have the full resource
// name (https://google.aip.dev/122#full-resource-names) populated because
// these resource types, such as Cloud SQL databases, are not yet supported by
// Cloud Asset Inventory. In these cases only the display name is provided.
type GoogleCloudSecuritycenterV2Database struct {
	// DisplayName: The human-readable name of the database that the user connected
	// to.
	DisplayName string `json:"displayName,omitempty"`
	// Grantees: The target usernames, roles, or groups of an SQL privilege grant,
	// which is not an IAM policy change.
	Grantees []string `json:"grantees,omitempty"`
	// Name: Some database resources may not have the full resource name
	// (https://google.aip.dev/122#full-resource-names) populated because these
	// resource types are not yet supported by Cloud Asset Inventory (e.g. Cloud
	// SQL databases). In these cases only the display name will be provided. The
	// full resource name (https://google.aip.dev/122#full-resource-names) of the
	// database that the user connected to, if it is supported by Cloud Asset
	// Inventory.
	Name string `json:"name,omitempty"`
	// Query: The SQL statement that is associated with the database access.
	Query string `json:"query,omitempty"`
	// UserName: The username used to connect to the database. The username might
	// not be an IAM principal and does not have a set format.
	UserName string `json:"userName,omitempty"`
	// Version: The version of the database, for example, POSTGRES_14. See the
	// complete list
	// (https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Dataset: Vertex AI dataset associated with the
// finding.
type GoogleCloudSecuritycenterV2Dataset struct {
	// DisplayName: The user defined display name of dataset, e.g. plants-dataset
	DisplayName string `json:"displayName,omitempty"`
	// Name: Resource name of the dataset, e.g.
	// projects/{project}/locations/{location}/datasets/2094040236064505856
	Name string `json:"name,omitempty"`
	// Source: Data source, such as a BigQuery source URI, e.g.
	// bq://scc-nexus-test.AIPPtest.gsod
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Denied: Denied IP rule.
type GoogleCloudSecuritycenterV2Denied struct {
	// IpRules: Optional. Optional list of denied IP rules.
	IpRules []*GoogleCloudSecuritycenterV2IpRule `json:"ipRules,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpRules") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpRules") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Detection: Memory hash detection contributing to
// the binary family match.
type GoogleCloudSecuritycenterV2Detection struct {
	// Binary: The name of the binary associated with the memory hash signature
	// detection.
	Binary string `json:"binary,omitempty"`
	// PercentPagesMatched: The percentage of memory page hashes in the signature
	// that were matched.
	PercentPagesMatched float64 `json:"percentPagesMatched,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Binary") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Binary") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudSecuritycenterV2Disk: Contains information about the disk
// associated with the finding.
type GoogleCloudSecuritycenterV2Disk struct {
	// Name: The name of the disk, for example,
	// "https://www.googleapis.com/compute/v1/projects/{project-id}/zones/{zone-id}/
	// disks/{disk-id}".
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2DiskPath: Path of the file in terms of underlying
// disk/partition identifiers.
type GoogleCloudSecuritycenterV2DiskPath struct {
	// PartitionUuid: UUID of the partition (format
	// https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)
	PartitionUuid string `json:"partitionUuid,omitempty"`
	// RelativePath: Relative path of the file in the partition as a JSON encoded
	// string. Example: /home/user1/executable_file.sh
	RelativePath string `json:"relativePath,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PartitionUuid") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartitionUuid") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2DynamicMuteRecord: The record of a dynamic mute
// rule that matches the finding.
type GoogleCloudSecuritycenterV2DynamicMuteRecord struct {
	// MatchTime: When the dynamic mute rule first matched the finding.
	MatchTime string `json:"matchTime,omitempty"`
	// MuteConfig: The relative resource name of the mute rule, represented by a
	// mute config, that created this record, for example
	// `organizations/123/muteConfigs/mymuteconfig` or
	// `organizations/123/locations/global/muteConfigs/mymuteconfig`.
	MuteConfig string `json:"muteConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2EnvironmentVariable: A name-value pair
// representing an environment variable used in an operating system process.
type GoogleCloudSecuritycenterV2EnvironmentVariable struct {
	// Name: Environment variable name as a JSON encoded string.
	Name string `json:"name,omitempty"`
	// Val: Environment variable value as a JSON encoded string.
	Val string `json:"val,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 GoogleCloudSecuritycenterV2EnvironmentVariable) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2EnvironmentVariable
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2ExfilResource: Resource where data was
// exfiltrated from or exfiltrated to.
type GoogleCloudSecuritycenterV2ExfilResource struct {
	// Components: Subcomponents of the asset that was exfiltrated, like URIs used
	// during exfiltration, table names, databases, and filenames. For example,
	// multiple tables might have been exfiltrated from the same Cloud SQL
	// instance, or multiple files might have been exfiltrated from the same Cloud
	// Storage bucket.
	Components []string `json:"components,omitempty"`
	// Name: The resource's full resource name
	// (https://cloud.google.com/apis/design/resource_names#full_resource_name).
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Components") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Components") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Exfiltration: Exfiltration represents a data
// exfiltration attempt from one or more sources to one or more targets. The
// `sources` attribute lists the sources of the exfiltrated data. The `targets`
// attribute lists the destinations the data was copied to.
type GoogleCloudSecuritycenterV2Exfiltration struct {
	// Sources: If there are multiple sources, then the data is considered "joined"
	// between them. For instance, BigQuery can join multiple tables, and each
	// table would be considered a source.
	Sources []*GoogleCloudSecuritycenterV2ExfilResource `json:"sources,omitempty"`
	// Targets: If there are multiple targets, each target would get a complete
	// copy of the "joined" source data.
	Targets []*GoogleCloudSecuritycenterV2ExfilResource `json:"targets,omitempty"`
	// TotalExfiltratedBytes: Total exfiltrated bytes processed for the entire job.
	TotalExfiltratedBytes int64 `json:"totalExfiltratedBytes,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Sources") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Sources") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2ExternalSystem: Representation of third party
// SIEM/SOAR fields within SCC.
type GoogleCloudSecuritycenterV2ExternalSystem struct {
	// Assignees: References primary/secondary etc assignees in the external
	// system.
	Assignees []string `json:"assignees,omitempty"`
	// CaseCloseTime: The time when the case was closed, as reported by the
	// external system.
	CaseCloseTime string `json:"caseCloseTime,omitempty"`
	// CaseCreateTime: The time when the case was created, as reported by the
	// external system.
	CaseCreateTime string `json:"caseCreateTime,omitempty"`
	// CasePriority: The priority of the finding's corresponding case in the
	// external system.
	CasePriority string `json:"casePriority,omitempty"`
	// CaseSla: The SLA of the finding's corresponding case in the external system.
	CaseSla string `json:"caseSla,omitempty"`
	// CaseUri: The link to the finding's corresponding case in the external
	// system.
	CaseUri string `json:"caseUri,omitempty"`
	// ExternalSystemUpdateTime: The time when the case was last updated, as
	// reported by the external system.
	ExternalSystemUpdateTime string `json:"externalSystemUpdateTime,omitempty"`
	// ExternalUid: The identifier that's used to track the finding's corresponding
	// case in the external system.
	ExternalUid string `json:"externalUid,omitempty"`
	// Name: Full resource name of the external system. The following list shows
	// some examples: +
	// `organizations/1234/sources/5678/findings/123456/externalSystems/jira` +
	// `organizations/1234/sources/5678/locations/us/findings/123456/externalSystems
	// /jira` + `folders/1234/sources/5678/findings/123456/externalSystems/jira` +
	// `folders/1234/sources/5678/locations/us/findings/123456/externalSystems/jira`
	//  + `projects/1234/sources/5678/findings/123456/externalSystems/jira` +
	// `projects/1234/sources/5678/locations/us/findings/123456/externalSystems/jira
	// `
	Name string `json:"name,omitempty"`
	// Status: The most recent status of the finding's corresponding case, as
	// reported by the external system.
	Status string `json:"status,omitempty"`
	// TicketInfo: Information about the ticket, if any, that is being used to
	// track the resolution of the issue that is identified by this finding.
	TicketInfo *GoogleCloudSecuritycenterV2TicketInfo `json:"ticketInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Assignees") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Assignees") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2File: File information about the related
// binary/library used by an executable, or the script used by a script
// interpreter
type GoogleCloudSecuritycenterV2File struct {
	// Contents: Prefix of the file contents as a JSON-encoded string.
	Contents string `json:"contents,omitempty"`
	// DiskPath: Path of the file in terms of underlying disk/partition
	// identifiers.
	DiskPath *GoogleCloudSecuritycenterV2DiskPath `json:"diskPath,omitempty"`
	// HashedSize: The length in bytes of the file prefix that was hashed. If
	// hashed_size == size, any hashes reported represent the entire file.
	HashedSize int64 `json:"hashedSize,omitempty,string"`
	// Operations: Operation(s) performed on a file.
	Operations []*GoogleCloudSecuritycenterV2FileOperation `json:"operations,omitempty"`
	// PartiallyHashed: True when the hash covers only a prefix of the file.
	PartiallyHashed bool `json:"partiallyHashed,omitempty"`
	// Path: Absolute path of the file as a JSON encoded string.
	Path string `json:"path,omitempty"`
	// Sha256: SHA256 hash of the first hashed_size bytes of the file encoded as a
	// hex string. If hashed_size == size, sha256 represents the SHA256 hash of the
	// entire file.
	Sha256 string `json:"sha256,omitempty"`
	// Size: Size of the file in bytes.
	Size int64 `json:"size,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Contents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Contents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2FileOperation: Operation(s) performed on a file.
type GoogleCloudSecuritycenterV2FileOperation struct {
	// Type: The type of the operation
	//
	// Possible values:
	//   "OPERATION_TYPE_UNSPECIFIED" - The operation is unspecified.
	//   "OPEN" - Represents an open operation.
	//   "READ" - Represents a read operation.
	//   "RENAME" - Represents a rename operation.
	//   "WRITE" - Represents a write operation.
	//   "EXECUTE" - Represents an execute operation.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Finding: Security Command Center finding. A
// finding is a record of assessment data like security, risk, health, or
// privacy, that is ingested into Security Command Center for presentation,
// notification, analysis, policy testing, and enforcement. For example, a
// cross-site scripting (XSS) vulnerability in an App Engine application is a
// finding.
type GoogleCloudSecuritycenterV2Finding struct {
	// Access: Access details associated with the finding, such as more information
	// on the caller, which method was accessed, and from where.
	Access *GoogleCloudSecuritycenterV2Access `json:"access,omitempty"`
	// AffectedResources: AffectedResources associated with the finding.
	AffectedResources *GoogleCloudSecuritycenterV2AffectedResources `json:"affectedResources,omitempty"`
	// AiModel: The AI model associated with the finding.
	AiModel *GoogleCloudSecuritycenterV2AiModel `json:"aiModel,omitempty"`
	// Application: Represents an application associated with the finding.
	Application *GoogleCloudSecuritycenterV2Application `json:"application,omitempty"`
	// AttackExposure: The results of an attack path simulation relevant to this
	// finding.
	AttackExposure *GoogleCloudSecuritycenterV2AttackExposure `json:"attackExposure,omitempty"`
	// BackupDisasterRecovery: Fields related to Backup and DR findings.
	BackupDisasterRecovery *GoogleCloudSecuritycenterV2BackupDisasterRecovery `json:"backupDisasterRecovery,omitempty"`
	// CanonicalName: Output only. The canonical name of the finding. The following
	// list shows some examples: +
	// `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/
	// findings/{finding_id}` +
	// `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{fi
	// nding_id}` +
	// `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{
	// finding_id}` The prefix is the closest CRM ancestor of the resource
	// associated with the finding.
	CanonicalName string `json:"canonicalName,omitempty"`
	// Category: Immutable. The additional taxonomy group within findings from a
	// given source. Example: "XSS_FLASH_INJECTION"
	Category string `json:"category,omitempty"`
	// Chokepoint: Contains details about a chokepoint, which is a resource or
	// resource group where high-risk attack paths converge, based on [attack path
	// simulations]
	// (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_path_simulations).
	// This field cannot be updated. Its value is ignored in all update requests.
	Chokepoint *GoogleCloudSecuritycenterV2Chokepoint `json:"chokepoint,omitempty"`
	// CloudArmor: Fields related to Cloud Armor findings.
	CloudArmor *GoogleCloudSecuritycenterV2CloudArmor `json:"cloudArmor,omitempty"`
	// CloudDlpDataProfile: Cloud DLP data profile that is associated with the
	// finding.
	CloudDlpDataProfile *GoogleCloudSecuritycenterV2CloudDlpDataProfile `json:"cloudDlpDataProfile,omitempty"`
	// CloudDlpInspection: Cloud Data Loss Prevention (Cloud DLP) inspection
	// results that are associated with the finding.
	CloudDlpInspection *GoogleCloudSecuritycenterV2CloudDlpInspection `json:"cloudDlpInspection,omitempty"`
	// ComplianceDetails: Details about the compliance implications of the finding.
	ComplianceDetails *GoogleCloudSecuritycenterV2ComplianceDetails `json:"complianceDetails,omitempty"`
	// Compliances: Contains compliance information for security standards
	// associated to the finding.
	Compliances []*GoogleCloudSecuritycenterV2Compliance `json:"compliances,omitempty"`
	// Connections: Contains information about the IP connection associated with
	// the finding.
	Connections []*GoogleCloudSecuritycenterV2Connection `json:"connections,omitempty"`
	// Contacts: Output only. Map containing the points of contact for the given
	// finding. The key represents the type of contact, while the value contains a
	// list of all the contacts that pertain. Please refer to:
	// https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories
	// { "security": { "contacts": [ { "email": "person1@company.com" }, { "email":
	// "person2@company.com" } ] } }
	Contacts map[string]GoogleCloudSecuritycenterV2ContactDetails `json:"contacts,omitempty"`
	// Containers: Containers associated with the finding. This field provides
	// information for both Kubernetes and non-Kubernetes containers.
	Containers []*GoogleCloudSecuritycenterV2Container `json:"containers,omitempty"`
	// CreateTime: Output only. The time at which the finding was created in
	// Security Command Center.
	CreateTime string `json:"createTime,omitempty"`
	// CryptoKeyName: Output only. The name of the Cloud KMS key used to encrypt
	// this finding, if any.
	CryptoKeyName string `json:"cryptoKeyName,omitempty"`
	// DataAccessEvents: Data access events associated with the finding.
	DataAccessEvents []*GoogleCloudSecuritycenterV2DataAccessEvent `json:"dataAccessEvents,omitempty"`
	// DataFlowEvents: Data flow events associated with the finding.
	DataFlowEvents []*GoogleCloudSecuritycenterV2DataFlowEvent `json:"dataFlowEvents,omitempty"`
	// DataRetentionDeletionEvents: Data retention deletion events associated with
	// the finding.
	DataRetentionDeletionEvents []*GoogleCloudSecuritycenterV2DataRetentionDeletionEvent `json:"dataRetentionDeletionEvents,omitempty"`
	// Database: Database associated with the finding.
	Database *GoogleCloudSecuritycenterV2Database `json:"database,omitempty"`
	// Description: Contains more details about the finding.
	Description string `json:"description,omitempty"`
	// Disk: Disk associated with the finding.
	Disk *GoogleCloudSecuritycenterV2Disk `json:"disk,omitempty"`
	// EventTime: The time the finding was first detected. If an existing finding
	// is updated, then this is the time the update occurred. For example, if the
	// finding represents an open firewall, this property captures the time the
	// detector believes the firewall became open. The accuracy is determined by
	// the detector. If the finding is later resolved, then this time reflects when
	// the finding was resolved. This must not be set to a value greater than the
	// current timestamp.
	EventTime string `json:"eventTime,omitempty"`
	// Exfiltration: Represents exfiltrations associated with the finding.
	Exfiltration *GoogleCloudSecuritycenterV2Exfiltration `json:"exfiltration,omitempty"`
	// ExternalSystems: Output only. Third party SIEM/SOAR fields within SCC,
	// contains external system information and external system finding fields.
	ExternalSystems map[string]GoogleCloudSecuritycenterV2ExternalSystem `json:"externalSystems,omitempty"`
	// ExternalUri: The URI that, if available, points to a web page outside of
	// Security Command Center where additional information about the finding can
	// be found. This field is guaranteed to be either empty or a well formed URL.
	ExternalUri string `json:"externalUri,omitempty"`
	// Files: File associated with the finding.
	Files []*GoogleCloudSecuritycenterV2File `json:"files,omitempty"`
	// FindingClass: The class of the finding.
	//
	// Possible values:
	//   "FINDING_CLASS_UNSPECIFIED" - Unspecified finding class.
	//   "THREAT" - Describes unwanted or malicious activity.
	//   "VULNERABILITY" - Describes a potential weakness in software that
	// increases risk to Confidentiality & Integrity & Availability.
	//   "MISCONFIGURATION" - Describes a potential weakness in cloud
	// resource/asset configuration that increases risk.
	//   "OBSERVATION" - Describes a security observation that is for informational
	// purposes.
	//   "SCC_ERROR" - Describes an error that prevents some SCC functionality.
	//   "POSTURE_VIOLATION" - Describes a potential security risk due to a change
	// in the security posture.
	//   "TOXIC_COMBINATION" - Describes a combination of security issues that
	// represent a more severe security problem when taken together.
	//   "SENSITIVE_DATA_RISK" - Describes a potential security risk to data assets
	// that contain sensitive data.
	//   "CHOKEPOINT" - Describes a resource or resource group where high risk
	// attack paths converge, based on attack path simulations (APS).
	FindingClass string `json:"findingClass,omitempty"`
	// GroupMemberships: Contains details about groups of which this finding is a
	// member. A group is a collection of findings that are related in some way.
	// This field cannot be updated. Its value is ignored in all update requests.
	GroupMemberships []*GoogleCloudSecuritycenterV2GroupMembership `json:"groupMemberships,omitempty"`
	// IamBindings: Represents IAM bindings associated with the finding.
	IamBindings []*GoogleCloudSecuritycenterV2IamBinding `json:"iamBindings,omitempty"`
	// Indicator: Represents what's commonly known as an *indicator of compromise*
	// (IoC) in computer forensics. This is an artifact observed on a network or in
	// an operating system that, with high confidence, indicates a computer
	// intrusion. For more information, see Indicator of compromise
	// (https://en.wikipedia.org/wiki/Indicator_of_compromise).
	Indicator *GoogleCloudSecuritycenterV2Indicator `json:"indicator,omitempty"`
	// IpRules: IP rules associated with the finding.
	IpRules *GoogleCloudSecuritycenterV2IpRules `json:"ipRules,omitempty"`
	// Job: Job associated with the finding.
	Job *GoogleCloudSecuritycenterV2Job `json:"job,omitempty"`
	// KernelRootkit: Signature of the kernel rootkit.
	KernelRootkit *GoogleCloudSecuritycenterV2KernelRootkit `json:"kernelRootkit,omitempty"`
	// Kubernetes: Kubernetes resources associated with the finding.
	Kubernetes *GoogleCloudSecuritycenterV2Kubernetes `json:"kubernetes,omitempty"`
	// LoadBalancers: The load balancers associated with the finding.
	LoadBalancers []*GoogleCloudSecuritycenterV2LoadBalancer `json:"loadBalancers,omitempty"`
	// LogEntries: Log entries that are relevant to the finding.
	LogEntries []*GoogleCloudSecuritycenterV2LogEntry `json:"logEntries,omitempty"`
	// MitreAttack: MITRE ATT&CK tactics and techniques related to this finding.
	// See: https://attack.mitre.org
	MitreAttack *GoogleCloudSecuritycenterV2MitreAttack `json:"mitreAttack,omitempty"`
	// ModuleName: Unique identifier of the module which generated the finding.
	// Example:
	// folders/598186756061/securityHealthAnalyticsSettings/customModules/5679944116
	// 1885
	ModuleName string `json:"moduleName,omitempty"`
	// Mute: Indicates the mute state of a finding (either muted, unmuted or
	// undefined). Unlike other attributes of a finding, a finding provider
	// shouldn't set the value of mute.
	//
	// Possible values:
	//   "MUTE_UNSPECIFIED" - Unspecified.
	//   "MUTED" - Finding has been muted.
	//   "UNMUTED" - Finding has been unmuted.
	//   "UNDEFINED" - Finding has never been muted/unmuted.
	Mute string `json:"mute,omitempty"`
	// MuteInfo: Output only. The mute information regarding this finding.
	MuteInfo *GoogleCloudSecuritycenterV2MuteInfo `json:"muteInfo,omitempty"`
	// MuteInitiator: Records additional information about the mute operation, for
	// example, the mute configuration
	// (https://cloud.google.com/security-command-center/docs/how-to-mute-findings)
	// that muted the finding and the user who muted the finding.
	MuteInitiator string `json:"muteInitiator,omitempty"`
	// MuteUpdateTime: Output only. The most recent time this finding was muted or
	// unmuted.
	MuteUpdateTime string `json:"muteUpdateTime,omitempty"`
	// Name: Identifier. The relative resource name
	// (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
	// of the finding. The following list shows some examples: +
	// `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`
	// +
	// `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/
	// findings/{finding_id}` +
	// `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` +
	// `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{fi
	// nding_id}` +
	// `projects/{project_id}/sources/{source_id}/findings/{finding_id}` +
	// `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{
	// finding_id}`
	Name string `json:"name,omitempty"`
	// Networks: Represents the VPC networks that the resource is attached to.
	Networks []*GoogleCloudSecuritycenterV2Network `json:"networks,omitempty"`
	// NextSteps: Steps to address the finding.
	NextSteps string `json:"nextSteps,omitempty"`
	// Notebook: Notebook associated with the finding.
	Notebook *GoogleCloudSecuritycenterV2Notebook `json:"notebook,omitempty"`
	// OrgPolicies: Contains information about the org policies associated with the
	// finding.
	OrgPolicies []*GoogleCloudSecuritycenterV2OrgPolicy `json:"orgPolicies,omitempty"`
	// Parent: The relative resource name of the source and location the finding
	// belongs to. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// This field is immutable after creation time. The following list shows some
	// examples: + `organizations/{organization_id}/sources/{source_id}` +
	// `folders/{folders_id}/sources/{source_id}` +
	// `projects/{projects_id}/sources/{source_id}` +
	// `organizations/{organization_id}/sources/{source_id}/locations/{location_id}`
	//  + `folders/{folders_id}/sources/{source_id}/locations/{location_id}` +
	// `projects/{projects_id}/sources/{source_id}/locations/{location_id}`
	Parent string `json:"parent,omitempty"`
	// ParentDisplayName: Output only. The human readable display name of the
	// finding source such as "Event Threat Detection" or "Security Health
	// Analytics".
	ParentDisplayName string `json:"parentDisplayName,omitempty"`
	// Processes: Represents operating system processes associated with the
	// Finding.
	Processes []*GoogleCloudSecuritycenterV2Process `json:"processes,omitempty"`
	// ResourceName: Immutable. For findings on Google Cloud resources, the full
	// resource name of the Google Cloud resource this finding is for. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name When
	// the finding is for a non-Google Cloud resource, the resourceName can be a
	// customer or partner defined string.
	ResourceName string `json:"resourceName,omitempty"`
	// SecurityMarks: Output only. User specified security marks. These marks are
	// entirely managed by the user and come from the SecurityMarks resource that
	// belongs to the finding.
	SecurityMarks *GoogleCloudSecuritycenterV2SecurityMarks `json:"securityMarks,omitempty"`
	// SecurityPosture: The security posture associated with the finding.
	SecurityPosture *GoogleCloudSecuritycenterV2SecurityPosture `json:"securityPosture,omitempty"`
	// Severity: The severity of the finding. This field is managed by the source
	// that writes the finding.
	//
	// Possible values:
	//   "SEVERITY_UNSPECIFIED" - This value is used for findings when a source
	// doesn't write a severity value.
	//   "CRITICAL" - Vulnerability: A critical vulnerability is easily
	// discoverable by an external actor, exploitable, and results in the direct
	// ability to execute arbitrary code, exfiltrate data, and otherwise gain
	// additional access and privileges to cloud resources and workloads. Examples
	// include publicly accessible unprotected user data and public SSH access with
	// weak or no passwords. Threat: Indicates a threat that is able to access,
	// modify, or delete data or execute unauthorized code within existing
	// resources.
	//   "HIGH" - Vulnerability: A high risk vulnerability can be easily discovered
	// and exploited in combination with other vulnerabilities in order to gain
	// direct access and the ability to execute arbitrary code, exfiltrate data,
	// and otherwise gain additional access and privileges to cloud resources and
	// workloads. An example is a database with weak or no passwords that is only
	// accessible internally. This database could easily be compromised by an actor
	// that had access to the internal network. Threat: Indicates a threat that is
	// able to create new computational resources in an environment but not able to
	// access data or execute code in existing resources.
	//   "MEDIUM" - Vulnerability: A medium risk vulnerability could be used by an
	// actor to gain access to resources or privileges that enable them to
	// eventually (through multiple steps or a complex exploit) gain access and the
	// ability to execute arbitrary code or exfiltrate data. An example is a
	// service account with access to more projects than it should have. If an
	// actor gains access to the service account, they could potentially use that
	// access to manipulate a project the service account was not intended to.
	// Threat: Indicates a threat that is able to cause operational impact but may
	// not access data or execute unauthorized code.
	//   "LOW" - Vulnerability: A low risk vulnerability hampers a security
	// organization's ability to detect vulnerabilities or active threats in their
	// deployment, or prevents the root cause investigation of security issues. An
	// example is monitoring and logs being disabled for resource configurations
	// and access. Threat: Indicates a threat that has obtained minimal access to
	// an environment but is not able to access data, execute code, or create
	// resources.
	Severity string `json:"severity,omitempty"`
	// SourceProperties: Source specific properties. These properties are managed
	// by the source that writes the finding. The key names in the
	// source_properties map must be between 1 and 255 characters, and must start
	// with a letter and contain alphanumeric characters or underscores only.
	SourceProperties googleapi.RawMessage `json:"sourceProperties,omitempty"`
	// State: Output only. The state of the finding.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unspecified state.
	//   "ACTIVE" - The finding requires attention and has not been addressed yet.
	//   "INACTIVE" - The finding has been fixed, triaged as a non-issue or
	// otherwise addressed and is no longer active.
	State string `json:"state,omitempty"`
	// ToxicCombination: Contains details about a group of security issues that,
	// when the issues occur together, represent a greater risk than when the
	// issues occur independently. A group of such issues is referred to as a toxic
	// combination. This field cannot be updated. Its value is ignored in all
	// update requests.
	ToxicCombination *GoogleCloudSecuritycenterV2ToxicCombination `json:"toxicCombination,omitempty"`
	// VertexAi: VertexAi associated with the finding.
	VertexAi *GoogleCloudSecuritycenterV2VertexAi `json:"vertexAi,omitempty"`
	// Vulnerability: Represents vulnerability-specific fields like CVE and CVSS
	// scores. CVE stands for Common Vulnerabilities and Exposures
	// (https://cve.mitre.org/about/)
	Vulnerability *GoogleCloudSecuritycenterV2Vulnerability `json:"vulnerability,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Access") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Access") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Folder: Message that contains the resource name
// and display name of a folder resource.
type GoogleCloudSecuritycenterV2Folder struct {
	// ResourceFolder: Full resource name of this folder. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	ResourceFolder string `json:"resourceFolder,omitempty"`
	// ResourceFolderDisplayName: The user defined display name for this folder.
	ResourceFolderDisplayName string `json:"resourceFolderDisplayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceFolder") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceFolder") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Framework: Compliance framework associated with
// the finding.
type GoogleCloudSecuritycenterV2Framework struct {
	// Category: Category of the framework associated with the finding. E.g.
	// Security Benchmark, or Assured Workloads
	//
	// Possible values:
	//   "FRAMEWORK_CATEGORY_UNSPECIFIED" - Default value. This value is unused.
	//   "SECURITY_BENCHMARKS" - Security Benchmarks framework
	//   "ASSURED_WORKLOADS" - Assured Workloads framework
	//   "DATA_SECURITY" - Data Security framework
	//   "GOOGLE_BEST_PRACTICES" - Google Best Practices framework
	Category []string `json:"category,omitempty"`
	// Controls: The controls associated with the framework.
	Controls []*GoogleCloudSecuritycenterV2Control `json:"controls,omitempty"`
	// DisplayName: Display name of the framework. For a standard framework, this
	// will look like e.g. PCI DSS 3.2.1, whereas for a custom framework it can be
	// a user defined string like MyFramework
	DisplayName string `json:"displayName,omitempty"`
	// Name: Name of the framework associated with the finding
	Name string `json:"name,omitempty"`
	// Type: Type of the framework associated with the finding, to specify whether
	// the framework is built-in (pre-defined and immutable) or a custom framework
	// defined by the customer (equivalent to security posture)
	//
	// Possible values:
	//   "FRAMEWORK_TYPE_UNSPECIFIED" - Default value. This value is unused.
	//   "FRAMEWORK_TYPE_BUILT_IN" - The framework is a built-in framework if it is
	// created and managed by GCP.
	//   "FRAMEWORK_TYPE_CUSTOM" - The framework is a custom framework if it is
	// created and managed by the user.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Category") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Category") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudSecuritycenterV2GroupMembership: Contains details about groups of
// which this finding is a member. A group is a collection of findings that are
// related in some way.
type GoogleCloudSecuritycenterV2GroupMembership struct {
	// GroupId: ID of the group.
	GroupId string `json:"groupId,omitempty"`
	// GroupType: Type of group.
	//
	// Possible values:
	//   "GROUP_TYPE_UNSPECIFIED" - Default value.
	//   "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination.
	//   "GROUP_TYPE_CHOKEPOINT" - Group represents a chokepoint.
	GroupType string `json:"groupType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GroupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2IamBinding: Represents a particular IAM binding,
// which captures a member's role addition, removal, or state.
type GoogleCloudSecuritycenterV2IamBinding struct {
	// Action: The action that was performed on a Binding.
	//
	// Possible values:
	//   "ACTION_UNSPECIFIED" - Unspecified.
	//   "ADD" - Addition of a Binding.
	//   "REMOVE" - Removal of a Binding.
	Action string `json:"action,omitempty"`
	// Member: A single identity requesting access for a Cloud Platform resource,
	// for example, "foo@google.com".
	Member string `json:"member,omitempty"`
	// Role: Role that is assigned to "members". For example, "roles/viewer",
	// "roles/editor", or "roles/owner".
	Role string `json:"role,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Indicator: Represents what's commonly known as an
// _indicator of compromise_ (IoC) in computer forensics. This is an artifact
// observed on a network or in an operating system that, with high confidence,
// indicates a computer intrusion. For more information, see Indicator of
// compromise (https://en.wikipedia.org/wiki/Indicator_of_compromise).
type GoogleCloudSecuritycenterV2Indicator struct {
	// Domains: List of domains associated to the Finding.
	Domains []string `json:"domains,omitempty"`
	// IpAddresses: The list of IP addresses that are associated with the finding.
	IpAddresses []string `json:"ipAddresses,omitempty"`
	// Signatures: The list of matched signatures indicating that the given process
	// is present in the environment.
	Signatures []*GoogleCloudSecuritycenterV2ProcessSignature `json:"signatures,omitempty"`
	// Uris: The list of URIs associated to the Findings.
	Uris []string `json:"uris,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Domains") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Domains") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2InfoType: Type of information detected by the
// API.
type GoogleCloudSecuritycenterV2InfoType struct {
	// Name: Name of the information type. Either a name of your choosing when
	// creating a CustomInfoType, or one of the names listed at
	// https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference
	// when specifying a built-in type. When sending Cloud DLP results to Data
	// Catalog, infoType names should conform to the pattern
	// `[A-Za-z0-9$_-]{1,64}`.
	Name string `json:"name,omitempty"`
	// SensitivityScore: Optional custom sensitivity for this InfoType. This only
	// applies to data profiling.
	SensitivityScore *GoogleCloudSecuritycenterV2SensitivityScore `json:"sensitivityScore,omitempty"`
	// Version: Optional version name for this InfoType.
	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 GoogleCloudSecuritycenterV2InfoType) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2InfoType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2IpRule: IP rule information.
type GoogleCloudSecuritycenterV2IpRule struct {
	// PortRanges: Optional. An optional list of ports to which this rule applies.
	// This field is only applicable for the UDP or (S)TCP protocols. Each entry
	// must be either an integer or a range including a min and max port number.
	PortRanges []*GoogleCloudSecuritycenterV2PortRange `json:"portRanges,omitempty"`
	// Protocol: The IP protocol this rule applies to. This value can either be one
	// of the following well known protocol strings (TCP, UDP, ICMP, ESP, AH, IPIP,
	// SCTP) or a string representation of the integer value.
	Protocol string `json:"protocol,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PortRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PortRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2IpRules: IP rules associated with the finding.
type GoogleCloudSecuritycenterV2IpRules struct {
	// Allowed: Tuple with allowed rules.
	Allowed *GoogleCloudSecuritycenterV2Allowed `json:"allowed,omitempty"`
	// Denied: Tuple with denied rules.
	Denied *GoogleCloudSecuritycenterV2Denied `json:"denied,omitempty"`
	// DestinationIpRanges: If destination IP ranges are specified, the firewall
	// rule applies only to traffic that has a destination IP address in these
	// ranges. These ranges must be expressed in CIDR format. Only supports IPv4.
	DestinationIpRanges []string `json:"destinationIpRanges,omitempty"`
	// Direction: The direction that the rule is applicable to, one of ingress or
	// egress.
	//
	// Possible values:
	//   "DIRECTION_UNSPECIFIED" - Unspecified direction value.
	//   "INGRESS" - Ingress direction value.
	//   "EGRESS" - Egress direction value.
	Direction string `json:"direction,omitempty"`
	// ExposedServices: Name of the network protocol service, such as FTP, that is
	// exposed by the open port. Follows the naming convention available at:
	// https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml.
	ExposedServices []string `json:"exposedServices,omitempty"`
	// SourceIpRanges: If source IP ranges are specified, the firewall rule applies
	// only to traffic that has a source IP address in these ranges. These ranges
	// must be expressed in CIDR format. Only supports IPv4.
	SourceIpRanges []string `json:"sourceIpRanges,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Allowed") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Allowed") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Issue: Security Command Center Issue.
type GoogleCloudSecuritycenterV2Issue struct {
	// CreateTime: Output only. The time the issue was created.
	CreateTime string `json:"createTime,omitempty"`
	// Description: The description of the issue in Markdown format.
	Description string `json:"description,omitempty"`
	// Detection: The finding category or rule name that generated the issue.
	Detection string `json:"detection,omitempty"`
	// Domains: The domains of the issue.
	Domains []*GoogleCloudSecuritycenterV2IssueDomain `json:"domains,omitempty"`
	// ExposureScore: The exposure score of the issue.
	ExposureScore float64 `json:"exposureScore,omitempty"`
	// IssueType: The type of the issue.
	//
	// Possible values:
	//   "ISSUE_TYPE_UNSPECIFIED" - Unspecified issue type.
	//   "CHOKEPOINT" - Chokepoint issue type.
	//   "TOXIC_COMBINATION" - Toxic combination issue type.
	//   "INSIGHT" - Insight issue type.
	IssueType string `json:"issueType,omitempty"`
	// LastObservationTime: The time the issue was last observed.
	LastObservationTime string `json:"lastObservationTime,omitempty"`
	// Mute: The mute information of the issue.
	Mute *GoogleCloudSecuritycenterV2IssueMute `json:"mute,omitempty"`
	// Name: Identifier. The name of the issue. Format:
	// organizations/{organization}/locations/{location}/issues/{issue}
	Name string `json:"name,omitempty"`
	// PrimaryResource: The primary resource associated with the issue.
	PrimaryResource *GoogleCloudSecuritycenterV2IssueResource `json:"primaryResource,omitempty"`
	// RelatedFindings: The findings related to the issue.
	RelatedFindings []*GoogleCloudSecuritycenterV2IssueFinding `json:"relatedFindings,omitempty"`
	// Remediations: Approaches to remediate the issue in Markdown format.
	Remediations []string `json:"remediations,omitempty"`
	// SecondaryResources: Additional resources associated with the issue.
	SecondaryResources []*GoogleCloudSecuritycenterV2IssueResource `json:"secondaryResources,omitempty"`
	// SecurityContexts: The security context of the issue.
	SecurityContexts []*GoogleCloudSecuritycenterV2IssueSecurityContext `json:"securityContexts,omitempty"`
	// Severity: The severity of the issue.
	//
	// Possible values:
	//   "SEVERITY_UNSPECIFIED" - Unspecified severity.
	//   "CRITICAL" - Critical severity.
	//   "HIGH" - High severity.
	//   "MEDIUM" - Medium severity.
	//   "LOW" - Low severity.
	Severity string `json:"severity,omitempty"`
	// State: Output only. The state of the issue.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unspecified state.
	//   "ACTIVE" - Active state.
	//   "INACTIVE" - Inactive state.
	State string `json:"state,omitempty"`
	// UpdateTime: Output only. The time the issue was last updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudSecuritycenterV2IssueDomain: The domains of an issue.
type GoogleCloudSecuritycenterV2IssueDomain struct {
	// DomainCategory: The domain category of the issue.
	//
	// Possible values:
	//   "DOMAIN_CATEGORY_UNSPECIFIED" - Unspecified domain category.
	//   "AI" - Issues in the AI domain.
	//   "CODE" - Issues in the code domain.
	//   "CONTAINER" - Issues in the container domain.
	//   "DATA" - Issues in the data domain.
	//   "IDENTITY_AND_ACCESS" - Issues in the identity and access domain.
	//   "VULNERABILITY" - Issues in the vulnerability domain.
	//   "THREAT" - Issues in the threat domain.
	DomainCategory string `json:"domainCategory,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DomainCategory") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DomainCategory") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2IssueFinding: Finding related to an issue.
type GoogleCloudSecuritycenterV2IssueFinding struct {
	// Cve: The CVE of the finding.
	Cve *GoogleCloudSecuritycenterV2IssueFindingCve `json:"cve,omitempty"`
	// Name: The name of the finding.
	Name string `json:"name,omitempty"`
	// SecurityBulletin: The security bulletin of the finding.
	SecurityBulletin *GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin `json:"securityBulletin,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cve") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cve") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

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

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

// GoogleCloudSecuritycenterV2IssueMute: The mute information of the issue.
type GoogleCloudSecuritycenterV2IssueMute struct {
	// MuteInitiator: The email address of the user who last changed the mute state
	// of the issue.
	MuteInitiator string `json:"muteInitiator,omitempty"`
	// MuteReason: The user-provided reason for muting the issue.
	MuteReason string `json:"muteReason,omitempty"`
	// MuteState: Output only. The mute state of the issue.
	//
	// Possible values:
	//   "MUTE_STATE_UNSPECIFIED" - Unspecified mute state.
	//   "NOT_MUTED" - Not muted.
	//   "MUTED" - Muted.
	MuteState string `json:"muteState,omitempty"`
	// MuteUpdateTime: The time the issue was muted.
	MuteUpdateTime string `json:"muteUpdateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MuteInitiator") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MuteInitiator") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2IssueResource: A resource associated with the an
// issue.
type GoogleCloudSecuritycenterV2IssueResource struct {
	// Application: The AppHub application associated with the resource, if any.
	// Only populated for the primary resource.
	Application *GoogleCloudSecuritycenterV2IssueResourceApplication `json:"application,omitempty"`
	// AwsMetadata: The AWS metadata of the resource associated with the issue.
	// Only populated for AWS resources.
	AwsMetadata *GoogleCloudSecuritycenterV2IssueResourceAwsMetadata `json:"awsMetadata,omitempty"`
	// AzureMetadata: The Azure metadata of the resource associated with the issue.
	// Only populated for Azure resources.
	AzureMetadata *GoogleCloudSecuritycenterV2IssueResourceAzureMetadata `json:"azureMetadata,omitempty"`
	// CloudProvider: The cloud provider of the resource associated with the issue.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - Unspecified cloud provider.
	//   "GOOGLE_CLOUD" - Google Cloud.
	//   "AMAZON_WEB_SERVICES" - Amazon Web Services.
	//   "MICROSOFT_AZURE" - Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// DisplayName: The resource-type specific display name of the resource
	// associated with the issue.
	DisplayName string `json:"displayName,omitempty"`
	// GoogleCloudMetadata: The Google Cloud metadata of the resource associated
	// with the issue. Only populated for Google Cloud resources.
	GoogleCloudMetadata *GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata `json:"googleCloudMetadata,omitempty"`
	// Name: The full resource name of the resource associated with the issue.
	Name string `json:"name,omitempty"`
	// Type: The type of the resource associated with the issue.
	Type string `json:"type,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 GoogleCloudSecuritycenterV2IssueResource) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2IssueResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2IssueResourceApplication: The AppHub application
// associated with the resource, if any.
type GoogleCloudSecuritycenterV2IssueResourceApplication struct {
	// Attributes: Consumer provided attributes for the application
	Attributes *GoogleCloudSecuritycenterV2IssueResourceApplicationAttributes `json:"attributes,omitempty"`
	// Name: The resource name of an Application. Format:
	// `projects/{host-project-id}/locations/{location}/applications/{application-id
	// }`
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attributes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2IssueResourceApplicationAttributes: Consumer
// provided attributes for the application
type GoogleCloudSecuritycenterV2IssueResourceApplicationAttributes struct {
	// BusinessOwners: Business team that ensures user needs are met and value is
	// delivered
	BusinessOwners []*GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesContactInfo `json:"businessOwners,omitempty"`
	// Criticality: User-defined criticality information.
	Criticality *GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesCriticality `json:"criticality,omitempty"`
	// DeveloperOwners: Developer team that owns development and coding.
	DeveloperOwners []*GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesContactInfo `json:"developerOwners,omitempty"`
	// Environment: User-defined environment information.
	Environment *GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesEnvironment `json:"environment,omitempty"`
	// OperatorOwners: Operator team that ensures runtime and operations.
	OperatorOwners []*GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesContactInfo `json:"operatorOwners,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessOwners") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessOwners") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesCriticality:
// Criticality of the Application, Service, or Workload
type GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesCriticality struct {
	// Type: Criticality Type.
	//
	// Possible values:
	//   "CRITICALITY_TYPE_UNSPECIFIED" - Unspecified type.
	//   "MISSION_CRITICAL" - Mission critical service, application or workload.
	//   "HIGH" - High impact.
	//   "MEDIUM" - Medium impact.
	//   "LOW" - Low impact.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesEnvironment:
// Environment of the Application, Service, or Workload
type GoogleCloudSecuritycenterV2IssueResourceApplicationAttributesEnvironment struct {
	// Type: Environment Type.
	//
	// Possible values:
	//   "ENVIRONMENT_TYPE_UNSPECIFIED" - Unspecified type.
	//   "PRODUCTION" - Production environment.
	//   "STAGING" - Staging environment.
	//   "TEST" - Test environment.
	//   "DEVELOPMENT" - Development environment.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

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

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

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

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

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

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

// GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata: Google Cloud
// metadata of a resource associated with an issue.
type GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata struct {
	// ProjectId: The project ID that the resource associated with the issue
	// belongs to.
	ProjectId string `json:"projectId,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 GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2IssueSecurityContext: Security context associated
// with an issue.
type GoogleCloudSecuritycenterV2IssueSecurityContext struct {
	// AggregatedCount: The aggregated count of the security context.
	AggregatedCount *GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount `json:"aggregatedCount,omitempty"`
	// Context: The context of the security context.
	Context *GoogleCloudSecuritycenterV2IssueSecurityContextContext `json:"context,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AggregatedCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregatedCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

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

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

// GoogleCloudSecuritycenterV2Job: Describes a job
type GoogleCloudSecuritycenterV2Job struct {
	// ErrorCode: Optional. If the job did not complete successfully, this field
	// describes why.
	ErrorCode int64 `json:"errorCode,omitempty"`
	// Location: Optional. Gives the location where the job ran, such as `US` or
	// `europe-west1`
	Location string `json:"location,omitempty"`
	// Name: The fully-qualified name for a job. e.g. `projects//jobs/`
	Name string `json:"name,omitempty"`
	// State: Output only. State of the job, such as `RUNNING` or `PENDING`.
	//
	// Possible values:
	//   "JOB_STATE_UNSPECIFIED" - Unspecified represents an unknown state and
	// should not be used.
	//   "PENDING" - Job is scheduled and pending for run
	//   "RUNNING" - Job in progress
	//   "SUCCEEDED" - Job has completed with success
	//   "FAILED" - Job has completed but with failure
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2KernelRootkit: Kernel mode rootkit signatures.
type GoogleCloudSecuritycenterV2KernelRootkit struct {
	// Name: Rootkit name, when available.
	Name string `json:"name,omitempty"`
	// UnexpectedCodeModification: True if unexpected modifications of kernel code
	// memory are present.
	UnexpectedCodeModification bool `json:"unexpectedCodeModification,omitempty"`
	// UnexpectedFtraceHandler: True if `ftrace` points are present with callbacks
	// pointing to regions that are not in the expected kernel or module code
	// range.
	UnexpectedFtraceHandler bool `json:"unexpectedFtraceHandler,omitempty"`
	// UnexpectedInterruptHandler: True if interrupt handlers that are are not in
	// the expected kernel or module code regions are present.
	UnexpectedInterruptHandler bool `json:"unexpectedInterruptHandler,omitempty"`
	// UnexpectedKernelCodePages: True if kernel code pages that are not in the
	// expected kernel or module code regions are present.
	UnexpectedKernelCodePages bool `json:"unexpectedKernelCodePages,omitempty"`
	// UnexpectedKprobeHandler: True if `kprobe` points are present with callbacks
	// pointing to regions that are not in the expected kernel or module code
	// range.
	UnexpectedKprobeHandler bool `json:"unexpectedKprobeHandler,omitempty"`
	// UnexpectedProcessesInRunqueue: True if unexpected processes in the scheduler
	// run queue are present. Such processes are in the run queue, but not in the
	// process task list.
	UnexpectedProcessesInRunqueue bool `json:"unexpectedProcessesInRunqueue,omitempty"`
	// UnexpectedReadOnlyDataModification: True if unexpected modifications of
	// kernel read-only data memory are present.
	UnexpectedReadOnlyDataModification bool `json:"unexpectedReadOnlyDataModification,omitempty"`
	// UnexpectedSystemCallHandler: True if system call handlers that are are not
	// in the expected kernel or module code regions are present.
	UnexpectedSystemCallHandler bool `json:"unexpectedSystemCallHandler,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 GoogleCloudSecuritycenterV2KernelRootkit) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2KernelRootkit
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2Kubernetes: Kubernetes-related attributes.
type GoogleCloudSecuritycenterV2Kubernetes struct {
	// AccessReviews: Provides information on any Kubernetes access reviews
	// (privilege checks) relevant to the finding.
	AccessReviews []*GoogleCloudSecuritycenterV2AccessReview `json:"accessReviews,omitempty"`
	// Bindings: Provides Kubernetes role binding information for findings that
	// involve RoleBindings or ClusterRoleBindings
	// (https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).
	Bindings []*GoogleCloudSecuritycenterV2Binding `json:"bindings,omitempty"`
	// NodePools: GKE node pools
	// (https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools)
	// associated with the finding. This field contains node pool information for
	// each node, when it is available.
	NodePools []*GoogleCloudSecuritycenterV2NodePool `json:"nodePools,omitempty"`
	// Nodes: Provides Kubernetes node
	// (https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes)
	// information.
	Nodes []*GoogleCloudSecuritycenterV2Node `json:"nodes,omitempty"`
	// Objects: Kubernetes objects related to the finding.
	Objects []*GoogleCloudSecuritycenterV2Object `json:"objects,omitempty"`
	// Pods: Kubernetes Pods
	// (https://cloud.google.com/kubernetes-engine/docs/concepts/pod) associated
	// with the finding. This field contains Pod records for each container that is
	// owned by a Pod.
	Pods []*GoogleCloudSecuritycenterV2Pod `json:"pods,omitempty"`
	// Roles: Provides Kubernetes role information for findings that involve Roles
	// or ClusterRoles
	// (https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).
	Roles []*GoogleCloudSecuritycenterV2Role `json:"roles,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessReviews") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessReviews") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Label: Represents a generic name-value label. A
// label has separate name and value fields to support filtering with the
// `contains()` function. For more information, see Filtering on array-type
// fields
// (https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering).
type GoogleCloudSecuritycenterV2Label struct {
	// Name: Name of the label.
	Name string `json:"name,omitempty"`
	// Value: Value that corresponds to the label's name.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudSecuritycenterV2LogEntry: An individual entry in a log.
type GoogleCloudSecuritycenterV2LogEntry struct {
	// CloudLoggingEntry: An individual entry in a log stored in Cloud Logging.
	CloudLoggingEntry *GoogleCloudSecuritycenterV2CloudLoggingEntry `json:"cloudLoggingEntry,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudLoggingEntry") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudLoggingEntry") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2MemoryHashSignature: A signature corresponding to
// memory page hashes.
type GoogleCloudSecuritycenterV2MemoryHashSignature struct {
	// BinaryFamily: The binary family.
	BinaryFamily string `json:"binaryFamily,omitempty"`
	// Detections: The list of memory hash detections contributing to the binary
	// family match.
	Detections []*GoogleCloudSecuritycenterV2Detection `json:"detections,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BinaryFamily") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BinaryFamily") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2MitreAttack: MITRE ATT&CK tactics and techniques
// related to this finding. See: https://attack.mitre.org
type GoogleCloudSecuritycenterV2MitreAttack struct {
	// AdditionalTactics: Additional MITRE ATT&CK tactics related to this finding,
	// if any.
	//
	// Possible values:
	//   "TACTIC_UNSPECIFIED" - Unspecified value.
	//   "RECONNAISSANCE" - TA0043
	//   "RESOURCE_DEVELOPMENT" - TA0042
	//   "INITIAL_ACCESS" - TA0001
	//   "EXECUTION" - TA0002
	//   "PERSISTENCE" - TA0003
	//   "PRIVILEGE_ESCALATION" - TA0004
	//   "DEFENSE_EVASION" - TA0005
	//   "CREDENTIAL_ACCESS" - TA0006
	//   "DISCOVERY" - TA0007
	//   "LATERAL_MOVEMENT" - TA0008
	//   "COLLECTION" - TA0009
	//   "COMMAND_AND_CONTROL" - TA0011
	//   "EXFILTRATION" - TA0010
	//   "IMPACT" - TA0040
	AdditionalTactics []string `json:"additionalTactics,omitempty"`
	// AdditionalTechniques: Additional MITRE ATT&CK techniques related to this
	// finding, if any, along with any of their respective parent techniques.
	//
	// Possible values:
	//   "TECHNIQUE_UNSPECIFIED" - Unspecified value.
	//   "DATA_OBFUSCATION" - T1001
	//   "DATA_OBFUSCATION_STEGANOGRAPHY" - T1001.002
	//   "OS_CREDENTIAL_DUMPING" - T1003
	//   "OS_CREDENTIAL_DUMPING_PROC_FILESYSTEM" - T1003.007
	//   "OS_CREDENTIAL_DUMPING_ETC_PASSWORD_AND_ETC_SHADOW" - T1003.008
	//   "DATA_FROM_LOCAL_SYSTEM" - T1005
	//   "AUTOMATED_EXFILTRATION" - T1020
	//   "OBFUSCATED_FILES_OR_INFO" - T1027
	//   "STEGANOGRAPHY" - T1027.003
	//   "COMPILE_AFTER_DELIVERY" - T1027.004
	//   "COMMAND_OBFUSCATION" - T1027.010
	//   "SCHEDULED_TRANSFER" - T1029
	//   "SYSTEM_OWNER_USER_DISCOVERY" - T1033
	//   "MASQUERADING" - T1036
	//   "MATCH_LEGITIMATE_NAME_OR_LOCATION" - T1036.005
	//   "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS" - T1037
	//   "STARTUP_ITEMS" - T1037.005
	//   "NETWORK_SERVICE_DISCOVERY" - T1046
	//   "SCHEDULED_TASK_JOB" - T1053
	//   "SCHEDULED_TASK_JOB_CRON" - T1053.003
	//   "CONTAINER_ORCHESTRATION_JOB" - T1053.007
	//   "PROCESS_INJECTION" - T1055
	//   "INPUT_CAPTURE" - T1056
	//   "INPUT_CAPTURE_KEYLOGGING" - T1056.001
	//   "PROCESS_DISCOVERY" - T1057
	//   "COMMAND_AND_SCRIPTING_INTERPRETER" - T1059
	//   "UNIX_SHELL" - T1059.004
	//   "PYTHON" - T1059.006
	//   "EXPLOITATION_FOR_PRIVILEGE_ESCALATION" - T1068
	//   "PERMISSION_GROUPS_DISCOVERY" - T1069
	//   "CLOUD_GROUPS" - T1069.003
	//   "INDICATOR_REMOVAL" - T1070
	//   "INDICATOR_REMOVAL_CLEAR_LINUX_OR_MAC_SYSTEM_LOGS" - T1070.002
	//   "INDICATOR_REMOVAL_CLEAR_COMMAND_HISTORY" - T1070.003
	//   "INDICATOR_REMOVAL_FILE_DELETION" - T1070.004
	//   "INDICATOR_REMOVAL_TIMESTOMP" - T1070.006
	//   "INDICATOR_REMOVAL_CLEAR_MAILBOX_DATA" - T1070.008
	//   "APPLICATION_LAYER_PROTOCOL" - T1071
	//   "DNS" - T1071.004
	//   "SOFTWARE_DEPLOYMENT_TOOLS" - T1072
	//   "VALID_ACCOUNTS" - T1078
	//   "DEFAULT_ACCOUNTS" - T1078.001
	//   "LOCAL_ACCOUNTS" - T1078.003
	//   "CLOUD_ACCOUNTS" - T1078.004
	//   "FILE_AND_DIRECTORY_DISCOVERY" - T1083
	//   "ACCOUNT_DISCOVERY_LOCAL_ACCOUNT" - T1087.001
	//   "PROXY" - T1090
	//   "EXTERNAL_PROXY" - T1090.002
	//   "MULTI_HOP_PROXY" - T1090.003
	//   "ACCOUNT_MANIPULATION" - T1098
	//   "ADDITIONAL_CLOUD_CREDENTIALS" - T1098.001
	//   "ADDITIONAL_CLOUD_ROLES" - T1098.003
	//   "SSH_AUTHORIZED_KEYS" - T1098.004
	//   "ADDITIONAL_CONTAINER_CLUSTER_ROLES" - T1098.006
	//   "MULTI_STAGE_CHANNELS" - T1104
	//   "INGRESS_TOOL_TRANSFER" - T1105
	//   "NATIVE_API" - T1106
	//   "BRUTE_FORCE" - T1110
	//   "AUTOMATED_COLLECTION" - T1119
	//   "SHARED_MODULES" - T1129
	//   "DATA_ENCODING" - T1132
	//   "STANDARD_ENCODING" - T1132.001
	//   "ACCESS_TOKEN_MANIPULATION" - T1134
	//   "TOKEN_IMPERSONATION_OR_THEFT" - T1134.001
	//   "CREATE_ACCOUNT" - T1136
	//   "LOCAL_ACCOUNT" - T1136.001
	//   "DEOBFUSCATE_DECODE_FILES_OR_INFO" - T1140
	//   "EXPLOIT_PUBLIC_FACING_APPLICATION" - T1190
	//   "SUPPLY_CHAIN_COMPROMISE" - T1195
	//   "COMPROMISE_SOFTWARE_DEPENDENCIES_AND_DEVELOPMENT_TOOLS" - T1195.001
	//   "EXPLOITATION_FOR_CLIENT_EXECUTION" - T1203
	//   "USER_EXECUTION" - T1204
	//   "EXPLOITATION_FOR_CREDENTIAL_ACCESS" - T1212
	//   "LINUX_AND_MAC_FILE_AND_DIRECTORY_PERMISSIONS_MODIFICATION" - T1222.002
	//   "DOMAIN_POLICY_MODIFICATION" - T1484
	//   "DATA_DESTRUCTION" - T1485
	//   "DATA_ENCRYPTED_FOR_IMPACT" - T1486
	//   "SERVICE_STOP" - T1489
	//   "INHIBIT_SYSTEM_RECOVERY" - T1490
	//   "FIRMWARE_CORRUPTION" - T1495
	//   "RESOURCE_HIJACKING" - T1496
	//   "NETWORK_DENIAL_OF_SERVICE" - T1498
	//   "CLOUD_SERVICE_DISCOVERY" - T1526
	//   "STEAL_APPLICATION_ACCESS_TOKEN" - T1528
	//   "ACCOUNT_ACCESS_REMOVAL" - T1531
	//   "TRANSFER_DATA_TO_CLOUD_ACCOUNT" - T1537
	//   "STEAL_WEB_SESSION_COOKIE" - T1539
	//   "CREATE_OR_MODIFY_SYSTEM_PROCESS" - T1543
	//   "EVENT_TRIGGERED_EXECUTION" - T1546
	//   "BOOT_OR_LOGON_AUTOSTART_EXECUTION" - T1547
	//   "KERNEL_MODULES_AND_EXTENSIONS" - T1547.006
	//   "SHORTCUT_MODIFICATION" - T1547.009
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM" - T1548
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SETUID_AND_SETGID" - T1548.001
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SUDO_AND_SUDO_CACHING" - T1548.003
	//   "UNSECURED_CREDENTIALS" - T1552
	//   "CREDENTIALS_IN_FILES" - T1552.001
	//   "BASH_HISTORY" - T1552.003
	//   "PRIVATE_KEYS" - T1552.004
	//   "SUBVERT_TRUST_CONTROL" - T1553
	//   "INSTALL_ROOT_CERTIFICATE" - T1553.004
	//   "COMPROMISE_HOST_SOFTWARE_BINARY" - T1554
	//   "CREDENTIALS_FROM_PASSWORD_STORES" - T1555
	//   "MODIFY_AUTHENTICATION_PROCESS" - T1556
	//   "PLUGGABLE_AUTHENTICATION_MODULES" - T1556.003
	//   "MULTI_FACTOR_AUTHENTICATION" - T1556.006
	//   "IMPAIR_DEFENSES" - T1562
	//   "DISABLE_OR_MODIFY_TOOLS" - T1562.001
	//   "INDICATOR_BLOCKING" - T1562.006
	//   "DISABLE_OR_MODIFY_LINUX_AUDIT_SYSTEM" - T1562.012
	//   "HIDE_ARTIFACTS" - T1564
	//   "HIDDEN_FILES_AND_DIRECTORIES" - T1564.001
	//   "HIDDEN_USERS" - T1564.002
	//   "EXFILTRATION_OVER_WEB_SERVICE" - T1567
	//   "EXFILTRATION_TO_CLOUD_STORAGE" - T1567.002
	//   "DYNAMIC_RESOLUTION" - T1568
	//   "LATERAL_TOOL_TRANSFER" - T1570
	//   "HIJACK_EXECUTION_FLOW" - T1574
	//   "HIJACK_EXECUTION_FLOW_DYNAMIC_LINKER_HIJACKING" - T1574.006
	//   "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE" - T1578
	//   "CREATE_SNAPSHOT" - T1578.001
	//   "CLOUD_INFRASTRUCTURE_DISCOVERY" - T1580
	//   "DEVELOP_CAPABILITIES" - T1587
	//   "DEVELOP_CAPABILITIES_MALWARE" - T1587.001
	//   "OBTAIN_CAPABILITIES" - T1588
	//   "OBTAIN_CAPABILITIES_MALWARE" - T1588.001
	//   "OBTAIN_CAPABILITIES_VULNERABILITIES" - T1588.006
	//   "ACTIVE_SCANNING" - T1595
	//   "SCANNING_IP_BLOCKS" - T1595.001
	//   "STAGE_CAPABILITIES" - T1608
	//   "UPLOAD_MALWARE" - T1608.001
	//   "CONTAINER_ADMINISTRATION_COMMAND" - T1609
	//   "DEPLOY_CONTAINER" - T1610
	//   "ESCAPE_TO_HOST" - T1611
	//   "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613
	//   "REFLECTIVE_CODE_LOADING" - T1620
	//   "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649
	//   "FINANCIAL_THEFT" - T1657
	AdditionalTechniques []string `json:"additionalTechniques,omitempty"`
	// PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this
	// finding, if any.
	//
	// Possible values:
	//   "TACTIC_UNSPECIFIED" - Unspecified value.
	//   "RECONNAISSANCE" - TA0043
	//   "RESOURCE_DEVELOPMENT" - TA0042
	//   "INITIAL_ACCESS" - TA0001
	//   "EXECUTION" - TA0002
	//   "PERSISTENCE" - TA0003
	//   "PRIVILEGE_ESCALATION" - TA0004
	//   "DEFENSE_EVASION" - TA0005
	//   "CREDENTIAL_ACCESS" - TA0006
	//   "DISCOVERY" - TA0007
	//   "LATERAL_MOVEMENT" - TA0008
	//   "COLLECTION" - TA0009
	//   "COMMAND_AND_CONTROL" - TA0011
	//   "EXFILTRATION" - TA0010
	//   "IMPACT" - TA0040
	PrimaryTactic string `json:"primaryTactic,omitempty"`
	// PrimaryTechniques: The MITRE ATT&CK technique most closely represented by
	// this finding, if any. primary_techniques is a repeated field because there
	// are multiple levels of MITRE ATT&CK techniques. If the technique most
	// closely represented by this finding is a sub-technique (e.g.
	// `SCANNING_IP_BLOCKS`), both the sub-technique and its parent technique(s)
	// will be listed (e.g. `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`).
	//
	// Possible values:
	//   "TECHNIQUE_UNSPECIFIED" - Unspecified value.
	//   "DATA_OBFUSCATION" - T1001
	//   "DATA_OBFUSCATION_STEGANOGRAPHY" - T1001.002
	//   "OS_CREDENTIAL_DUMPING" - T1003
	//   "OS_CREDENTIAL_DUMPING_PROC_FILESYSTEM" - T1003.007
	//   "OS_CREDENTIAL_DUMPING_ETC_PASSWORD_AND_ETC_SHADOW" - T1003.008
	//   "DATA_FROM_LOCAL_SYSTEM" - T1005
	//   "AUTOMATED_EXFILTRATION" - T1020
	//   "OBFUSCATED_FILES_OR_INFO" - T1027
	//   "STEGANOGRAPHY" - T1027.003
	//   "COMPILE_AFTER_DELIVERY" - T1027.004
	//   "COMMAND_OBFUSCATION" - T1027.010
	//   "SCHEDULED_TRANSFER" - T1029
	//   "SYSTEM_OWNER_USER_DISCOVERY" - T1033
	//   "MASQUERADING" - T1036
	//   "MATCH_LEGITIMATE_NAME_OR_LOCATION" - T1036.005
	//   "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS" - T1037
	//   "STARTUP_ITEMS" - T1037.005
	//   "NETWORK_SERVICE_DISCOVERY" - T1046
	//   "SCHEDULED_TASK_JOB" - T1053
	//   "SCHEDULED_TASK_JOB_CRON" - T1053.003
	//   "CONTAINER_ORCHESTRATION_JOB" - T1053.007
	//   "PROCESS_INJECTION" - T1055
	//   "INPUT_CAPTURE" - T1056
	//   "INPUT_CAPTURE_KEYLOGGING" - T1056.001
	//   "PROCESS_DISCOVERY" - T1057
	//   "COMMAND_AND_SCRIPTING_INTERPRETER" - T1059
	//   "UNIX_SHELL" - T1059.004
	//   "PYTHON" - T1059.006
	//   "EXPLOITATION_FOR_PRIVILEGE_ESCALATION" - T1068
	//   "PERMISSION_GROUPS_DISCOVERY" - T1069
	//   "CLOUD_GROUPS" - T1069.003
	//   "INDICATOR_REMOVAL" - T1070
	//   "INDICATOR_REMOVAL_CLEAR_LINUX_OR_MAC_SYSTEM_LOGS" - T1070.002
	//   "INDICATOR_REMOVAL_CLEAR_COMMAND_HISTORY" - T1070.003
	//   "INDICATOR_REMOVAL_FILE_DELETION" - T1070.004
	//   "INDICATOR_REMOVAL_TIMESTOMP" - T1070.006
	//   "INDICATOR_REMOVAL_CLEAR_MAILBOX_DATA" - T1070.008
	//   "APPLICATION_LAYER_PROTOCOL" - T1071
	//   "DNS" - T1071.004
	//   "SOFTWARE_DEPLOYMENT_TOOLS" - T1072
	//   "VALID_ACCOUNTS" - T1078
	//   "DEFAULT_ACCOUNTS" - T1078.001
	//   "LOCAL_ACCOUNTS" - T1078.003
	//   "CLOUD_ACCOUNTS" - T1078.004
	//   "FILE_AND_DIRECTORY_DISCOVERY" - T1083
	//   "ACCOUNT_DISCOVERY_LOCAL_ACCOUNT" - T1087.001
	//   "PROXY" - T1090
	//   "EXTERNAL_PROXY" - T1090.002
	//   "MULTI_HOP_PROXY" - T1090.003
	//   "ACCOUNT_MANIPULATION" - T1098
	//   "ADDITIONAL_CLOUD_CREDENTIALS" - T1098.001
	//   "ADDITIONAL_CLOUD_ROLES" - T1098.003
	//   "SSH_AUTHORIZED_KEYS" - T1098.004
	//   "ADDITIONAL_CONTAINER_CLUSTER_ROLES" - T1098.006
	//   "MULTI_STAGE_CHANNELS" - T1104
	//   "INGRESS_TOOL_TRANSFER" - T1105
	//   "NATIVE_API" - T1106
	//   "BRUTE_FORCE" - T1110
	//   "AUTOMATED_COLLECTION" - T1119
	//   "SHARED_MODULES" - T1129
	//   "DATA_ENCODING" - T1132
	//   "STANDARD_ENCODING" - T1132.001
	//   "ACCESS_TOKEN_MANIPULATION" - T1134
	//   "TOKEN_IMPERSONATION_OR_THEFT" - T1134.001
	//   "CREATE_ACCOUNT" - T1136
	//   "LOCAL_ACCOUNT" - T1136.001
	//   "DEOBFUSCATE_DECODE_FILES_OR_INFO" - T1140
	//   "EXPLOIT_PUBLIC_FACING_APPLICATION" - T1190
	//   "SUPPLY_CHAIN_COMPROMISE" - T1195
	//   "COMPROMISE_SOFTWARE_DEPENDENCIES_AND_DEVELOPMENT_TOOLS" - T1195.001
	//   "EXPLOITATION_FOR_CLIENT_EXECUTION" - T1203
	//   "USER_EXECUTION" - T1204
	//   "EXPLOITATION_FOR_CREDENTIAL_ACCESS" - T1212
	//   "LINUX_AND_MAC_FILE_AND_DIRECTORY_PERMISSIONS_MODIFICATION" - T1222.002
	//   "DOMAIN_POLICY_MODIFICATION" - T1484
	//   "DATA_DESTRUCTION" - T1485
	//   "DATA_ENCRYPTED_FOR_IMPACT" - T1486
	//   "SERVICE_STOP" - T1489
	//   "INHIBIT_SYSTEM_RECOVERY" - T1490
	//   "FIRMWARE_CORRUPTION" - T1495
	//   "RESOURCE_HIJACKING" - T1496
	//   "NETWORK_DENIAL_OF_SERVICE" - T1498
	//   "CLOUD_SERVICE_DISCOVERY" - T1526
	//   "STEAL_APPLICATION_ACCESS_TOKEN" - T1528
	//   "ACCOUNT_ACCESS_REMOVAL" - T1531
	//   "TRANSFER_DATA_TO_CLOUD_ACCOUNT" - T1537
	//   "STEAL_WEB_SESSION_COOKIE" - T1539
	//   "CREATE_OR_MODIFY_SYSTEM_PROCESS" - T1543
	//   "EVENT_TRIGGERED_EXECUTION" - T1546
	//   "BOOT_OR_LOGON_AUTOSTART_EXECUTION" - T1547
	//   "KERNEL_MODULES_AND_EXTENSIONS" - T1547.006
	//   "SHORTCUT_MODIFICATION" - T1547.009
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM" - T1548
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SETUID_AND_SETGID" - T1548.001
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SUDO_AND_SUDO_CACHING" - T1548.003
	//   "UNSECURED_CREDENTIALS" - T1552
	//   "CREDENTIALS_IN_FILES" - T1552.001
	//   "BASH_HISTORY" - T1552.003
	//   "PRIVATE_KEYS" - T1552.004
	//   "SUBVERT_TRUST_CONTROL" - T1553
	//   "INSTALL_ROOT_CERTIFICATE" - T1553.004
	//   "COMPROMISE_HOST_SOFTWARE_BINARY" - T1554
	//   "CREDENTIALS_FROM_PASSWORD_STORES" - T1555
	//   "MODIFY_AUTHENTICATION_PROCESS" - T1556
	//   "PLUGGABLE_AUTHENTICATION_MODULES" - T1556.003
	//   "MULTI_FACTOR_AUTHENTICATION" - T1556.006
	//   "IMPAIR_DEFENSES" - T1562
	//   "DISABLE_OR_MODIFY_TOOLS" - T1562.001
	//   "INDICATOR_BLOCKING" - T1562.006
	//   "DISABLE_OR_MODIFY_LINUX_AUDIT_SYSTEM" - T1562.012
	//   "HIDE_ARTIFACTS" - T1564
	//   "HIDDEN_FILES_AND_DIRECTORIES" - T1564.001
	//   "HIDDEN_USERS" - T1564.002
	//   "EXFILTRATION_OVER_WEB_SERVICE" - T1567
	//   "EXFILTRATION_TO_CLOUD_STORAGE" - T1567.002
	//   "DYNAMIC_RESOLUTION" - T1568
	//   "LATERAL_TOOL_TRANSFER" - T1570
	//   "HIJACK_EXECUTION_FLOW" - T1574
	//   "HIJACK_EXECUTION_FLOW_DYNAMIC_LINKER_HIJACKING" - T1574.006
	//   "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE" - T1578
	//   "CREATE_SNAPSHOT" - T1578.001
	//   "CLOUD_INFRASTRUCTURE_DISCOVERY" - T1580
	//   "DEVELOP_CAPABILITIES" - T1587
	//   "DEVELOP_CAPABILITIES_MALWARE" - T1587.001
	//   "OBTAIN_CAPABILITIES" - T1588
	//   "OBTAIN_CAPABILITIES_MALWARE" - T1588.001
	//   "OBTAIN_CAPABILITIES_VULNERABILITIES" - T1588.006
	//   "ACTIVE_SCANNING" - T1595
	//   "SCANNING_IP_BLOCKS" - T1595.001
	//   "STAGE_CAPABILITIES" - T1608
	//   "UPLOAD_MALWARE" - T1608.001
	//   "CONTAINER_ADMINISTRATION_COMMAND" - T1609
	//   "DEPLOY_CONTAINER" - T1610
	//   "ESCAPE_TO_HOST" - T1611
	//   "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613
	//   "REFLECTIVE_CODE_LOADING" - T1620
	//   "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649
	//   "FINANCIAL_THEFT" - T1657
	PrimaryTechniques []string `json:"primaryTechniques,omitempty"`
	// Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8".
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalTactics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalTactics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2MuteConfig: A mute config is a Cloud SCC resource
// that contains the configuration to mute create/update events of findings.
type GoogleCloudSecuritycenterV2MuteConfig struct {
	// CreateTime: Output only. The time at which the mute config was created. This
	// field is set by the server and will be ignored if provided on config
	// creation.
	CreateTime string `json:"createTime,omitempty"`
	// CryptoKeyName: Output only. The resource name of the Cloud KMS `CryptoKey`
	// used to encrypt this configuration data, if CMEK was enabled during Security
	// Command Center activation.
	CryptoKeyName string `json:"cryptoKeyName,omitempty"`
	// Description: A description of the mute config.
	Description string `json:"description,omitempty"`
	// ExpiryTime: Optional. The expiry of the mute config. Only applicable for
	// dynamic configs. If the expiry is set, when the config expires, it is
	// removed from all findings.
	ExpiryTime string `json:"expiryTime,omitempty"`
	// Filter: Required. An expression that defines the filter to apply across
	// create/update events of findings. While creating a filter string, be mindful
	// of the scope in which the mute configuration is being created. E.g., If a
	// filter contains project = X but is created under the project = Y scope, it
	// might not match any findings. The following field and operator combinations
	// are supported: * severity: `=`, `:` * category: `=`, `:` * resource.name:
	// `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name:
	// `=`, `:` * resource.folders.resource_folder: `=`, `:` *
	// resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` *
	// resource.type: `=`, `:` * finding_class: `=`, `:` * indicator.ip_addresses:
	// `=`, `:` * indicator.domains: `=`, `:`
	Filter string `json:"filter,omitempty"`
	// MostRecentEditor: Output only. Email address of the user who last edited the
	// mute config. This field is set by the server and will be ignored if provided
	// on config creation or update.
	MostRecentEditor string `json:"mostRecentEditor,omitempty"`
	// Name: Identifier. This field will be ignored if provided on config creation.
	// The following list shows some examples of the format: +
	// `organizations/{organization}/muteConfigs/{mute_config}` +
	// `organizations/{organization}locations/{location}//muteConfigs/{mute_config}`
	//  + `folders/{folder}/muteConfigs/{mute_config}` +
	// `folders/{folder}/locations/{location}/muteConfigs/{mute_config}` +
	// `projects/{project}/muteConfigs/{mute_config}` +
	// `projects/{project}/locations/{location}/muteConfigs/{mute_config}`
	Name string `json:"name,omitempty"`
	// Type: Required. The type of the mute config, which determines what type of
	// mute state the config affects. Immutable after creation.
	//
	// Possible values:
	//   "MUTE_CONFIG_TYPE_UNSPECIFIED" - Unused.
	//   "STATIC" - A static mute config, which sets the static mute state of
	// future matching findings to muted. Once the static mute state has been set,
	// finding or config modifications will not affect the state.
	//   "DYNAMIC" - A dynamic mute config, which is applied to existing and future
	// matching findings, setting their dynamic mute state to "muted". If the
	// config is updated or deleted, or a matching finding is updated, such that
	// the finding doesn't match the config, the config will be removed from the
	// finding, and the finding's dynamic mute state may become "unmuted" (unless
	// other configs still match).
	Type string `json:"type,omitempty"`
	// UpdateTime: Output only. The most recent time at which the mute config was
	// updated. This field is set by the server and will be ignored if provided on
	// config creation or update.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2MuteInfo: Mute information about the finding,
// including whether the finding has a static mute or any matching dynamic mute
// rules.
type GoogleCloudSecuritycenterV2MuteInfo struct {
	// DynamicMuteRecords: The list of dynamic mute rules that currently match the
	// finding.
	DynamicMuteRecords []*GoogleCloudSecuritycenterV2DynamicMuteRecord `json:"dynamicMuteRecords,omitempty"`
	// StaticMute: If set, the static mute applied to this finding. Static mutes
	// override dynamic mutes. If unset, there is no static mute.
	StaticMute *GoogleCloudSecuritycenterV2StaticMute `json:"staticMute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DynamicMuteRecords") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DynamicMuteRecords") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Network: Contains information about a VPC network
// associated with the finding.
type GoogleCloudSecuritycenterV2Network struct {
	// Name: The name of the VPC network resource, for example,
	// `//compute.googleapis.com/projects/my-project/global/networks/my-network`.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Node: Kubernetes nodes associated with the
// finding.
type GoogleCloudSecuritycenterV2Node struct {
	// Name: Full resource name (https://google.aip.dev/122#full-resource-names) of
	// the Compute Engine VM running the cluster node.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2NodePool: Provides GKE node pool information.
type GoogleCloudSecuritycenterV2NodePool struct {
	// Name: Kubernetes node pool name.
	Name string `json:"name,omitempty"`
	// Nodes: Nodes associated with the finding.
	Nodes []*GoogleCloudSecuritycenterV2Node `json:"nodes,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 GoogleCloudSecuritycenterV2NodePool) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2NodePool
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2Notebook: Represents a Jupyter notebook IPYNB
// file, such as a Colab Enterprise notebook
// (https://cloud.google.com/colab/docs/introduction) file, that is associated
// with a finding.
type GoogleCloudSecuritycenterV2Notebook struct {
	// LastAuthor: The user ID of the latest author to modify the notebook.
	LastAuthor string `json:"lastAuthor,omitempty"`
	// Name: The name of the notebook.
	Name string `json:"name,omitempty"`
	// NotebookUpdateTime: The most recent time the notebook was updated.
	NotebookUpdateTime string `json:"notebookUpdateTime,omitempty"`
	// Service: The source notebook service, for example, "Colab Enterprise".
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LastAuthor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LastAuthor") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2NotificationMessage: Cloud SCC's Notification
type GoogleCloudSecuritycenterV2NotificationMessage struct {
	// Finding: If it's a Finding based notification config, this field will be
	// populated.
	Finding *GoogleCloudSecuritycenterV2Finding `json:"finding,omitempty"`
	// NotificationConfigName: Name of the notification config that generated
	// current notification.
	NotificationConfigName string `json:"notificationConfigName,omitempty"`
	// Resource: The Cloud resource tied to this notification's Finding.
	Resource *GoogleCloudSecuritycenterV2Resource `json:"resource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Finding") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Finding") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Object: Kubernetes object related to the finding,
// uniquely identified by GKNN. Used if the object Kind is not one of Pod,
// Node, NodePool, Binding, or AccessReview.
type GoogleCloudSecuritycenterV2Object struct {
	// Containers: Pod containers associated with this finding, if any.
	Containers []*GoogleCloudSecuritycenterV2Container `json:"containers,omitempty"`
	// Group: Kubernetes object group, such as "policy.k8s.io/v1".
	Group string `json:"group,omitempty"`
	// Kind: Kubernetes object kind, such as "Namespace".
	Kind string `json:"kind,omitempty"`
	// Name: Kubernetes object name. For details see
	// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.
	Name string `json:"name,omitempty"`
	// Ns: Kubernetes object namespace. Must be a valid DNS label. Named "ns" to
	// avoid collision with C++ namespace keyword. For details see
	// https://kubernetes.io/docs/tasks/administer-cluster/namespaces/.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Containers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Containers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2OrgPolicy: Contains information about the org
// policies associated with the finding.
type GoogleCloudSecuritycenterV2OrgPolicy struct {
	// Name: Identifier. The resource name of the org policy. Example:
	// "organizations/{organization_id}/policies/{constraint_name}"
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Package: Package is a generic definition of a
// package.
type GoogleCloudSecuritycenterV2Package struct {
	// CpeUri: The CPE URI where the vulnerability was detected.
	CpeUri string `json:"cpeUri,omitempty"`
	// PackageName: The name of the package where the vulnerability was detected.
	PackageName string `json:"packageName,omitempty"`
	// PackageType: Type of package, for example, os, maven, or go.
	PackageType string `json:"packageType,omitempty"`
	// PackageVersion: The version of the package.
	PackageVersion string `json:"packageVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpeUri") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpeUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Pipeline: Vertex AI training pipeline associated
// with the finding.
type GoogleCloudSecuritycenterV2Pipeline struct {
	// DisplayName: The user-defined display name of pipeline, e.g.
	// plants-classification
	DisplayName string `json:"displayName,omitempty"`
	// Name: Resource name of the pipeline, e.g.
	// projects/{project}/locations/{location}/trainingPipelines/5253428229225578496
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Pod: A Kubernetes Pod.
type GoogleCloudSecuritycenterV2Pod struct {
	// Containers: Pod containers associated with this finding, if any.
	Containers []*GoogleCloudSecuritycenterV2Container `json:"containers,omitempty"`
	// Labels: Pod labels. For Kubernetes containers, these are applied to the
	// container.
	Labels []*GoogleCloudSecuritycenterV2Label `json:"labels,omitempty"`
	// Name: Kubernetes Pod name.
	Name string `json:"name,omitempty"`
	// Ns: Kubernetes Pod namespace.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Containers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Containers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2PolicyDriftDetails: The policy field that
// violates the deployed posture and its expected and detected values.
type GoogleCloudSecuritycenterV2PolicyDriftDetails struct {
	// DetectedValue: The detected value that violates the deployed posture, for
	// example, `false` or `allowed_values={"projects/22831892"}`.
	DetectedValue string `json:"detectedValue,omitempty"`
	// ExpectedValue: The value of this field that was configured in a posture, for
	// example, `true` or `allowed_values={"projects/29831892"}`.
	ExpectedValue string `json:"expectedValue,omitempty"`
	// Field: The name of the updated field, for example
	// constraint.implementation.policy_rules[0].enforce
	Field string `json:"field,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DetectedValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DetectedValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2PortRange: A port range which is inclusive of the
// min and max values. Values are between 0 and 2^16-1. The max can be equal /
// must be not smaller than the min value. If min and max are equal this
// indicates that it is a single port.
type GoogleCloudSecuritycenterV2PortRange struct {
	// Max: Maximum port value.
	Max int64 `json:"max,omitempty,string"`
	// Min: Minimum port value.
	Min int64 `json:"min,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Max") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Max") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Process: Represents an operating system process.
type GoogleCloudSecuritycenterV2Process struct {
	// Args: Process arguments as JSON encoded strings.
	Args []string `json:"args,omitempty"`
	// ArgumentsTruncated: True if `args` is incomplete.
	ArgumentsTruncated bool `json:"argumentsTruncated,omitempty"`
	// Binary: File information for the process executable.
	Binary *GoogleCloudSecuritycenterV2File `json:"binary,omitempty"`
	// EnvVariables: Process environment variables.
	EnvVariables []*GoogleCloudSecuritycenterV2EnvironmentVariable `json:"envVariables,omitempty"`
	// EnvVariablesTruncated: True if `env_variables` is incomplete.
	EnvVariablesTruncated bool `json:"envVariablesTruncated,omitempty"`
	// Libraries: File information for libraries loaded by the process.
	Libraries []*GoogleCloudSecuritycenterV2File `json:"libraries,omitempty"`
	// Name: The process name, as displayed in utilities like `top` and `ps`. This
	// name can be accessed through `/proc/[pid]/comm` and changed with
	// `prctl(PR_SET_NAME)`.
	Name string `json:"name,omitempty"`
	// ParentPid: The parent process ID.
	ParentPid int64 `json:"parentPid,omitempty,string"`
	// Pid: The process ID.
	Pid int64 `json:"pid,omitempty,string"`
	// Script: When the process represents the invocation of a script, `binary`
	// provides information about the interpreter, while `script` provides
	// information about the script file provided to the interpreter.
	Script *GoogleCloudSecuritycenterV2File `json:"script,omitempty"`
	// UserId: The ID of the user that executed the process. E.g. If this is the
	// root user this will always be 0.
	UserId int64 `json:"userId,omitempty,string"`
	// 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 GoogleCloudSecuritycenterV2Process) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2Process
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2ProcessSignature: Indicates what signature
// matched this process.
type GoogleCloudSecuritycenterV2ProcessSignature struct {
	// MemoryHashSignature: Signature indicating that a binary family was matched.
	MemoryHashSignature *GoogleCloudSecuritycenterV2MemoryHashSignature `json:"memoryHashSignature,omitempty"`
	// SignatureType: Describes the type of resource associated with the signature.
	//
	// Possible values:
	//   "SIGNATURE_TYPE_UNSPECIFIED" - The default signature type.
	//   "SIGNATURE_TYPE_PROCESS" - Used for signatures concerning processes.
	//   "SIGNATURE_TYPE_FILE" - Used for signatures concerning disks.
	SignatureType string `json:"signatureType,omitempty"`
	// YaraRuleSignature: Signature indicating that a YARA rule was matched.
	YaraRuleSignature *GoogleCloudSecuritycenterV2YaraRuleSignature `json:"yaraRuleSignature,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MemoryHashSignature") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MemoryHashSignature") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Reference: Additional Links
type GoogleCloudSecuritycenterV2Reference struct {
	// Source: Source of the reference e.g. NVD
	Source string `json:"source,omitempty"`
	// Uri: Uri for the mentioned source e.g.
	// https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Source") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Source") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Requests: Information about the requests relevant
// to the finding.
type GoogleCloudSecuritycenterV2Requests struct {
	// LongTermAllowed: Allowed RPS (requests per second) over the long term.
	LongTermAllowed int64 `json:"longTermAllowed,omitempty"`
	// LongTermDenied: Denied RPS (requests per second) over the long term.
	LongTermDenied int64 `json:"longTermDenied,omitempty"`
	// Ratio: For 'Increasing deny ratio', the ratio is the denied traffic divided
	// by the allowed traffic. For 'Allowed traffic spike', the ratio is the
	// allowed traffic in the short term divided by allowed traffic in the long
	// term.
	Ratio float64 `json:"ratio,omitempty"`
	// ShortTermAllowed: Allowed RPS (requests per second) in the short term.
	ShortTermAllowed int64 `json:"shortTermAllowed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LongTermAllowed") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LongTermAllowed") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudSecuritycenterV2Resource: Information related to the Google Cloud
// resource.
type GoogleCloudSecuritycenterV2Resource struct {
	// AwsMetadata: The AWS metadata associated with the finding.
	AwsMetadata *GoogleCloudSecuritycenterV2AwsMetadata `json:"awsMetadata,omitempty"`
	// AzureMetadata: The Azure metadata associated with the finding.
	AzureMetadata *GoogleCloudSecuritycenterV2AzureMetadata `json:"azureMetadata,omitempty"`
	// CloudProvider: Indicates which cloud provider the finding is from.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - The cloud provider is unspecified.
	//   "GOOGLE_CLOUD_PLATFORM" - The cloud provider is Google Cloud.
	//   "AMAZON_WEB_SERVICES" - The cloud provider is Amazon Web Services.
	//   "MICROSOFT_AZURE" - The cloud provider is Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// DisplayName: The human readable name of the resource.
	DisplayName string `json:"displayName,omitempty"`
	// GcpMetadata: The Google Cloud metadata associated with the finding.
	GcpMetadata *GcpMetadata `json:"gcpMetadata,omitempty"`
	// Location: The region or location of the service (if applicable).
	Location string `json:"location,omitempty"`
	// Name: The full resource name of the resource. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	Name string `json:"name,omitempty"`
	// ResourcePath: Provides the path to the resource within the resource
	// hierarchy.
	ResourcePath *GoogleCloudSecuritycenterV2ResourcePath `json:"resourcePath,omitempty"`
	// ResourcePathString: A string representation of the resource path. For Google
	// Cloud, it has the format of
	// `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/proj
	// ects/{project_id}` where there can be any number of folders. For AWS, it has
	// the format of
	// `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id
	// }/account/{account_id}` where there can be any number of organizational
	// units. For Azure, it has the format of
	// `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription
	// _id}/rg/{resource_group_name}` where there can be any number of management
	// groups.
	ResourcePathString string `json:"resourcePathString,omitempty"`
	// Service: The service or resource provider associated with the resource.
	Service string `json:"service,omitempty"`
	// Type: The full resource type of the resource.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AwsMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AwsMetadata") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2ResourcePath: Represents the path of resources
// leading up to the resource this finding is about.
type GoogleCloudSecuritycenterV2ResourcePath struct {
	// Nodes: The list of nodes that make the up resource path, ordered from lowest
	// level to highest level.
	Nodes []*GoogleCloudSecuritycenterV2ResourcePathNode `json:"nodes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Nodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2ResourcePathNode: A node within the resource
// path. Each node represents a resource within the resource hierarchy.
type GoogleCloudSecuritycenterV2ResourcePathNode struct {
	// DisplayName: The display name of the resource this node represents.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The ID of the resource this node represents.
	Id string `json:"id,omitempty"`
	// NodeType: The type of resource this node represents.
	//
	// Possible values:
	//   "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED" - Node type is unspecified.
	//   "GCP_ORGANIZATION" - The node represents a Google Cloud organization.
	//   "GCP_FOLDER" - The node represents a Google Cloud folder.
	//   "GCP_PROJECT" - The node represents a Google Cloud project.
	//   "AWS_ORGANIZATION" - The node represents an AWS organization.
	//   "AWS_ORGANIZATIONAL_UNIT" - The node represents an AWS organizational
	// unit.
	//   "AWS_ACCOUNT" - The node represents an AWS account.
	//   "AZURE_MANAGEMENT_GROUP" - The node represents an Azure management group.
	//   "AZURE_SUBSCRIPTION" - The node represents an Azure subscription.
	//   "AZURE_RESOURCE_GROUP" - The node represents an Azure resource group.
	NodeType string `json:"nodeType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2ResourceValueConfig: A resource value
// configuration (RVC) is a mapping configuration of user's resources to
// resource values. Used in Attack path simulations.
type GoogleCloudSecuritycenterV2ResourceValueConfig struct {
	// CloudProvider: Cloud provider this configuration applies to
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - The cloud provider is unspecified.
	//   "GOOGLE_CLOUD_PLATFORM" - The cloud provider is Google Cloud.
	//   "AMAZON_WEB_SERVICES" - The cloud provider is Amazon Web Services.
	//   "MICROSOFT_AZURE" - The cloud provider is Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// CreateTime: Output only. Timestamp this resource value configuration was
	// created.
	CreateTime string `json:"createTime,omitempty"`
	// Description: Description of the resource value configuration.
	Description string `json:"description,omitempty"`
	// Name: Identifier. Name for the resource value configuration
	Name string `json:"name,omitempty"`
	// ResourceLabelsSelector: List of resource labels to search for, evaluated
	// with `AND`. For example, "resource_labels_selector": {"key": "value", "env":
	// "prod"} will match resources with labels "key": "value" `AND` "env": "prod"
	// https://cloud.google.com/resource-manager/docs/creating-managing-labels
	ResourceLabelsSelector map[string]string `json:"resourceLabelsSelector,omitempty"`
	// ResourceType: Apply resource_value only to resources that match
	// resource_type. resource_type will be checked with `AND` of other resources.
	// For example, "storage.googleapis.com/Bucket" with resource_value "HIGH" will
	// apply "HIGH" value only to "storage.googleapis.com/Bucket" resources.
	ResourceType string `json:"resourceType,omitempty"`
	// ResourceValue: Resource value level this expression represents Only required
	// when there is no Sensitive Data Protection mapping in the request
	//
	// Possible values:
	//   "RESOURCE_VALUE_UNSPECIFIED" - Unspecific value
	//   "HIGH" - High resource value
	//   "MEDIUM" - Medium resource value
	//   "LOW" - Low resource value
	//   "NONE" - No resource value, e.g. ignore these resources
	ResourceValue string `json:"resourceValue,omitempty"`
	// Scope: Project or folder to scope this configuration to. For example,
	// "project/456" would apply this configuration only to resources in
	// "project/456" scope and will be checked with `AND` of other resources.
	Scope string `json:"scope,omitempty"`
	// SensitiveDataProtectionMapping: A mapping of the sensitivity on Sensitive
	// Data Protection finding to resource values. This mapping can only be used in
	// combination with a resource_type that is related to BigQuery, e.g.
	// "bigquery.googleapis.com/Dataset".
	SensitiveDataProtectionMapping *GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping `json:"sensitiveDataProtectionMapping,omitempty"`
	// TagValues: Tag values combined with `AND` to check against. For Google Cloud
	// resources, they are tag value IDs in the form of "tagValues/123". Example:
	// `[ "tagValues/123", "tagValues/456", "tagValues/789" ]`
	// https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
	TagValues []string `json:"tagValues,omitempty"`
	// UpdateTime: Output only. Timestamp this resource value configuration was
	// last updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudProvider") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudProvider") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Role: Kubernetes Role or ClusterRole.
type GoogleCloudSecuritycenterV2Role struct {
	// Kind: Role type.
	//
	// Possible values:
	//   "KIND_UNSPECIFIED" - Role type is not specified.
	//   "ROLE" - Kubernetes Role.
	//   "CLUSTER_ROLE" - Kubernetes ClusterRole.
	Kind string `json:"kind,omitempty"`
	// Name: Role name.
	Name string `json:"name,omitempty"`
	// Ns: Role namespace.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2SecurityBulletin: SecurityBulletin are
// notifications of vulnerabilities of Google products.
type GoogleCloudSecuritycenterV2SecurityBulletin struct {
	// BulletinId: ID of the bulletin corresponding to the vulnerability.
	BulletinId string `json:"bulletinId,omitempty"`
	// SubmissionTime: Submission time of this Security Bulletin.
	SubmissionTime string `json:"submissionTime,omitempty"`
	// SuggestedUpgradeVersion: This represents a version that the cluster
	// receiving this notification should be upgraded to, based on its current
	// version. For example, 1.15.0
	SuggestedUpgradeVersion string `json:"suggestedUpgradeVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BulletinId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BulletinId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2SecurityMarks: User specified security marks that
// are attached to the parent Security Command Center resource. Security marks
// are scoped within a Security Command Center organization -- they can be
// modified and viewed by all users who have proper permissions on the
// organization.
type GoogleCloudSecuritycenterV2SecurityMarks struct {
	// CanonicalName: The canonical name of the marks. The following list shows
	// some examples: +
	// `organizations/{organization_id}/assets/{asset_id}/securityMarks` +
	// `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/se
	// curityMarks` +
	// `organizations/{organization_id}/sources/{source_id}/locations/{location}/fin
	// dings/{finding_id}/securityMarks` +
	// `folders/{folder_id}/assets/{asset_id}/securityMarks` +
	// `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks`
	//  +
	// `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{findi
	// ng_id}/securityMarks` +
	// `projects/{project_number}/assets/{asset_id}/securityMarks` +
	// `projects/{project_number}/sources/{source_id}/findings/{finding_id}/security
	// Marks` +
	// `projects/{project_number}/sources/{source_id}/locations/{location}/findings/
	// {finding_id}/securityMarks`
	CanonicalName string `json:"canonicalName,omitempty"`
	// Marks: Mutable user specified security marks belonging to the parent
	// resource. Constraints are as follows: * Keys and values are treated as case
	// insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys
	// must be letters, numbers, underscores, or dashes * Values have leading and
	// trailing whitespace trimmed, remaining characters must be between 1 - 4096
	// characters (inclusive)
	Marks map[string]string `json:"marks,omitempty"`
	// Name: The relative resource name of the SecurityMarks. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// The following list shows some examples: +
	// `organizations/{organization_id}/assets/{asset_id}/securityMarks` +
	// `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/se
	// curityMarks` +
	// `organizations/{organization_id}/sources/{source_id}/locations/{location}/fin
	// dings/{finding_id}/securityMarks`
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2SecurityPolicy: Information about the Google
// Cloud Armor security policy
// (https://cloud.google.com/armor/docs/security-policy-overview) relevant to
// the finding.
type GoogleCloudSecuritycenterV2SecurityPolicy struct {
	// Name: The name of the Google Cloud Armor security policy, for example,
	// "my-security-policy".
	Name string `json:"name,omitempty"`
	// Preview: Whether or not the associated rule or policy is in preview mode.
	Preview bool `json:"preview,omitempty"`
	// Type: The type of Google Cloud Armor security policy for example, 'backend
	// security policy', 'edge security policy', 'network edge security policy', or
	// 'always-on DDoS protection'.
	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 GoogleCloudSecuritycenterV2SecurityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudSecuritycenterV2SecurityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudSecuritycenterV2SecurityPosture: Represents a posture that is
// deployed on Google Cloud by the Security Command Center Posture Management
// service. A posture contains one or more policy sets. A policy set is a group
// of policies that enforce a set of security rules on Google Cloud.
type GoogleCloudSecuritycenterV2SecurityPosture struct {
	// ChangedPolicy: The name of the updated policy, for example,
	// `projects/{project_id}/policies/{constraint_name}`.
	ChangedPolicy string `json:"changedPolicy,omitempty"`
	// Name: Name of the posture, for example, `CIS-Posture`.
	Name string `json:"name,omitempty"`
	// Policy: The ID of the updated policy, for example, `compute-policy-1`.
	Policy string `json:"policy,omitempty"`
	// PolicyDriftDetails: The details about a change in an updated policy that
	// violates the deployed posture.
	PolicyDriftDetails []*GoogleCloudSecuritycenterV2PolicyDriftDetails `json:"policyDriftDetails,omitempty"`
	// PolicySet: The name of the updated policy set, for example, `cis-policyset`.
	PolicySet string `json:"policySet,omitempty"`
	// PostureDeployment: The name of the posture deployment, for example,
	// `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.
	PostureDeployment string `json:"postureDeployment,omitempty"`
	// PostureDeploymentResource: The project, folder, or organization on which the
	// posture is deployed, for example, `projects/{project_number}`.
	PostureDeploymentResource string `json:"postureDeploymentResource,omitempty"`
	// RevisionId: The version of the posture, for example, `c7cfa2a8`.
	RevisionId string `json:"revisionId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChangedPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChangedPolicy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping: Resource value
// mapping for Sensitive Data Protection findings If any of these mappings have
// a resource value that is not unspecified, the resource_value field will be
// ignored when reading this configuration.
type GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping struct {
	// HighSensitivityMapping: Resource value mapping for high-sensitivity
	// Sensitive Data Protection findings
	//
	// Possible values:
	//   "RESOURCE_VALUE_UNSPECIFIED" - Unspecific value
	//   "HIGH" - High resource value
	//   "MEDIUM" - Medium resource value
	//   "LOW" - Low resource value
	//   "NONE" - No resource value, e.g. ignore these resources
	HighSensitivityMapping string `json:"highSensitivityMapping,omitempty"`
	// MediumSensitivityMapping: Resource value mapping for medium-sensitivity
	// Sensitive Data Protection findings
	//
	// Possible values:
	//   "RESOURCE_VALUE_UNSPECIFIED" - Unspecific value
	//   "HIGH" - High resource value
	//   "MEDIUM" - Medium resource value
	//   "LOW" - Low resource value
	//   "NONE" - No resource value, e.g. ignore these resources
	MediumSensitivityMapping string `json:"mediumSensitivityMapping,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HighSensitivityMapping") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HighSensitivityMapping") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2SensitivityScore: Score is calculated from of all
// elements in the data profile. A higher level means the data is more
// sensitive.
type GoogleCloudSecuritycenterV2SensitivityScore struct {
	// Score: The sensitivity score applied to the resource.
	//
	// Possible values:
	//   "SENSITIVITY_SCORE_LEVEL_UNSPECIFIED" - Unused.
	//   "SENSITIVITY_LOW" - No sensitive information detected. The resource isn't
	// publicly accessible.
	//   "SENSITIVITY_UNKNOWN" - Unable to determine sensitivity.
	//   "SENSITIVITY_MODERATE" - Medium risk. Contains personally identifiable
	// information (PII), potentially sensitive data, or fields with free-text data
	// that are at a higher risk of having intermittent sensitive data. Consider
	// limiting access.
	//   "SENSITIVITY_HIGH" - High risk. Sensitive personally identifiable
	// information (SPII) can be present. Exfiltration of data can lead to user
	// data loss. Re-identification of users might be possible. Consider limiting
	// usage and or removing SPII.
	Score string `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Score") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Score") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo: Identity delegation
// history of an authenticated service account.
type GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo struct {
	// PrincipalEmail: The email address of a Google account.
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// PrincipalSubject: A string representing the principal_subject associated
	// with the identity. As compared to `principal_email`, supports principals
	// that aren't associated with email addresses, such as third party principals.
	// For most identities, the format will be
	// `principal://iam.googleapis.com/{identity pool name}/subjects/{subject}`
	// except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD)
	// that are still in the legacy format `serviceAccount:{identity pool
	// name}[{subject}]`
	PrincipalSubject string `json:"principalSubject,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PrincipalEmail") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PrincipalEmail") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2StaticMute: Information about the static mute
// state. A static mute state overrides any dynamic mute rules that apply to
// this finding. The static mute state can be set by a static mute rule or by
// muting the finding directly.
type GoogleCloudSecuritycenterV2StaticMute struct {
	// ApplyTime: When the static mute was applied.
	ApplyTime string `json:"applyTime,omitempty"`
	// State: The static mute state. If the value is `MUTED` or `UNMUTED`, then the
	// finding's overall mute state will have the same value.
	//
	// Possible values:
	//   "MUTE_UNSPECIFIED" - Unspecified.
	//   "MUTED" - Finding has been muted.
	//   "UNMUTED" - Finding has been unmuted.
	//   "UNDEFINED" - Finding has never been muted/unmuted.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplyTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplyTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Subject: Represents a Kubernetes subject.
type GoogleCloudSecuritycenterV2Subject struct {
	// Kind: Authentication type for the subject.
	//
	// Possible values:
	//   "AUTH_TYPE_UNSPECIFIED" - Authentication is not specified.
	//   "USER" - User with valid certificate.
	//   "SERVICEACCOUNT" - Users managed by Kubernetes API with credentials stored
	// as secrets.
	//   "GROUP" - Collection of users.
	Kind string `json:"kind,omitempty"`
	// Name: Name for the subject.
	Name string `json:"name,omitempty"`
	// Ns: Namespace for the subject.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2TicketInfo: Information about the ticket, if any,
// that is being used to track the resolution of the issue that is identified
// by this finding.
type GoogleCloudSecuritycenterV2TicketInfo struct {
	// Assignee: The assignee of the ticket in the ticket system.
	Assignee string `json:"assignee,omitempty"`
	// Description: The description of the ticket in the ticket system.
	Description string `json:"description,omitempty"`
	// Id: The identifier of the ticket in the ticket system.
	Id string `json:"id,omitempty"`
	// Status: The latest status of the ticket, as reported by the ticket system.
	Status string `json:"status,omitempty"`
	// UpdateTime: The time when the ticket was last updated, as reported by the
	// ticket system.
	UpdateTime string `json:"updateTime,omitempty"`
	// Uri: The link to the ticket in the ticket system.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Assignee") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Assignee") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2ToxicCombination: Contains details about a group
// of security issues that, when the issues occur together, represent a greater
// risk than when the issues occur independently. A group of such issues is
// referred to as a toxic combination.
type GoogleCloudSecuritycenterV2ToxicCombination struct {
	// AttackExposureScore: The Attack exposure score
	// (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores)
	// of this toxic combination. The score is a measure of how much this toxic
	// combination exposes one or more high-value resources to potential attack.
	AttackExposureScore float64 `json:"attackExposureScore,omitempty"`
	// RelatedFindings: List of resource names of findings associated with this
	// toxic combination. For example,
	// `organizations/123/sources/456/findings/789`.
	RelatedFindings []string `json:"relatedFindings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttackExposureScore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttackExposureScore") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudSecuritycenterV2VertexAi: Vertex AI-related information
// associated with the finding.
type GoogleCloudSecuritycenterV2VertexAi struct {
	// Datasets: Datasets associated with the finding.
	Datasets []*GoogleCloudSecuritycenterV2Dataset `json:"datasets,omitempty"`
	// Pipelines: Pipelines associated with the finding.
	Pipelines []*GoogleCloudSecuritycenterV2Pipeline `json:"pipelines,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Datasets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Datasets") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudSecuritycenterV2Vulnerability: Refers to common vulnerability
// fields e.g. cve, cvss, cwe etc.
type GoogleCloudSecuritycenterV2Vulnerability struct {
	// Cve: CVE stands for Common Vulnerabilities and Exposures
	// (https://cve.mitre.org/about/)
	Cve *GoogleCloudSecuritycenterV2Cve `json:"cve,omitempty"`
	// Cwes: Represents one or more Common Weakness Enumeration (CWE) information
	// on this vulnerability.
	Cwes []*GoogleCloudSecuritycenterV2Cwe `json:"cwes,omitempty"`
	// FixedPackage: The fixed package is relevant to the finding.
	FixedPackage *GoogleCloudSecuritycenterV2Package `json:"fixedPackage,omitempty"`
	// OffendingPackage: The offending package is relevant to the finding.
	OffendingPackage *GoogleCloudSecuritycenterV2Package `json:"offendingPackage,omitempty"`
	// ProviderRiskScore: Provider provided risk_score based on multiple factors.
	// The higher the risk score, the more risky the vulnerability is.
	ProviderRiskScore int64 `json:"providerRiskScore,omitempty,string"`
	// Reachable: Represents whether the vulnerability is reachable (detected via
	// static analysis)
	Reachable bool `json:"reachable,omitempty"`
	// SecurityBulletin: The security bulletin is relevant to this finding.
	SecurityBulletin *GoogleCloudSecuritycenterV2SecurityBulletin `json:"securityBulletin,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cve") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cve") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GroupAssetsRequest: Request message for grouping by assets.
type GroupAssetsRequest struct {
	// CompareDuration: When compare_duration is set, the GroupResult's
	// "state_change" property is updated to indicate whether the asset was added,
	// removed, or remained present during the compare_duration period of time that
	// precedes the read_time. This is the time between (read_time -
	// compare_duration) and read_time. The state change value is derived based on
	// the presence of the asset at the two points in time. Intermediate state
	// changes between the two times don't affect the result. For example, the
	// results aren't affected if the asset is removed and re-created again.
	// Possible "state_change" values when compare_duration is specified: *
	// "ADDED": indicates that the asset was not present at the start of
	// compare_duration, but present at reference_time. * "REMOVED": indicates that
	// the asset was present at the start of compare_duration, but not present at
	// reference_time. * "ACTIVE": indicates that the asset was present at both the
	// start and the end of the time period defined by compare_duration and
	// reference_time. If compare_duration is not specified, then the only possible
	// state_change is "UNUSED", which will be the state_change set for all assets
	// present at read_time. If this field is set then `state_change` must be a
	// specified field in `group_by`.
	CompareDuration string `json:"compareDuration,omitempty"`
	// Filter: Expression that defines the filter to apply across assets. The
	// expression is a list of zero or more restrictions combined via logical
	// operators `AND` and `OR`. Parentheses are supported, and `OR` has higher
	// precedence than `AND`. Restrictions have the form ` ` and may have a `-`
	// character in front of them to indicate negation. The fields map to those
	// defined in the Asset resource. Examples include: * name *
	// security_center_properties.resource_name * resource_properties.a_property *
	// security_marks.marks.marka The supported operators are: * `=` for all value
	// types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring
	// matching, for strings. The supported value types are: * string literals in
	// quotes. * integer literals without quotes. * boolean literals `true` and
	// `false` without quotes. The following field and operator combinations are
	// supported: * name: `=` * update_time: `=`, `>`, `<`, `>=`, `<=` Usage: This
	// should be milliseconds since epoch or an RFC3339 string. Examples:
	// `update_time = "2019-06-10T16:07:18-07:00" `update_time = 1560208038000` *
	// create_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds
	// since epoch or an RFC3339 string. Examples: `create_time =
	// "2019-06-10T16:07:18-07:00" `create_time = 1560208038000` *
	// iam_policy.policy_blob: `=`, `:` * resource_properties: `=`, `:`, `>`, `<`,
	// `>=`, `<=` * security_marks.marks: `=`, `:` *
	// security_center_properties.resource_name: `=`, `:` *
	// security_center_properties.resource_display_name: `=`, `:` *
	// security_center_properties.resource_type: `=`, `:` *
	// security_center_properties.resource_parent: `=`, `:` *
	// security_center_properties.resource_parent_display_name: `=`, `:` *
	// security_center_properties.resource_project: `=`, `:` *
	// security_center_properties.resource_project_display_name: `=`, `:` *
	// security_center_properties.resource_owners: `=`, `:` For example,
	// `resource_properties.size = 100` is a valid filter string. Use a partial
	// match on the empty string to filter based on a property existing:
	// `resource_properties.my_property : "" Use a negated partial match on the
	// empty string to filter based on a property not existing:
	// `-resource_properties.my_property : ""
	Filter string `json:"filter,omitempty"`
	// GroupBy: Required. Expression that defines what assets fields to use for
	// grouping. The string value should follow SQL syntax: comma separated list of
	// fields. For example:
	// "security_center_properties.resource_project,security_center_properties.proje
	// ct". The following fields are supported when compare_duration is not set: *
	// security_center_properties.resource_project *
	// security_center_properties.resource_project_display_name *
	// security_center_properties.resource_type *
	// security_center_properties.resource_parent *
	// security_center_properties.resource_parent_display_name The following fields
	// are supported when compare_duration is set: *
	// security_center_properties.resource_type *
	// security_center_properties.resource_project_display_name *
	// security_center_properties.resource_parent_display_name
	GroupBy string `json:"groupBy,omitempty"`
	// PageSize: The maximum number of results to return in a single response.
	// Default is 10, minimum is 1, maximum is 1000.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: The value returned by the last `GroupAssetsResponse`; indicates
	// that this is a continuation of a prior `GroupAssets` call, and that the
	// system should return the next page of data.
	PageToken string `json:"pageToken,omitempty"`
	// ReadTime: Time used as a reference point when filtering assets. The filter
	// is limited to assets existing at the supplied time and their values are
	// those at that specific time. Absence of this field will default to the API's
	// version of NOW.
	ReadTime string `json:"readTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompareDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompareDuration") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GroupAssetsResponse: Response message for grouping by assets.
type GroupAssetsResponse struct {
	// GroupByResults: Group results. There exists an element for each existing
	// unique combination of property/values. The element contains a count for the
	// number of times those specific property/values appear.
	GroupByResults []*GroupResult `json:"groupByResults,omitempty"`
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ReadTime: Time used for executing the groupBy request.
	ReadTime string `json:"readTime,omitempty"`
	// TotalSize: The total number of results matching the query.
	TotalSize int64 `json:"totalSize,omitempty"`

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

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

// GroupFindingsRequest: Request message for grouping by findings.
type GroupFindingsRequest struct {
	// CompareDuration: When compare_duration is set, the GroupResult's
	// "state_change" attribute is updated to indicate whether the finding had its
	// state changed, the finding's state remained unchanged, or if the finding was
	// added during the compare_duration period of time that precedes the
	// read_time. This is the time between (read_time - compare_duration) and
	// read_time. The state_change value is derived based on the presence and state
	// of the finding at the two points in time. Intermediate state changes between
	// the two times don't affect the result. For example, the results aren't
	// affected if the finding is made inactive and then active again. Possible
	// "state_change" values when compare_duration is specified: * "CHANGED":
	// indicates that the finding was present and matched the given filter at the
	// start of compare_duration, but changed its state at read_time. *
	// "UNCHANGED": indicates that the finding was present and matched the given
	// filter at the start of compare_duration and did not change state at
	// read_time. * "ADDED": indicates that the finding did not match the given
	// filter or was not present at the start of compare_duration, but was present
	// at read_time. * "REMOVED": indicates that the finding was present and
	// matched the filter at the start of compare_duration, but did not match the
	// filter at read_time. If compare_duration is not specified, then the only
	// possible state_change is "UNUSED", which will be the state_change set for
	// all findings present at read_time. If this field is set then `state_change`
	// must be a specified field in `group_by`.
	CompareDuration string `json:"compareDuration,omitempty"`
	// Filter: Expression that defines the filter to apply across findings. The
	// expression is a list of one or more restrictions combined via logical
	// operators `AND` and `OR`. Parentheses are supported, and `OR` has higher
	// precedence than `AND`. Restrictions have the form ` ` and may have a `-`
	// character in front of them to indicate negation. Examples include: * name *
	// source_properties.a_property * security_marks.marks.marka The supported
	// operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer
	// values. * `:`, meaning substring matching, for strings. The supported value
	// types are: * string literals in quotes. * integer literals without quotes. *
	// boolean literals `true` and `false` without quotes. The following field and
	// operator combinations are supported: * name: `=` * parent: `=`, `:` *
	// resource_name: `=`, `:` * state: `=`, `:` * category: `=`, `:` *
	// external_uri: `=`, `:` * event_time: `=`, `>`, `<`, `>=`, `<=` Usage: This
	// should be milliseconds since epoch or an RFC3339 string. Examples:
	// `event_time = "2019-06-10T16:07:18-07:00" `event_time = 1560208038000` *
	// severity: `=`, `:` * workflow_state: `=`, `:` * security_marks.marks: `=`,
	// `:` * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=` For example,
	// `source_properties.size = 100` is a valid filter string. Use a partial match
	// on the empty string to filter based on a property existing:
	// `source_properties.my_property : "" Use a negated partial match on the
	// empty string to filter based on a property not existing:
	// `-source_properties.my_property : "" * resource: * resource.name: `=`, `:`
	// * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` *
	// resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` *
	// resource.type: `=`, `:`
	Filter string `json:"filter,omitempty"`
	// GroupBy: Required. Expression that defines what assets fields to use for
	// grouping (including `state_change`). The string value should follow SQL
	// syntax: comma separated list of fields. For example: "parent,resource_name".
	// The following fields are supported when compare_duration is set: *
	// state_change
	GroupBy string `json:"groupBy,omitempty"`
	// PageSize: The maximum number of results to return in a single response.
	// Default is 10, minimum is 1, maximum is 1000.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: The value returned by the last `GroupFindingsResponse`; indicates
	// that this is a continuation of a prior `GroupFindings` call, and that the
	// system should return the next page of data.
	PageToken string `json:"pageToken,omitempty"`
	// ReadTime: Time used as a reference point when filtering findings. The filter
	// is limited to findings existing at the supplied time and their values are
	// those at that specific time. Absence of this field will default to the API's
	// version of NOW.
	ReadTime string `json:"readTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompareDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompareDuration") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GroupFindingsResponse: Response message for group by findings.
type GroupFindingsResponse struct {
	// GroupByResults: Group results. There exists an element for each existing
	// unique combination of property/values. The element contains a count for the
	// number of times those specific property/values appear.
	GroupByResults []*GroupResult `json:"groupByResults,omitempty"`
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ReadTime: Time used for executing the groupBy request.
	ReadTime string `json:"readTime,omitempty"`
	// TotalSize: The total number of results matching the query.
	TotalSize int64 `json:"totalSize,omitempty"`

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

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

// GroupMembership: Contains details about groups of which this finding is a
// member. A group is a collection of findings that are related in some way.
type GroupMembership struct {
	// GroupId: ID of the group.
	GroupId string `json:"groupId,omitempty"`
	// GroupType: Type of group.
	//
	// Possible values:
	//   "GROUP_TYPE_UNSPECIFIED" - Default value.
	//   "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination.
	//   "GROUP_TYPE_CHOKEPOINT" - Group represents a chokepoint.
	GroupType string `json:"groupType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GroupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GroupResult: Result containing the properties and count of a groupBy
// request.
type GroupResult struct {
	// Count: Total count of resources for the given properties.
	Count int64 `json:"count,omitempty,string"`
	// Properties: Properties matching the groupBy fields in the request.
	Properties googleapi.RawMessage `json:"properties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// IamBinding: Represents a particular IAM binding, which captures a member's
// role addition, removal, or state.
type IamBinding struct {
	// Action: The action that was performed on a Binding.
	//
	// Possible values:
	//   "ACTION_UNSPECIFIED" - Unspecified.
	//   "ADD" - Addition of a Binding.
	//   "REMOVE" - Removal of a Binding.
	Action string `json:"action,omitempty"`
	// Member: A single identity requesting access for a Cloud Platform resource,
	// for example, "foo@google.com".
	Member string `json:"member,omitempty"`
	// Role: Role that is assigned to "members". For example, "roles/viewer",
	// "roles/editor", or "roles/owner".
	Role string `json:"role,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// IamPolicy: Cloud IAM Policy information associated with the Google Cloud
// resource described by the Security Command Center asset. This information is
// managed and defined by the Google Cloud resource and cannot be modified by
// the user.
type IamPolicy struct {
	// PolicyBlob: The JSON representation of the Policy associated with the asset.
	// See https://cloud.google.com/iam/reference/rest/v1/Policy for format
	// details.
	PolicyBlob string `json:"policyBlob,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PolicyBlob") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PolicyBlob") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Indicator: Represents what's commonly known as an _indicator of compromise_
// (IoC) in computer forensics. This is an artifact observed on a network or in
// an operating system that, with high confidence, indicates a computer
// intrusion. For more information, see Indicator of compromise
// (https://en.wikipedia.org/wiki/Indicator_of_compromise).
type Indicator struct {
	// Domains: List of domains associated to the Finding.
	Domains []string `json:"domains,omitempty"`
	// IpAddresses: The list of IP addresses that are associated with the finding.
	IpAddresses []string `json:"ipAddresses,omitempty"`
	// Signatures: The list of matched signatures indicating that the given process
	// is present in the environment.
	Signatures []*ProcessSignature `json:"signatures,omitempty"`
	// Uris: The list of URIs associated to the Findings.
	Uris []string `json:"uris,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Domains") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Domains") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InfoType: Type of information detected by the API.
type InfoType struct {
	// Name: Name of the information type. Either a name of your choosing when
	// creating a CustomInfoType, or one of the names listed at
	// https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference
	// when specifying a built-in type. When sending Cloud DLP results to Data
	// Catalog, infoType names should conform to the pattern
	// `[A-Za-z0-9$_-]{1,64}`.
	Name string `json:"name,omitempty"`
	// SensitivityScore: Optional custom sensitivity for this InfoType. This only
	// applies to data profiling.
	SensitivityScore *SensitivityScore `json:"sensitivityScore,omitempty"`
	// Version: Optional version name for this InfoType.
	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 InfoType) MarshalJSON() ([]byte, error) {
	type NoMethod InfoType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// IpRule: IP rule information.
type IpRule struct {
	// PortRanges: Optional. An optional list of ports to which this rule applies.
	// This field is only applicable for the UDP or (S)TCP protocols. Each entry
	// must be either an integer or a range including a min and max port number.
	PortRanges []*PortRange `json:"portRanges,omitempty"`
	// Protocol: The IP protocol this rule applies to. This value can either be one
	// of the following well known protocol strings (TCP, UDP, ICMP, ESP, AH, IPIP,
	// SCTP) or a string representation of the integer value.
	Protocol string `json:"protocol,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PortRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PortRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// IpRules: IP rules associated with the finding.
type IpRules struct {
	// Allowed: Tuple with allowed rules.
	Allowed *Allowed `json:"allowed,omitempty"`
	// Denied: Tuple with denied rules.
	Denied *Denied `json:"denied,omitempty"`
	// DestinationIpRanges: If destination IP ranges are specified, the firewall
	// rule applies only to traffic that has a destination IP address in these
	// ranges. These ranges must be expressed in CIDR format. Only supports IPv4.
	DestinationIpRanges []string `json:"destinationIpRanges,omitempty"`
	// Direction: The direction that the rule is applicable to, one of ingress or
	// egress.
	//
	// Possible values:
	//   "DIRECTION_UNSPECIFIED" - Unspecified direction value.
	//   "INGRESS" - Ingress direction value.
	//   "EGRESS" - Egress direction value.
	Direction string `json:"direction,omitempty"`
	// ExposedServices: Name of the network protocol service, such as FTP, that is
	// exposed by the open port. Follows the naming convention available at:
	// https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml.
	ExposedServices []string `json:"exposedServices,omitempty"`
	// SourceIpRanges: If source IP ranges are specified, the firewall rule applies
	// only to traffic that has a source IP address in these ranges. These ranges
	// must be expressed in CIDR format. Only supports IPv4.
	SourceIpRanges []string `json:"sourceIpRanges,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Allowed") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Allowed") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Job: Describes a job
type Job struct {
	// ErrorCode: Optional. If the job did not complete successfully, this field
	// describes why.
	ErrorCode int64 `json:"errorCode,omitempty"`
	// Location: Optional. Gives the location where the job ran, such as `US` or
	// `europe-west1`
	Location string `json:"location,omitempty"`
	// Name: The fully-qualified name for a job. e.g. `projects//jobs/`
	Name string `json:"name,omitempty"`
	// State: Output only. State of the job, such as `RUNNING` or `PENDING`.
	//
	// Possible values:
	//   "JOB_STATE_UNSPECIFIED" - Unspecified represents an unknown state and
	// should not be used.
	//   "PENDING" - Job is scheduled and pending for run
	//   "RUNNING" - Job in progress
	//   "SUCCEEDED" - Job has completed with success
	//   "FAILED" - Job has completed but with failure
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// KernelRootkit: Kernel mode rootkit signatures.
type KernelRootkit struct {
	// Name: Rootkit name, when available.
	Name string `json:"name,omitempty"`
	// UnexpectedCodeModification: True if unexpected modifications of kernel code
	// memory are present.
	UnexpectedCodeModification bool `json:"unexpectedCodeModification,omitempty"`
	// UnexpectedFtraceHandler: True if `ftrace` points are present with callbacks
	// pointing to regions that are not in the expected kernel or module code
	// range.
	UnexpectedFtraceHandler bool `json:"unexpectedFtraceHandler,omitempty"`
	// UnexpectedInterruptHandler: True if interrupt handlers that are are not in
	// the expected kernel or module code regions are present.
	UnexpectedInterruptHandler bool `json:"unexpectedInterruptHandler,omitempty"`
	// UnexpectedKernelCodePages: True if kernel code pages that are not in the
	// expected kernel or module code regions are present.
	UnexpectedKernelCodePages bool `json:"unexpectedKernelCodePages,omitempty"`
	// UnexpectedKprobeHandler: True if `kprobe` points are present with callbacks
	// pointing to regions that are not in the expected kernel or module code
	// range.
	UnexpectedKprobeHandler bool `json:"unexpectedKprobeHandler,omitempty"`
	// UnexpectedProcessesInRunqueue: True if unexpected processes in the scheduler
	// run queue are present. Such processes are in the run queue, but not in the
	// process task list.
	UnexpectedProcessesInRunqueue bool `json:"unexpectedProcessesInRunqueue,omitempty"`
	// UnexpectedReadOnlyDataModification: True if unexpected modifications of
	// kernel read-only data memory are present.
	UnexpectedReadOnlyDataModification bool `json:"unexpectedReadOnlyDataModification,omitempty"`
	// UnexpectedSystemCallHandler: True if system call handlers that are are not
	// in the expected kernel or module code regions are present.
	UnexpectedSystemCallHandler bool `json:"unexpectedSystemCallHandler,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 KernelRootkit) MarshalJSON() ([]byte, error) {
	type NoMethod KernelRootkit
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Kubernetes: Kubernetes-related attributes.
type Kubernetes struct {
	// AccessReviews: Provides information on any Kubernetes access reviews
	// (privilege checks) relevant to the finding.
	AccessReviews []*AccessReview `json:"accessReviews,omitempty"`
	// Bindings: Provides Kubernetes role binding information for findings that
	// involve RoleBindings or ClusterRoleBindings
	// (https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).
	Bindings []*GoogleCloudSecuritycenterV1Binding `json:"bindings,omitempty"`
	// NodePools: GKE node pools
	// (https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools)
	// associated with the finding. This field contains node pool information for
	// each node, when it is available.
	NodePools []*NodePool `json:"nodePools,omitempty"`
	// Nodes: Provides Kubernetes node
	// (https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes)
	// information.
	Nodes []*Node `json:"nodes,omitempty"`
	// Objects: Kubernetes objects related to the finding.
	Objects []*Object `json:"objects,omitempty"`
	// Pods: Kubernetes Pods
	// (https://cloud.google.com/kubernetes-engine/docs/concepts/pod) associated
	// with the finding. This field contains Pod records for each container that is
	// owned by a Pod.
	Pods []*Pod `json:"pods,omitempty"`
	// Roles: Provides Kubernetes role information for findings that involve Roles
	// or ClusterRoles
	// (https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).
	Roles []*Role `json:"roles,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessReviews") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessReviews") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Label: Represents a generic name-value label. A label has separate name and
// value fields to support filtering with the `contains()` function. For more
// information, see Filtering on array-type fields
// (https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering).
type Label struct {
	// Name: Name of the label.
	Name string `json:"name,omitempty"`
	// Value: Value that corresponds to the label's name.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListAssetsResponse: Response message for listing assets.
type ListAssetsResponse struct {
	// ListAssetsResults: Assets matching the list request.
	ListAssetsResults []*ListAssetsResult `json:"listAssetsResults,omitempty"`
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ReadTime: Time used for executing the list request.
	ReadTime string `json:"readTime,omitempty"`
	// TotalSize: The total number of assets matching the query.
	TotalSize int64 `json:"totalSize,omitempty"`

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

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

// ListAssetsResult: Result containing the Asset and its State.
type ListAssetsResult struct {
	// Asset: Asset matching the search request.
	Asset *Asset `json:"asset,omitempty"`
	// StateChange: State change of the asset between the points in time.
	//
	// Possible values:
	//   "UNUSED" - State change is unused, this is the canonical default for this
	// enum.
	//   "ADDED" - Asset was added between the points in time.
	//   "REMOVED" - Asset was removed between the points in time.
	//   "ACTIVE" - Asset was present at both point(s) in time.
	StateChange string `json:"stateChange,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 ListAssetsResult) MarshalJSON() ([]byte, error) {
	type NoMethod ListAssetsResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListAttackPathsResponse: Response message for listing the attack paths for a
// given simulation or valued resource.
type ListAttackPathsResponse struct {
	// AttackPaths: The attack paths that the attack path simulation identified.
	AttackPaths []*AttackPath `json:"attackPaths,omitempty"`
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`

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

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

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

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

// ListDescendantEventThreatDetectionCustomModulesResponse: Response for
// listing current and descendant resident Event Threat Detection custom
// modules.
type ListDescendantEventThreatDetectionCustomModulesResponse struct {
	// EventThreatDetectionCustomModules: Custom modules belonging to the requested
	// parent.
	EventThreatDetectionCustomModules []*EventThreatDetectionCustomModule `json:"eventThreatDetectionCustomModules,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.
	// "EventThreatDetectionCustomModules") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "EventThreatDetectionCustomModules") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// ListDescendantSecurityHealthAnalyticsCustomModulesResponse: Response message
// for listing descendant Security Health Analytics custom modules.
type ListDescendantSecurityHealthAnalyticsCustomModulesResponse struct {
	// NextPageToken: If not empty, indicates that there may be more custom modules
	// to be returned.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SecurityHealthAnalyticsCustomModules: Custom modules belonging to the
	// requested parent and its descendants.
	SecurityHealthAnalyticsCustomModules []*GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule `json:"securityHealthAnalyticsCustomModules,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 ListDescendantSecurityHealthAnalyticsCustomModulesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListDescendantSecurityHealthAnalyticsCustomModulesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListEffectiveEventThreatDetectionCustomModulesResponse: Response for listing
// EffectiveEventThreatDetectionCustomModules.
type ListEffectiveEventThreatDetectionCustomModulesResponse struct {
	// EffectiveEventThreatDetectionCustomModules: Effective custom modules
	// belonging to the requested parent.
	EffectiveEventThreatDetectionCustomModules []*EffectiveEventThreatDetectionCustomModule `json:"effectiveEventThreatDetectionCustomModules,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.
	// "EffectiveEventThreatDetectionCustomModules") to unconditionally include in
	// API requests. By default, fields with empty or default values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "EffectiveEventThreatDetectionCustomModules") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListEffectiveSecurityHealthAnalyticsCustomModulesResponse: Response message
// for listing effective Security Health Analytics custom modules.
type ListEffectiveSecurityHealthAnalyticsCustomModulesResponse struct {
	// EffectiveSecurityHealthAnalyticsCustomModules: Effective custom modules
	// belonging to the requested parent.
	EffectiveSecurityHealthAnalyticsCustomModules []*GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule `json:"effectiveSecurityHealthAnalyticsCustomModules,omitempty"`
	// NextPageToken: If not empty, indicates that there may be more effective
	// custom modules to be returned.
	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.
	// "EffectiveSecurityHealthAnalyticsCustomModules") to unconditionally include
	// in API requests. By default, fields with empty or default values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "EffectiveSecurityHealthAnalyticsCustomModules") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListEventThreatDetectionCustomModulesResponse: Response for listing Event
// Threat Detection custom modules.
type ListEventThreatDetectionCustomModulesResponse struct {
	// EventThreatDetectionCustomModules: Custom modules belonging to the requested
	// parent.
	EventThreatDetectionCustomModules []*EventThreatDetectionCustomModule `json:"eventThreatDetectionCustomModules,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.
	// "EventThreatDetectionCustomModules") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "EventThreatDetectionCustomModules") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// ListFindingsResponse: Response message for listing findings.
type ListFindingsResponse struct {
	// ListFindingsResults: Findings matching the list request.
	ListFindingsResults []*ListFindingsResult `json:"listFindingsResults,omitempty"`
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ReadTime: Time used for executing the list request.
	ReadTime string `json:"readTime,omitempty"`
	// TotalSize: The total number of findings matching the query.
	TotalSize int64 `json:"totalSize,omitempty"`

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

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

// ListFindingsResult: Result containing the Finding and its StateChange.
type ListFindingsResult struct {
	// Finding: Finding matching the search request.
	Finding *Finding `json:"finding,omitempty"`
	// Resource: Output only. Resource that is associated with this finding.
	Resource *Resource `json:"resource,omitempty"`
	// StateChange: State change of the finding between the points in time.
	//
	// Possible values:
	//   "UNUSED" - State change is unused, this is the canonical default for this
	// enum.
	//   "CHANGED" - The finding has changed state in some way between the points
	// in time and existed at both points.
	//   "UNCHANGED" - The finding has not changed state between the points in time
	// and existed at both points.
	//   "ADDED" - The finding was created between the points in time.
	//   "REMOVED" - The finding at timestamp does not match the filter specified,
	// but it did at timestamp - compare_duration.
	StateChange string `json:"stateChange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Finding") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Finding") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// ListNotificationConfigsResponse: Response message for listing notification
// configs.
type ListNotificationConfigsResponse struct {
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// NotificationConfigs: Notification configs belonging to the requested parent.
	NotificationConfigs []*NotificationConfig `json:"notificationConfigs,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 ListNotificationConfigsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListNotificationConfigsResponse
	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 e.g. when attempting to list all resources across all supported
	// locations.
	Unreachable []string `json:"unreachable,omitempty"`

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

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

// ListResourceValueConfigsResponse: Response message to list resource value
// configs
type ListResourceValueConfigsResponse struct {
	// NextPageToken: A token, which can be sent as `page_token` to retrieve the
	// next page. If this field is empty, there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ResourceValueConfigs: The resource value configs from the specified parent.
	ResourceValueConfigs []*GoogleCloudSecuritycenterV1ResourceValueConfig `json:"resourceValueConfigs,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 ListResourceValueConfigsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListResourceValueConfigsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListSecurityHealthAnalyticsCustomModulesResponse: Response message for
// listing Security Health Analytics custom modules.
type ListSecurityHealthAnalyticsCustomModulesResponse struct {
	// NextPageToken: If not empty, indicates that there may be more custom modules
	// to be returned.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SecurityHealthAnalyticsCustomModules: Custom modules belonging to the
	// requested parent.
	SecurityHealthAnalyticsCustomModules []*GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule `json:"securityHealthAnalyticsCustomModules,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 ListSecurityHealthAnalyticsCustomModulesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListSecurityHealthAnalyticsCustomModulesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListSourcesResponse: Response message for listing sources.
type ListSourcesResponse struct {
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Sources: Sources belonging to the requested parent.
	Sources []*Source `json:"sources,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "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 ListSourcesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListSourcesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListValuedResourcesResponse: Response message for listing the valued
// resources for a given simulation.
type ListValuedResourcesResponse struct {
	// NextPageToken: Token to retrieve the next page of results, or empty if there
	// are no more results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// TotalSize: The estimated total number of results matching the query.
	TotalSize int64 `json:"totalSize,omitempty"`
	// ValuedResources: The valued resources that the attack path simulation
	// identified.
	ValuedResources []*ValuedResource `json:"valuedResources,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 ListValuedResourcesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListValuedResourcesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// LogEntry: An individual entry in a log.
type LogEntry struct {
	// CloudLoggingEntry: An individual entry in a log stored in Cloud Logging.
	CloudLoggingEntry *CloudLoggingEntry `json:"cloudLoggingEntry,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudLoggingEntry") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudLoggingEntry") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// MemoryHashSignature: A signature corresponding to memory page hashes.
type MemoryHashSignature struct {
	// BinaryFamily: The binary family.
	BinaryFamily string `json:"binaryFamily,omitempty"`
	// Detections: The list of memory hash detections contributing to the binary
	// family match.
	Detections []*Detection `json:"detections,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BinaryFamily") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BinaryFamily") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// MitreAttack: MITRE ATT&CK tactics and techniques related to this finding.
// See: https://attack.mitre.org
type MitreAttack struct {
	// AdditionalTactics: Additional MITRE ATT&CK tactics related to this finding,
	// if any.
	//
	// Possible values:
	//   "TACTIC_UNSPECIFIED" - Unspecified value.
	//   "RECONNAISSANCE" - TA0043
	//   "RESOURCE_DEVELOPMENT" - TA0042
	//   "INITIAL_ACCESS" - TA0001
	//   "EXECUTION" - TA0002
	//   "PERSISTENCE" - TA0003
	//   "PRIVILEGE_ESCALATION" - TA0004
	//   "DEFENSE_EVASION" - TA0005
	//   "CREDENTIAL_ACCESS" - TA0006
	//   "DISCOVERY" - TA0007
	//   "LATERAL_MOVEMENT" - TA0008
	//   "COLLECTION" - TA0009
	//   "COMMAND_AND_CONTROL" - TA0011
	//   "EXFILTRATION" - TA0010
	//   "IMPACT" - TA0040
	AdditionalTactics []string `json:"additionalTactics,omitempty"`
	// AdditionalTechniques: Additional MITRE ATT&CK techniques related to this
	// finding, if any, along with any of their respective parent techniques.
	//
	// Possible values:
	//   "TECHNIQUE_UNSPECIFIED" - Unspecified value.
	//   "DATA_OBFUSCATION" - T1001
	//   "DATA_OBFUSCATION_STEGANOGRAPHY" - T1001.002
	//   "OS_CREDENTIAL_DUMPING" - T1003
	//   "OS_CREDENTIAL_DUMPING_PROC_FILESYSTEM" - T1003.007
	//   "OS_CREDENTIAL_DUMPING_ETC_PASSWORD_AND_ETC_SHADOW" - T1003.008
	//   "DATA_FROM_LOCAL_SYSTEM" - T1005
	//   "AUTOMATED_EXFILTRATION" - T1020
	//   "OBFUSCATED_FILES_OR_INFO" - T1027
	//   "STEGANOGRAPHY" - T1027.003
	//   "COMPILE_AFTER_DELIVERY" - T1027.004
	//   "COMMAND_OBFUSCATION" - T1027.010
	//   "SCHEDULED_TRANSFER" - T1029
	//   "SYSTEM_OWNER_USER_DISCOVERY" - T1033
	//   "MASQUERADING" - T1036
	//   "MATCH_LEGITIMATE_NAME_OR_LOCATION" - T1036.005
	//   "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS" - T1037
	//   "STARTUP_ITEMS" - T1037.005
	//   "NETWORK_SERVICE_DISCOVERY" - T1046
	//   "SCHEDULED_TASK_JOB" - T1053
	//   "SCHEDULED_TASK_JOB_CRON" - T1053.003
	//   "CONTAINER_ORCHESTRATION_JOB" - T1053.007
	//   "PROCESS_INJECTION" - T1055
	//   "INPUT_CAPTURE" - T1056
	//   "INPUT_CAPTURE_KEYLOGGING" - T1056.001
	//   "PROCESS_DISCOVERY" - T1057
	//   "COMMAND_AND_SCRIPTING_INTERPRETER" - T1059
	//   "UNIX_SHELL" - T1059.004
	//   "PYTHON" - T1059.006
	//   "EXPLOITATION_FOR_PRIVILEGE_ESCALATION" - T1068
	//   "PERMISSION_GROUPS_DISCOVERY" - T1069
	//   "CLOUD_GROUPS" - T1069.003
	//   "INDICATOR_REMOVAL" - T1070
	//   "INDICATOR_REMOVAL_CLEAR_LINUX_OR_MAC_SYSTEM_LOGS" - T1070.002
	//   "INDICATOR_REMOVAL_CLEAR_COMMAND_HISTORY" - T1070.003
	//   "INDICATOR_REMOVAL_FILE_DELETION" - T1070.004
	//   "INDICATOR_REMOVAL_TIMESTOMP" - T1070.006
	//   "INDICATOR_REMOVAL_CLEAR_MAILBOX_DATA" - T1070.008
	//   "APPLICATION_LAYER_PROTOCOL" - T1071
	//   "DNS" - T1071.004
	//   "SOFTWARE_DEPLOYMENT_TOOLS" - T1072
	//   "VALID_ACCOUNTS" - T1078
	//   "DEFAULT_ACCOUNTS" - T1078.001
	//   "LOCAL_ACCOUNTS" - T1078.003
	//   "CLOUD_ACCOUNTS" - T1078.004
	//   "FILE_AND_DIRECTORY_DISCOVERY" - T1083
	//   "ACCOUNT_DISCOVERY_LOCAL_ACCOUNT" - T1087.001
	//   "PROXY" - T1090
	//   "EXTERNAL_PROXY" - T1090.002
	//   "MULTI_HOP_PROXY" - T1090.003
	//   "ACCOUNT_MANIPULATION" - T1098
	//   "ADDITIONAL_CLOUD_CREDENTIALS" - T1098.001
	//   "ADDITIONAL_CLOUD_ROLES" - T1098.003
	//   "SSH_AUTHORIZED_KEYS" - T1098.004
	//   "ADDITIONAL_CONTAINER_CLUSTER_ROLES" - T1098.006
	//   "MULTI_STAGE_CHANNELS" - T1104
	//   "INGRESS_TOOL_TRANSFER" - T1105
	//   "NATIVE_API" - T1106
	//   "BRUTE_FORCE" - T1110
	//   "AUTOMATED_COLLECTION" - T1119
	//   "SHARED_MODULES" - T1129
	//   "DATA_ENCODING" - T1132
	//   "STANDARD_ENCODING" - T1132.001
	//   "ACCESS_TOKEN_MANIPULATION" - T1134
	//   "TOKEN_IMPERSONATION_OR_THEFT" - T1134.001
	//   "CREATE_ACCOUNT" - T1136
	//   "LOCAL_ACCOUNT" - T1136.001
	//   "DEOBFUSCATE_DECODE_FILES_OR_INFO" - T1140
	//   "EXPLOIT_PUBLIC_FACING_APPLICATION" - T1190
	//   "SUPPLY_CHAIN_COMPROMISE" - T1195
	//   "COMPROMISE_SOFTWARE_DEPENDENCIES_AND_DEVELOPMENT_TOOLS" - T1195.001
	//   "EXPLOITATION_FOR_CLIENT_EXECUTION" - T1203
	//   "USER_EXECUTION" - T1204
	//   "EXPLOITATION_FOR_CREDENTIAL_ACCESS" - T1212
	//   "LINUX_AND_MAC_FILE_AND_DIRECTORY_PERMISSIONS_MODIFICATION" - T1222.002
	//   "DOMAIN_POLICY_MODIFICATION" - T1484
	//   "DATA_DESTRUCTION" - T1485
	//   "DATA_ENCRYPTED_FOR_IMPACT" - T1486
	//   "SERVICE_STOP" - T1489
	//   "INHIBIT_SYSTEM_RECOVERY" - T1490
	//   "FIRMWARE_CORRUPTION" - T1495
	//   "RESOURCE_HIJACKING" - T1496
	//   "NETWORK_DENIAL_OF_SERVICE" - T1498
	//   "CLOUD_SERVICE_DISCOVERY" - T1526
	//   "STEAL_APPLICATION_ACCESS_TOKEN" - T1528
	//   "ACCOUNT_ACCESS_REMOVAL" - T1531
	//   "TRANSFER_DATA_TO_CLOUD_ACCOUNT" - T1537
	//   "STEAL_WEB_SESSION_COOKIE" - T1539
	//   "CREATE_OR_MODIFY_SYSTEM_PROCESS" - T1543
	//   "EVENT_TRIGGERED_EXECUTION" - T1546
	//   "BOOT_OR_LOGON_AUTOSTART_EXECUTION" - T1547
	//   "KERNEL_MODULES_AND_EXTENSIONS" - T1547.006
	//   "SHORTCUT_MODIFICATION" - T1547.009
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM" - T1548
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SETUID_AND_SETGID" - T1548.001
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SUDO_AND_SUDO_CACHING" - T1548.003
	//   "UNSECURED_CREDENTIALS" - T1552
	//   "CREDENTIALS_IN_FILES" - T1552.001
	//   "BASH_HISTORY" - T1552.003
	//   "PRIVATE_KEYS" - T1552.004
	//   "SUBVERT_TRUST_CONTROL" - T1553
	//   "INSTALL_ROOT_CERTIFICATE" - T1553.004
	//   "COMPROMISE_HOST_SOFTWARE_BINARY" - T1554
	//   "CREDENTIALS_FROM_PASSWORD_STORES" - T1555
	//   "MODIFY_AUTHENTICATION_PROCESS" - T1556
	//   "PLUGGABLE_AUTHENTICATION_MODULES" - T1556.003
	//   "MULTI_FACTOR_AUTHENTICATION" - T1556.006
	//   "IMPAIR_DEFENSES" - T1562
	//   "DISABLE_OR_MODIFY_TOOLS" - T1562.001
	//   "INDICATOR_BLOCKING" - T1562.006
	//   "DISABLE_OR_MODIFY_LINUX_AUDIT_SYSTEM" - T1562.012
	//   "HIDE_ARTIFACTS" - T1564
	//   "HIDDEN_FILES_AND_DIRECTORIES" - T1564.001
	//   "HIDDEN_USERS" - T1564.002
	//   "EXFILTRATION_OVER_WEB_SERVICE" - T1567
	//   "EXFILTRATION_TO_CLOUD_STORAGE" - T1567.002
	//   "DYNAMIC_RESOLUTION" - T1568
	//   "LATERAL_TOOL_TRANSFER" - T1570
	//   "HIJACK_EXECUTION_FLOW" - T1574
	//   "HIJACK_EXECUTION_FLOW_DYNAMIC_LINKER_HIJACKING" - T1574.006
	//   "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE" - T1578
	//   "CREATE_SNAPSHOT" - T1578.001
	//   "CLOUD_INFRASTRUCTURE_DISCOVERY" - T1580
	//   "DEVELOP_CAPABILITIES" - T1587
	//   "DEVELOP_CAPABILITIES_MALWARE" - T1587.001
	//   "OBTAIN_CAPABILITIES" - T1588
	//   "OBTAIN_CAPABILITIES_MALWARE" - T1588.001
	//   "OBTAIN_CAPABILITIES_VULNERABILITIES" - T1588.006
	//   "ACTIVE_SCANNING" - T1595
	//   "SCANNING_IP_BLOCKS" - T1595.001
	//   "STAGE_CAPABILITIES" - T1608
	//   "UPLOAD_MALWARE" - T1608.001
	//   "CONTAINER_ADMINISTRATION_COMMAND" - T1609
	//   "DEPLOY_CONTAINER" - T1610
	//   "ESCAPE_TO_HOST" - T1611
	//   "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613
	//   "REFLECTIVE_CODE_LOADING" - T1620
	//   "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649
	//   "FINANCIAL_THEFT" - T1657
	AdditionalTechniques []string `json:"additionalTechniques,omitempty"`
	// PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this
	// finding, if any.
	//
	// Possible values:
	//   "TACTIC_UNSPECIFIED" - Unspecified value.
	//   "RECONNAISSANCE" - TA0043
	//   "RESOURCE_DEVELOPMENT" - TA0042
	//   "INITIAL_ACCESS" - TA0001
	//   "EXECUTION" - TA0002
	//   "PERSISTENCE" - TA0003
	//   "PRIVILEGE_ESCALATION" - TA0004
	//   "DEFENSE_EVASION" - TA0005
	//   "CREDENTIAL_ACCESS" - TA0006
	//   "DISCOVERY" - TA0007
	//   "LATERAL_MOVEMENT" - TA0008
	//   "COLLECTION" - TA0009
	//   "COMMAND_AND_CONTROL" - TA0011
	//   "EXFILTRATION" - TA0010
	//   "IMPACT" - TA0040
	PrimaryTactic string `json:"primaryTactic,omitempty"`
	// PrimaryTechniques: The MITRE ATT&CK technique most closely represented by
	// this finding, if any. primary_techniques is a repeated field because there
	// are multiple levels of MITRE ATT&CK techniques. If the technique most
	// closely represented by this finding is a sub-technique (e.g.
	// `SCANNING_IP_BLOCKS`), both the sub-technique and its parent technique(s)
	// will be listed (e.g. `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`).
	//
	// Possible values:
	//   "TECHNIQUE_UNSPECIFIED" - Unspecified value.
	//   "DATA_OBFUSCATION" - T1001
	//   "DATA_OBFUSCATION_STEGANOGRAPHY" - T1001.002
	//   "OS_CREDENTIAL_DUMPING" - T1003
	//   "OS_CREDENTIAL_DUMPING_PROC_FILESYSTEM" - T1003.007
	//   "OS_CREDENTIAL_DUMPING_ETC_PASSWORD_AND_ETC_SHADOW" - T1003.008
	//   "DATA_FROM_LOCAL_SYSTEM" - T1005
	//   "AUTOMATED_EXFILTRATION" - T1020
	//   "OBFUSCATED_FILES_OR_INFO" - T1027
	//   "STEGANOGRAPHY" - T1027.003
	//   "COMPILE_AFTER_DELIVERY" - T1027.004
	//   "COMMAND_OBFUSCATION" - T1027.010
	//   "SCHEDULED_TRANSFER" - T1029
	//   "SYSTEM_OWNER_USER_DISCOVERY" - T1033
	//   "MASQUERADING" - T1036
	//   "MATCH_LEGITIMATE_NAME_OR_LOCATION" - T1036.005
	//   "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS" - T1037
	//   "STARTUP_ITEMS" - T1037.005
	//   "NETWORK_SERVICE_DISCOVERY" - T1046
	//   "SCHEDULED_TASK_JOB" - T1053
	//   "SCHEDULED_TASK_JOB_CRON" - T1053.003
	//   "CONTAINER_ORCHESTRATION_JOB" - T1053.007
	//   "PROCESS_INJECTION" - T1055
	//   "INPUT_CAPTURE" - T1056
	//   "INPUT_CAPTURE_KEYLOGGING" - T1056.001
	//   "PROCESS_DISCOVERY" - T1057
	//   "COMMAND_AND_SCRIPTING_INTERPRETER" - T1059
	//   "UNIX_SHELL" - T1059.004
	//   "PYTHON" - T1059.006
	//   "EXPLOITATION_FOR_PRIVILEGE_ESCALATION" - T1068
	//   "PERMISSION_GROUPS_DISCOVERY" - T1069
	//   "CLOUD_GROUPS" - T1069.003
	//   "INDICATOR_REMOVAL" - T1070
	//   "INDICATOR_REMOVAL_CLEAR_LINUX_OR_MAC_SYSTEM_LOGS" - T1070.002
	//   "INDICATOR_REMOVAL_CLEAR_COMMAND_HISTORY" - T1070.003
	//   "INDICATOR_REMOVAL_FILE_DELETION" - T1070.004
	//   "INDICATOR_REMOVAL_TIMESTOMP" - T1070.006
	//   "INDICATOR_REMOVAL_CLEAR_MAILBOX_DATA" - T1070.008
	//   "APPLICATION_LAYER_PROTOCOL" - T1071
	//   "DNS" - T1071.004
	//   "SOFTWARE_DEPLOYMENT_TOOLS" - T1072
	//   "VALID_ACCOUNTS" - T1078
	//   "DEFAULT_ACCOUNTS" - T1078.001
	//   "LOCAL_ACCOUNTS" - T1078.003
	//   "CLOUD_ACCOUNTS" - T1078.004
	//   "FILE_AND_DIRECTORY_DISCOVERY" - T1083
	//   "ACCOUNT_DISCOVERY_LOCAL_ACCOUNT" - T1087.001
	//   "PROXY" - T1090
	//   "EXTERNAL_PROXY" - T1090.002
	//   "MULTI_HOP_PROXY" - T1090.003
	//   "ACCOUNT_MANIPULATION" - T1098
	//   "ADDITIONAL_CLOUD_CREDENTIALS" - T1098.001
	//   "ADDITIONAL_CLOUD_ROLES" - T1098.003
	//   "SSH_AUTHORIZED_KEYS" - T1098.004
	//   "ADDITIONAL_CONTAINER_CLUSTER_ROLES" - T1098.006
	//   "MULTI_STAGE_CHANNELS" - T1104
	//   "INGRESS_TOOL_TRANSFER" - T1105
	//   "NATIVE_API" - T1106
	//   "BRUTE_FORCE" - T1110
	//   "AUTOMATED_COLLECTION" - T1119
	//   "SHARED_MODULES" - T1129
	//   "DATA_ENCODING" - T1132
	//   "STANDARD_ENCODING" - T1132.001
	//   "ACCESS_TOKEN_MANIPULATION" - T1134
	//   "TOKEN_IMPERSONATION_OR_THEFT" - T1134.001
	//   "CREATE_ACCOUNT" - T1136
	//   "LOCAL_ACCOUNT" - T1136.001
	//   "DEOBFUSCATE_DECODE_FILES_OR_INFO" - T1140
	//   "EXPLOIT_PUBLIC_FACING_APPLICATION" - T1190
	//   "SUPPLY_CHAIN_COMPROMISE" - T1195
	//   "COMPROMISE_SOFTWARE_DEPENDENCIES_AND_DEVELOPMENT_TOOLS" - T1195.001
	//   "EXPLOITATION_FOR_CLIENT_EXECUTION" - T1203
	//   "USER_EXECUTION" - T1204
	//   "EXPLOITATION_FOR_CREDENTIAL_ACCESS" - T1212
	//   "LINUX_AND_MAC_FILE_AND_DIRECTORY_PERMISSIONS_MODIFICATION" - T1222.002
	//   "DOMAIN_POLICY_MODIFICATION" - T1484
	//   "DATA_DESTRUCTION" - T1485
	//   "DATA_ENCRYPTED_FOR_IMPACT" - T1486
	//   "SERVICE_STOP" - T1489
	//   "INHIBIT_SYSTEM_RECOVERY" - T1490
	//   "FIRMWARE_CORRUPTION" - T1495
	//   "RESOURCE_HIJACKING" - T1496
	//   "NETWORK_DENIAL_OF_SERVICE" - T1498
	//   "CLOUD_SERVICE_DISCOVERY" - T1526
	//   "STEAL_APPLICATION_ACCESS_TOKEN" - T1528
	//   "ACCOUNT_ACCESS_REMOVAL" - T1531
	//   "TRANSFER_DATA_TO_CLOUD_ACCOUNT" - T1537
	//   "STEAL_WEB_SESSION_COOKIE" - T1539
	//   "CREATE_OR_MODIFY_SYSTEM_PROCESS" - T1543
	//   "EVENT_TRIGGERED_EXECUTION" - T1546
	//   "BOOT_OR_LOGON_AUTOSTART_EXECUTION" - T1547
	//   "KERNEL_MODULES_AND_EXTENSIONS" - T1547.006
	//   "SHORTCUT_MODIFICATION" - T1547.009
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM" - T1548
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SETUID_AND_SETGID" - T1548.001
	//   "ABUSE_ELEVATION_CONTROL_MECHANISM_SUDO_AND_SUDO_CACHING" - T1548.003
	//   "UNSECURED_CREDENTIALS" - T1552
	//   "CREDENTIALS_IN_FILES" - T1552.001
	//   "BASH_HISTORY" - T1552.003
	//   "PRIVATE_KEYS" - T1552.004
	//   "SUBVERT_TRUST_CONTROL" - T1553
	//   "INSTALL_ROOT_CERTIFICATE" - T1553.004
	//   "COMPROMISE_HOST_SOFTWARE_BINARY" - T1554
	//   "CREDENTIALS_FROM_PASSWORD_STORES" - T1555
	//   "MODIFY_AUTHENTICATION_PROCESS" - T1556
	//   "PLUGGABLE_AUTHENTICATION_MODULES" - T1556.003
	//   "MULTI_FACTOR_AUTHENTICATION" - T1556.006
	//   "IMPAIR_DEFENSES" - T1562
	//   "DISABLE_OR_MODIFY_TOOLS" - T1562.001
	//   "INDICATOR_BLOCKING" - T1562.006
	//   "DISABLE_OR_MODIFY_LINUX_AUDIT_SYSTEM" - T1562.012
	//   "HIDE_ARTIFACTS" - T1564
	//   "HIDDEN_FILES_AND_DIRECTORIES" - T1564.001
	//   "HIDDEN_USERS" - T1564.002
	//   "EXFILTRATION_OVER_WEB_SERVICE" - T1567
	//   "EXFILTRATION_TO_CLOUD_STORAGE" - T1567.002
	//   "DYNAMIC_RESOLUTION" - T1568
	//   "LATERAL_TOOL_TRANSFER" - T1570
	//   "HIJACK_EXECUTION_FLOW" - T1574
	//   "HIJACK_EXECUTION_FLOW_DYNAMIC_LINKER_HIJACKING" - T1574.006
	//   "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE" - T1578
	//   "CREATE_SNAPSHOT" - T1578.001
	//   "CLOUD_INFRASTRUCTURE_DISCOVERY" - T1580
	//   "DEVELOP_CAPABILITIES" - T1587
	//   "DEVELOP_CAPABILITIES_MALWARE" - T1587.001
	//   "OBTAIN_CAPABILITIES" - T1588
	//   "OBTAIN_CAPABILITIES_MALWARE" - T1588.001
	//   "OBTAIN_CAPABILITIES_VULNERABILITIES" - T1588.006
	//   "ACTIVE_SCANNING" - T1595
	//   "SCANNING_IP_BLOCKS" - T1595.001
	//   "STAGE_CAPABILITIES" - T1608
	//   "UPLOAD_MALWARE" - T1608.001
	//   "CONTAINER_ADMINISTRATION_COMMAND" - T1609
	//   "DEPLOY_CONTAINER" - T1610
	//   "ESCAPE_TO_HOST" - T1611
	//   "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613
	//   "REFLECTIVE_CODE_LOADING" - T1620
	//   "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649
	//   "FINANCIAL_THEFT" - T1657
	PrimaryTechniques []string `json:"primaryTechniques,omitempty"`
	// Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8".
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalTactics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalTactics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// MuteInfo: Mute information about the finding, including whether the finding
// has a static mute or any matching dynamic mute rules.
type MuteInfo struct {
	// DynamicMuteRecords: The list of dynamic mute rules that currently match the
	// finding.
	DynamicMuteRecords []*DynamicMuteRecord `json:"dynamicMuteRecords,omitempty"`
	// StaticMute: If set, the static mute applied to this finding. Static mutes
	// override dynamic mutes. If unset, there is no static mute.
	StaticMute *StaticMute `json:"staticMute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DynamicMuteRecords") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DynamicMuteRecords") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Network: Contains information about a VPC network associated with the
// finding.
type Network struct {
	// Name: The name of the VPC network resource, for example,
	// `//compute.googleapis.com/projects/my-project/global/networks/my-network`.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Node: Kubernetes nodes associated with the finding.
type Node struct {
	// Name: Full resource name (https://google.aip.dev/122#full-resource-names) of
	// the Compute Engine VM running the cluster node.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// NodePool: Provides GKE node pool information.
type NodePool struct {
	// Name: Kubernetes node pool name.
	Name string `json:"name,omitempty"`
	// Nodes: Nodes associated with the finding.
	Nodes []*Node `json:"nodes,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 NodePool) MarshalJSON() ([]byte, error) {
	type NoMethod NodePool
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Notebook: Represents a Jupyter notebook IPYNB file, such as a Colab
// Enterprise notebook (https://cloud.google.com/colab/docs/introduction) file,
// that is associated with a finding.
type Notebook struct {
	// LastAuthor: The user ID of the latest author to modify the notebook.
	LastAuthor string `json:"lastAuthor,omitempty"`
	// Name: The name of the notebook.
	Name string `json:"name,omitempty"`
	// NotebookUpdateTime: The most recent time the notebook was updated.
	NotebookUpdateTime string `json:"notebookUpdateTime,omitempty"`
	// Service: The source notebook service, for example, "Colab Enterprise".
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LastAuthor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LastAuthor") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// NotificationConfig: Cloud Security Command Center (Cloud SCC) notification
// configs. A notification config is a Cloud SCC resource that contains the
// configuration to send notifications for create/update events of findings,
// assets and etc.
type NotificationConfig struct {
	// Description: The description of the notification config (max of 1024
	// characters).
	Description string `json:"description,omitempty"`
	// Name: The relative resource name of this notification config. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Example:
	// "organizations/{organization_id}/notificationConfigs/notify_public_bucket",
	// "folders/{folder_id}/notificationConfigs/notify_public_bucket", or
	// "projects/{project_id}/notificationConfigs/notify_public_bucket".
	Name string `json:"name,omitempty"`
	// PubsubTopic: The Pub/Sub topic to send notifications to. Its format is
	// "projects/[project_id]/topics/[topic]".
	PubsubTopic string `json:"pubsubTopic,omitempty"`
	// ServiceAccount: Output only. The service account that needs
	// "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// StreamingConfig: The config for triggering streaming-based notifications.
	StreamingConfig *StreamingConfig `json:"streamingConfig,omitempty"`

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

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

// Object: Kubernetes object related to the finding, uniquely identified by
// GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or
// AccessReview.
type Object struct {
	// Containers: Pod containers associated with this finding, if any.
	Containers []*Container `json:"containers,omitempty"`
	// Group: Kubernetes object group, such as "policy.k8s.io/v1".
	Group string `json:"group,omitempty"`
	// Kind: Kubernetes object kind, such as "Namespace".
	Kind string `json:"kind,omitempty"`
	// Name: Kubernetes object name. For details see
	// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.
	Name string `json:"name,omitempty"`
	// Ns: Kubernetes object namespace. Must be a valid DNS label. Named "ns" to
	// avoid collision with C++ namespace keyword. For details see
	// https://kubernetes.io/docs/tasks/administer-cluster/namespaces/.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Containers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Containers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// OrgPolicy: Contains information about the org policies associated with the
// finding.
type OrgPolicy struct {
	// Name: The resource name of the org policy. Example:
	// "organizations/{organization_id}/policies/{constraint_name}"
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// OrganizationSettings: User specified settings that are attached to the
// Security Command Center organization.
type OrganizationSettings struct {
	// AssetDiscoveryConfig: The configuration used for Asset Discovery runs.
	AssetDiscoveryConfig *AssetDiscoveryConfig `json:"assetDiscoveryConfig,omitempty"`
	// EnableAssetDiscovery: A flag that indicates if Asset Discovery should be
	// enabled. If the flag is set to `true`, then discovery of assets will occur.
	// If it is set to `false`, all historical assets will remain, but discovery of
	// future assets will not occur.
	EnableAssetDiscovery bool `json:"enableAssetDiscovery,omitempty"`
	// Name: The relative resource name of the settings. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Example: "organizations/{organization_id}/organizationSettings".
	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. "AssetDiscoveryConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetDiscoveryConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Package: Package is a generic definition of a package.
type Package struct {
	// CpeUri: The CPE URI where the vulnerability was detected.
	CpeUri string `json:"cpeUri,omitempty"`
	// PackageName: The name of the package where the vulnerability was detected.
	PackageName string `json:"packageName,omitempty"`
	// PackageType: Type of package, for example, os, maven, or go.
	PackageType string `json:"packageType,omitempty"`
	// PackageVersion: The version of the package.
	PackageVersion string `json:"packageVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpeUri") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpeUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// PathNodeAssociatedFinding: A finding that is associated with this node in
// the attack path.
type PathNodeAssociatedFinding struct {
	// CanonicalFinding: Canonical name of the associated findings. Example:
	// `organizations/123/sources/456/findings/789`
	CanonicalFinding string `json:"canonicalFinding,omitempty"`
	// FindingCategory: The additional taxonomy group within findings from a given
	// source.
	FindingCategory string `json:"findingCategory,omitempty"`
	// Name: Full resource name of the finding.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalFinding") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalFinding") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Pipeline: Vertex AI training pipeline associated with the finding.
type Pipeline struct {
	// DisplayName: The user defined display name of pipeline, e.g.
	// plants-classification
	DisplayName string `json:"displayName,omitempty"`
	// Name: Resource name of the pipeline, e.g.
	// projects/{project}/locations/{location}/trainingPipelines/5253428229225578496
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Pod: A Kubernetes Pod.
type Pod struct {
	// Containers: Pod containers associated with this finding, if any.
	Containers []*Container `json:"containers,omitempty"`
	// Labels: Pod labels. For Kubernetes containers, these are applied to the
	// container.
	Labels []*Label `json:"labels,omitempty"`
	// Name: Kubernetes Pod name.
	Name string `json:"name,omitempty"`
	// Ns: Kubernetes Pod namespace.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Containers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Containers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Policy: An Identity and Access Management (IAM) policy, which specifies
// access controls for Google Cloud resources. A `Policy` is a collection of
// `bindings`. A `binding` binds one or more `members`, or principals, to a
// single `role`. Principals can be user accounts, service accounts, Google
// groups, and domains (such as G Suite). A `role` is a named list of
// permissions; each `role` can be an IAM predefined role or a user-created
// custom role. For some types of Google Cloud resources, a `binding` can also
// specify a `condition`, which is a logical expression that allows access to a
// resource only if the expression evaluates to `true`. A condition can add
// constraints based on attributes of the request, the resource, or both. To
// learn which resources support conditions in their IAM policies, see the IAM
// documentation
// (https://cloud.google.com/iam/help/conditions/resource-policies). **JSON
// example:** ``` { "bindings": [ { "role":
// "roles/resourcemanager.organizationAdmin", "members": [
// "user:mike@example.com", "group:admins@example.com", "domain:google.com",
// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role":
// "roles/resourcemanager.organizationViewer", "members": [
// "user:eve@example.com" ], "condition": { "title": "expirable access",
// "description": "Does not grant access after Sep 2020", "expression":
// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag":
// "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: -
// members: - user:mike@example.com - group:admins@example.com -
// domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
// role: roles/resourcemanager.organizationAdmin - members: -
// user:eve@example.com role: roles/resourcemanager.organizationViewer
// condition: title: expirable access description: Does not grant access after
// Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
// etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features,
// see the IAM documentation (https://cloud.google.com/iam/docs/).
type Policy struct {
	// AuditConfigs: Specifies cloud audit logging configuration for this policy.
	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
	// Bindings: Associates a list of `members`, or principals, with a `role`.
	// Optionally, may specify a `condition` that determines how and when the
	// `bindings` are applied. Each of the `bindings` must contain at least one
	// principal. The `bindings` in a `Policy` can refer to up to 1,500 principals;
	// up to 250 of these principals can be Google groups. Each occurrence of a
	// principal counts towards these limits. For example, if the `bindings` grant
	// 50 different roles to `user:alice@example.com`, and not to any other
	// principal, then you can add another 1,450 principals to the `bindings` in
	// the `Policy`.
	Bindings []*Binding `json:"bindings,omitempty"`
	// Etag: `etag` is used for optimistic concurrency control as a way to help
	// prevent simultaneous updates of a policy from overwriting each other. It is
	// strongly suggested that systems make use of the `etag` in the
	// read-modify-write cycle to perform policy updates in order to avoid race
	// conditions: An `etag` is returned in the response to `getIamPolicy`, and
	// systems are expected to put that etag in the request to `setIamPolicy` to
	// ensure that their change will be applied to the same version of the policy.
	// **Important:** If you use IAM Conditions, you must include the `etag` field
	// whenever you call `setIamPolicy`. If you omit this field, then IAM allows
	// you to overwrite a version `3` policy with a version `1` policy, and all of
	// the conditions in the version `3` policy are lost.
	Etag string `json:"etag,omitempty"`
	// Version: Specifies the format of the policy. Valid values are `0`, `1`, and
	// `3`. Requests that specify an invalid value are rejected. Any operation that
	// affects conditional role bindings must specify version `3`. This requirement
	// applies to the following operations: * Getting a policy that includes a
	// conditional role binding * Adding a conditional role binding to a policy *
	// Changing a conditional role binding in a policy * Removing any role binding,
	// with or without a condition, from a policy that includes conditions
	// **Important:** If you use IAM Conditions, you must include the `etag` field
	// whenever you call `setIamPolicy`. If you omit this field, then IAM allows
	// you to overwrite a version `3` policy with a version `1` policy, and all of
	// the conditions in the version `3` policy are lost. If a policy does not
	// include any conditions, operations on that policy may specify any valid
	// version or leave the field unset. To learn which resources support
	// conditions in their IAM policies, see the IAM documentation
	// (https://cloud.google.com/iam/help/conditions/resource-policies).
	Version int64 `json:"version,omitempty"`

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

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

// PolicyDriftDetails: The policy field that violates the deployed posture and
// its expected and detected values.
type PolicyDriftDetails struct {
	// DetectedValue: The detected value that violates the deployed posture, for
	// example, `false` or `allowed_values={"projects/22831892"}`.
	DetectedValue string `json:"detectedValue,omitempty"`
	// ExpectedValue: The value of this field that was configured in a posture, for
	// example, `true` or `allowed_values={"projects/29831892"}`.
	ExpectedValue string `json:"expectedValue,omitempty"`
	// Field: The name of the updated field, for example
	// constraint.implementation.policy_rules[0].enforce
	Field string `json:"field,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DetectedValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DetectedValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// PortRange: A port range which is inclusive of the min and max values. Values
// are between 0 and 2^16-1. The max can be equal / must be not smaller than
// the min value. If min and max are equal this indicates that it is a single
// port.
type PortRange struct {
	// Max: Maximum port value.
	Max int64 `json:"max,omitempty,string"`
	// Min: Minimum port value.
	Min int64 `json:"min,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Max") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Max") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Position: A position in the uploaded text version of a module.
type Position struct {
	// ColumnNumber: The column number.
	ColumnNumber int64 `json:"columnNumber,omitempty"`
	// LineNumber: The line number.
	LineNumber int64 `json:"lineNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ColumnNumber") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ColumnNumber") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Process: Represents an operating system process.
type Process struct {
	// Args: Process arguments as JSON encoded strings.
	Args []string `json:"args,omitempty"`
	// ArgumentsTruncated: True if `args` is incomplete.
	ArgumentsTruncated bool `json:"argumentsTruncated,omitempty"`
	// Binary: File information for the process executable.
	Binary *File `json:"binary,omitempty"`
	// EnvVariables: Process environment variables.
	EnvVariables []*EnvironmentVariable `json:"envVariables,omitempty"`
	// EnvVariablesTruncated: True if `env_variables` is incomplete.
	EnvVariablesTruncated bool `json:"envVariablesTruncated,omitempty"`
	// Libraries: File information for libraries loaded by the process.
	Libraries []*File `json:"libraries,omitempty"`
	// Name: The process name, as displayed in utilities like `top` and `ps`. This
	// name can be accessed through `/proc/[pid]/comm` and changed with
	// `prctl(PR_SET_NAME)`.
	Name string `json:"name,omitempty"`
	// ParentPid: The parent process ID.
	ParentPid int64 `json:"parentPid,omitempty,string"`
	// Pid: The process ID.
	Pid int64 `json:"pid,omitempty,string"`
	// Script: When the process represents the invocation of a script, `binary`
	// provides information about the interpreter, while `script` provides
	// information about the script file provided to the interpreter.
	Script *File `json:"script,omitempty"`
	// UserId: The ID of the user that executed the process. E.g. If this is the
	// root user this will always be 0.
	UserId int64 `json:"userId,omitempty,string"`
	// 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 Process) MarshalJSON() ([]byte, error) {
	type NoMethod Process
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ProcessSignature: Indicates what signature matched this process.
type ProcessSignature struct {
	// MemoryHashSignature: Signature indicating that a binary family was matched.
	MemoryHashSignature *MemoryHashSignature `json:"memoryHashSignature,omitempty"`
	// SignatureType: Describes the type of resource associated with the signature.
	//
	// Possible values:
	//   "SIGNATURE_TYPE_UNSPECIFIED" - The default signature type.
	//   "SIGNATURE_TYPE_PROCESS" - Used for signatures concerning processes.
	//   "SIGNATURE_TYPE_FILE" - Used for signatures concerning disks.
	SignatureType string `json:"signatureType,omitempty"`
	// YaraRuleSignature: Signature indicating that a YARA rule was matched.
	YaraRuleSignature *YaraRuleSignature `json:"yaraRuleSignature,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MemoryHashSignature") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MemoryHashSignature") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Reference: Additional Links
type Reference struct {
	// Source: Source of the reference e.g. NVD
	Source string `json:"source,omitempty"`
	// Uri: Uri for the mentioned source e.g.
	// https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Source") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Source") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Requests: Information about the requests relevant to the finding.
type Requests struct {
	// LongTermAllowed: Allowed RPS (requests per second) over the long term.
	LongTermAllowed int64 `json:"longTermAllowed,omitempty"`
	// LongTermDenied: Denied RPS (requests per second) over the long term.
	LongTermDenied int64 `json:"longTermDenied,omitempty"`
	// Ratio: For 'Increasing deny ratio', the ratio is the denied traffic divided
	// by the allowed traffic. For 'Allowed traffic spike', the ratio is the
	// allowed traffic in the short term divided by allowed traffic in the long
	// term.
	Ratio float64 `json:"ratio,omitempty"`
	// ShortTermAllowed: Allowed RPS (requests per second) in the short term.
	ShortTermAllowed int64 `json:"shortTermAllowed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LongTermAllowed") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LongTermAllowed") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// Resource: Information related to the Google Cloud resource that is
// associated with this finding.
type Resource struct {
	// AwsMetadata: The AWS metadata associated with the finding.
	AwsMetadata *AwsMetadata `json:"awsMetadata,omitempty"`
	// AzureMetadata: The Azure metadata associated with the finding.
	AzureMetadata *AzureMetadata `json:"azureMetadata,omitempty"`
	// CloudProvider: Indicates which cloud provider the finding is from.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - The cloud provider is unspecified.
	//   "GOOGLE_CLOUD_PLATFORM" - The cloud provider is Google Cloud.
	//   "AMAZON_WEB_SERVICES" - The cloud provider is Amazon Web Services.
	//   "MICROSOFT_AZURE" - The cloud provider is Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// DisplayName: The human readable name of the resource.
	DisplayName string `json:"displayName,omitempty"`
	// Folders: Contains a Folder message for each folder in the assets ancestry.
	// The first folder is the deepest nested folder, and the last folder is the
	// folder directly under the Organization.
	Folders []*Folder `json:"folders,omitempty"`
	// Location: The region or location of the service (if applicable).
	Location string `json:"location,omitempty"`
	// Name: The full resource name of the resource. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	Name string `json:"name,omitempty"`
	// Organization: Indicates which organization / tenant the finding is for.
	Organization string `json:"organization,omitempty"`
	// ParentDisplayName: The human readable name of resource's parent.
	ParentDisplayName string `json:"parentDisplayName,omitempty"`
	// ParentName: The full resource name of resource's parent.
	ParentName string `json:"parentName,omitempty"`
	// ProjectDisplayName: The project ID that the resource belongs to.
	ProjectDisplayName string `json:"projectDisplayName,omitempty"`
	// ProjectName: The full resource name of project that the resource belongs to.
	ProjectName string `json:"projectName,omitempty"`
	// ResourcePath: Provides the path to the resource within the resource
	// hierarchy.
	ResourcePath *ResourcePath `json:"resourcePath,omitempty"`
	// ResourcePathString: A string representation of the resource path. For Google
	// Cloud, it has the format of
	// `org/{organization_id}/folder/{folder_id}/folder/{folder_id}/project/{project
	// _id}` where there can be any number of folders. For AWS, it has the format
	// of
	// `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id
	// }/account/{account_id}` where there can be any number of organizational
	// units. For Azure, it has the format of
	// `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription
	// _id}/rg/{resource_group_name}` where there can be any number of management
	// groups.
	ResourcePathString string `json:"resourcePathString,omitempty"`
	// Service: The service or resource provider associated with the resource.
	Service string `json:"service,omitempty"`
	// Type: The full resource type of the resource.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AwsMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AwsMetadata") to include in API
	// requests with the JSON null value. By default, fields with empty values 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)
}

// ResourcePath: Represents the path of resources leading up to the resource
// this finding is about.
type ResourcePath struct {
	// Nodes: The list of nodes that make the up resource path, ordered from lowest
	// level to highest level.
	Nodes []*ResourcePathNode `json:"nodes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Nodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ResourcePathNode: A node within the resource path. Each node represents a
// resource within the resource hierarchy.
type ResourcePathNode struct {
	// DisplayName: The display name of the resource this node represents.
	DisplayName string `json:"displayName,omitempty"`
	// Id: The ID of the resource this node represents.
	Id string `json:"id,omitempty"`
	// NodeType: The type of resource this node represents.
	//
	// Possible values:
	//   "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED" - Node type is unspecified.
	//   "GCP_ORGANIZATION" - The node represents a Google Cloud organization.
	//   "GCP_FOLDER" - The node represents a Google Cloud folder.
	//   "GCP_PROJECT" - The node represents a Google Cloud project.
	//   "AWS_ORGANIZATION" - The node represents an AWS organization.
	//   "AWS_ORGANIZATIONAL_UNIT" - The node represents an AWS organizational
	// unit.
	//   "AWS_ACCOUNT" - The node represents an AWS account.
	//   "AZURE_MANAGEMENT_GROUP" - The node represents an Azure management group.
	//   "AZURE_SUBSCRIPTION" - The node represents an Azure subscription.
	//   "AZURE_RESOURCE_GROUP" - The node represents an Azure resource group.
	NodeType string `json:"nodeType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// Role: Kubernetes Role or ClusterRole.
type Role struct {
	// Kind: Role type.
	//
	// Possible values:
	//   "KIND_UNSPECIFIED" - Role type is not specified.
	//   "ROLE" - Kubernetes Role.
	//   "CLUSTER_ROLE" - Kubernetes ClusterRole.
	Kind string `json:"kind,omitempty"`
	// Name: Role name.
	Name string `json:"name,omitempty"`
	// Ns: Role namespace.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RunAssetDiscoveryRequest: Request message for running asset discovery for an
// organization.
type RunAssetDiscoveryRequest struct {
}

// SecurityBulletin: SecurityBulletin are notifications of vulnerabilities of
// Google products.
type SecurityBulletin struct {
	// BulletinId: ID of the bulletin corresponding to the vulnerability.
	BulletinId string `json:"bulletinId,omitempty"`
	// SubmissionTime: Submission time of this Security Bulletin.
	SubmissionTime string `json:"submissionTime,omitempty"`
	// SuggestedUpgradeVersion: This represents a version that the cluster
	// receiving this notification should be upgraded to, based on its current
	// version. For example, 1.15.0
	SuggestedUpgradeVersion string `json:"suggestedUpgradeVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BulletinId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BulletinId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SecurityCenterProperties: Security Command Center managed properties. These
// properties are managed by Security Command Center and cannot be modified by
// the user.
type SecurityCenterProperties struct {
	// Folders: Contains a Folder message for each folder in the assets ancestry.
	// The first folder is the deepest nested folder, and the last folder is the
	// folder directly under the Organization.
	Folders []*Folder `json:"folders,omitempty"`
	// ResourceDisplayName: The user defined display name for this resource.
	ResourceDisplayName string `json:"resourceDisplayName,omitempty"`
	// ResourceName: The full resource name of the Google Cloud resource this asset
	// represents. This field is immutable after create time. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	ResourceName string `json:"resourceName,omitempty"`
	// ResourceOwners: Owners of the Google Cloud resource.
	ResourceOwners []string `json:"resourceOwners,omitempty"`
	// ResourceParent: The full resource name of the immediate parent of the
	// resource. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	ResourceParent string `json:"resourceParent,omitempty"`
	// ResourceParentDisplayName: The user defined display name for the parent of
	// this resource.
	ResourceParentDisplayName string `json:"resourceParentDisplayName,omitempty"`
	// ResourceProject: The full resource name of the project the resource belongs
	// to. See:
	// https://cloud.google.com/apis/design/resource_names#full_resource_name
	ResourceProject string `json:"resourceProject,omitempty"`
	// ResourceProjectDisplayName: The user defined display name for the project of
	// this resource.
	ResourceProjectDisplayName string `json:"resourceProjectDisplayName,omitempty"`
	// ResourceType: The type of the Google Cloud resource. Examples include:
	// APPLICATION, PROJECT, and ORGANIZATION. This is a case insensitive field
	// defined by Security Command Center and/or the producer of the resource and
	// is immutable after create time.
	ResourceType string `json:"resourceType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Folders") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Folders") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SecurityMarks: User specified security marks that are attached to the parent
// Security Command Center resource. Security marks are scoped within a
// Security Command Center organization -- they can be modified and viewed by
// all users who have proper permissions on the organization.
type SecurityMarks struct {
	// CanonicalName: The canonical name of the marks. Examples:
	// "organizations/{organization_id}/assets/{asset_id}/securityMarks"
	// "folders/{folder_id}/assets/{asset_id}/securityMarks"
	// "projects/{project_number}/assets/{asset_id}/securityMarks"
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/se
	// curityMarks"
	// "folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks"
	//
	// "projects/{project_number}/sources/{source_id}/findings/{finding_id}/security
	// Marks"
	CanonicalName string `json:"canonicalName,omitempty"`
	// Marks: Mutable user specified security marks belonging to the parent
	// resource. Constraints are as follows: * Keys and values are treated as case
	// insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys
	// must be letters, numbers, underscores, or dashes * Values have leading and
	// trailing whitespace trimmed, remaining characters must be between 1 - 4096
	// characters (inclusive)
	Marks map[string]string `json:"marks,omitempty"`
	// Name: The relative resource name of the SecurityMarks. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Examples: "organizations/{organization_id}/assets/{asset_id}/securityMarks"
	// "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/se
	// curityMarks".
	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. "CanonicalName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SecurityPolicy: Information about the Google Cloud Armor security policy
// (https://cloud.google.com/armor/docs/security-policy-overview) relevant to
// the finding.
type SecurityPolicy struct {
	// Name: The name of the Google Cloud Armor security policy, for example,
	// "my-security-policy".
	Name string `json:"name,omitempty"`
	// Preview: Whether or not the associated rule or policy is in preview mode.
	Preview bool `json:"preview,omitempty"`
	// Type: The type of Google Cloud Armor security policy for example, 'backend
	// security policy', 'edge security policy', 'network edge security policy', or
	// 'always-on DDoS protection'.
	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 SecurityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPosture: Represents a posture that is deployed on Google Cloud by
// the Security Command Center Posture Management service. A posture contains
// one or more policy sets. A policy set is a group of policies that enforce a
// set of security rules on Google Cloud.
type SecurityPosture struct {
	// ChangedPolicy: The name of the updated policy, for example,
	// `projects/{project_id}/policies/{constraint_name}`.
	ChangedPolicy string `json:"changedPolicy,omitempty"`
	// Name: Name of the posture, for example, `CIS-Posture`.
	Name string `json:"name,omitempty"`
	// Policy: The ID of the updated policy, for example, `compute-policy-1`.
	Policy string `json:"policy,omitempty"`
	// PolicyDriftDetails: The details about a change in an updated policy that
	// violates the deployed posture.
	PolicyDriftDetails []*PolicyDriftDetails `json:"policyDriftDetails,omitempty"`
	// PolicySet: The name of the updated policyset, for example, `cis-policyset`.
	PolicySet string `json:"policySet,omitempty"`
	// PostureDeployment: The name of the posture deployment, for example,
	// `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.
	PostureDeployment string `json:"postureDeployment,omitempty"`
	// PostureDeploymentResource: The project, folder, or organization on which the
	// posture is deployed, for example, `projects/{project_number}`.
	PostureDeploymentResource string `json:"postureDeploymentResource,omitempty"`
	// RevisionId: The version of the posture, for example, `c7cfa2a8`.
	RevisionId string `json:"revisionId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChangedPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChangedPolicy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SensitivityScore: Score is calculated from of all elements in the data
// profile. A higher level means the data is more sensitive.
type SensitivityScore struct {
	// Score: The sensitivity score applied to the resource.
	//
	// Possible values:
	//   "SENSITIVITY_SCORE_LEVEL_UNSPECIFIED" - Unused.
	//   "SENSITIVITY_LOW" - No sensitive information detected. The resource isn't
	// publicly accessible.
	//   "SENSITIVITY_UNKNOWN" - Unable to determine sensitivity.
	//   "SENSITIVITY_MODERATE" - Medium risk. Contains personally identifiable
	// information (PII), potentially sensitive data, or fields with free-text data
	// that are at a higher risk of having intermittent sensitive data. Consider
	// limiting access.
	//   "SENSITIVITY_HIGH" - High risk. Sensitive personally identifiable
	// information (SPII) can be present. Exfiltration of data can lead to user
	// data loss. Re-identification of users might be possible. Consider limiting
	// usage and or removing SPII.
	Score string `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Score") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Score") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ServiceAccountDelegationInfo: Identity delegation history of an
// authenticated service account.
type ServiceAccountDelegationInfo struct {
	// PrincipalEmail: The email address of a Google account.
	PrincipalEmail string `json:"principalEmail,omitempty"`
	// PrincipalSubject: A string representing the principal_subject associated
	// with the identity. As compared to `principal_email`, supports principals
	// that aren't associated with email addresses, such as third party principals.
	// For most identities, the format will be
	// `principal://iam.googleapis.com/{identity pool name}/subjects/{subject}`
	// except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD)
	// that are still in the legacy format `serviceAccount:{identity pool
	// name}[{subject}]`
	PrincipalSubject string `json:"principalSubject,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PrincipalEmail") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PrincipalEmail") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SetFindingStateRequest: Request message for updating a finding's state.
type SetFindingStateRequest struct {
	// StartTime: Optional. The time at which the updated state takes effect. If
	// unset, defaults to the request time.
	StartTime string `json:"startTime,omitempty"`
	// State: Required. The desired State of the finding.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unspecified state.
	//   "ACTIVE" - The finding requires attention and has not been addressed yet.
	//   "INACTIVE" - The finding has been fixed, triaged as a non-issue or
	// otherwise addressed and is no longer active.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StartTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StartTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SetIamPolicyRequest: Request message for `SetIamPolicy` method.
type SetIamPolicyRequest struct {
	// Policy: REQUIRED: The complete policy to be applied to the `resource`. The
	// size of the policy is limited to a few 10s of KB. An empty policy is a valid
	// policy but certain Google Cloud services (such as Projects) might reject
	// them.
	Policy *Policy `json:"policy,omitempty"`
	// UpdateMask: OPTIONAL: A FieldMask specifying which fields of the policy to
	// modify. Only the fields in the mask will be modified. If no mask is
	// provided, the following default mask is used: `paths: "bindings, etag"
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Policy") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Policy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SetMuteRequest: Request message for updating a finding's mute status.
type SetMuteRequest struct {
	// Mute: Required. The desired state of the Mute.
	//
	// Possible values:
	//   "MUTE_UNSPECIFIED" - Unspecified.
	//   "MUTED" - Finding has been muted.
	//   "UNMUTED" - Finding has been unmuted.
	//   "UNDEFINED" - Finding has never been muted/unmuted.
	Mute string `json:"mute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mute") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mute") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SimulateSecurityHealthAnalyticsCustomModuleRequest: Request message to
// simulate a CustomConfig against a given test resource. Maximum size of the
// request is 4 MB by default.
type SimulateSecurityHealthAnalyticsCustomModuleRequest struct {
	// CustomConfig: Required. The custom configuration that you need to test.
	CustomConfig *GoogleCloudSecuritycenterV1CustomConfig `json:"customConfig,omitempty"`
	// Resource: Required. Resource data to simulate custom module against.
	Resource *SimulatedResource `json:"resource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SimulateSecurityHealthAnalyticsCustomModuleResponse: Response message for
// simulating a `SecurityHealthAnalyticsCustomModule` against a given resource.
type SimulateSecurityHealthAnalyticsCustomModuleResponse struct {
	// Result: Result for test case in the corresponding request.
	Result *SimulatedResult `json:"result,omitempty"`

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

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

// SimulatedResource: Manually constructed resource name. If the custom module
// evaluates against only the resource data, you can omit the `iam_policy_data`
// field. If it evaluates only the `iam_policy_data` field, you can omit the
// resource data.
type SimulatedResource struct {
	// IamPolicyData: Optional. A representation of the IAM policy.
	IamPolicyData *Policy `json:"iamPolicyData,omitempty"`
	// ResourceData: Optional. A representation of the Google Cloud resource.
	// Should match the Google Cloud resource JSON format.
	ResourceData googleapi.RawMessage `json:"resourceData,omitempty"`
	// ResourceType: Required. The type of the resource, for example,
	// `compute.googleapis.com/Disk`.
	ResourceType string `json:"resourceType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IamPolicyData") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IamPolicyData") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SimulatedResult: Possible test result.
type SimulatedResult struct {
	// Error: Error encountered during the test.
	Error *Status `json:"error,omitempty"`
	// Finding: Finding that would be published for the test case, if a violation
	// is detected.
	Finding *Finding `json:"finding,omitempty"`
	// NoViolation: Indicates that the test case does not trigger any violation.
	NoViolation *Empty `json:"noViolation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Error") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Simulation: Attack path simulation
type Simulation struct {
	// CloudProvider: Indicates which cloud provider was used in this simulation.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - The cloud provider is unspecified.
	//   "GOOGLE_CLOUD_PLATFORM" - The cloud provider is Google Cloud.
	//   "AMAZON_WEB_SERVICES" - The cloud provider is Amazon Web Services.
	//   "MICROSOFT_AZURE" - The cloud provider is Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// CreateTime: Output only. Time simulation was created
	CreateTime string `json:"createTime,omitempty"`
	// Name: Full resource name of the Simulation:
	// `organizations/123/simulations/456`
	Name string `json:"name,omitempty"`
	// ResourceValueConfigsMetadata: Resource value configurations' metadata used
	// in this simulation. Maximum of 100.
	ResourceValueConfigsMetadata []*ResourceValueConfigMetadata `json:"resourceValueConfigsMetadata,omitempty"`

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

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

// Source: Security Command Center finding source. A finding source is an
// entity or a mechanism that can produce a finding. A source is like a
// container of findings that come from the same scanner, logger, monitor, and
// other tools.
type Source struct {
	// CanonicalName: The canonical name of the finding source. It's either
	// "organizations/{organization_id}/sources/{source_id}",
	// "folders/{folder_id}/sources/{source_id}", or
	// "projects/{project_number}/sources/{source_id}", depending on the closest
	// CRM ancestor of the resource associated with the finding.
	CanonicalName string `json:"canonicalName,omitempty"`
	// Description: The description of the source (max of 1024 characters).
	// Example: "Web Security Scanner is a web security scanner for common
	// vulnerabilities in App Engine applications. It can automatically scan and
	// detect four common vulnerabilities, including cross-site-scripting (XSS),
	// Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure
	// libraries."
	Description string `json:"description,omitempty"`
	// DisplayName: The source's display name. A source's display name must be
	// unique amongst its siblings, for example, two sources with the same parent
	// can't share the same display name. The display name must have a length
	// between 1 and 64 characters (inclusive).
	DisplayName string `json:"displayName,omitempty"`
	// Name: The relative resource name of this source. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Example: "organizations/{organization_id}/sources/{source_id}"
	Name string `json:"name,omitempty"`

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

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

// StaticMute: Information about the static mute state. A static mute state
// overrides any dynamic mute rules that apply to this finding. The static mute
// state can be set by a static mute rule or by muting the finding directly.
type StaticMute struct {
	// ApplyTime: When the static mute was applied.
	ApplyTime string `json:"applyTime,omitempty"`
	// State: The static mute state. If the value is `MUTED` or `UNMUTED`, then the
	// finding's overall mute state will have the same value.
	//
	// Possible values:
	//   "MUTE_UNSPECIFIED" - Unspecified.
	//   "MUTED" - Finding has been muted.
	//   "UNMUTED" - Finding has been unmuted.
	//   "UNDEFINED" - Finding has never been muted/unmuted.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplyTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplyTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// StreamingConfig: The config for streaming-based notifications, which send
// each event as soon as it is detected.
type StreamingConfig struct {
	// Filter: Expression that defines the filter to apply across create/update
	// events of assets or findings as specified by the event type. The expression
	// is a list of zero or more restrictions combined via logical operators `AND`
	// and `OR`. Parentheses are supported, and `OR` has higher precedence than
	// `AND`. Restrictions have the form ` ` and may have a `-` character in front
	// of them to indicate negation. The fields map to those defined in the
	// corresponding resource. The supported operators are: * `=` for all value
	// types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring
	// matching, for strings. The supported value types are: * string literals in
	// quotes. * integer literals without quotes. * boolean literals `true` and
	// `false` without quotes.
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Filter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Subject: Represents a Kubernetes subject.
type Subject struct {
	// Kind: Authentication type for the subject.
	//
	// Possible values:
	//   "AUTH_TYPE_UNSPECIFIED" - Authentication is not specified.
	//   "USER" - User with valid certificate.
	//   "SERVICEACCOUNT" - Users managed by Kubernetes API with credentials stored
	// as secrets.
	//   "GROUP" - Collection of users.
	Kind string `json:"kind,omitempty"`
	// Name: Name for the subject.
	Name string `json:"name,omitempty"`
	// Ns: Namespace for the subject.
	Ns string `json:"ns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TestIamPermissionsRequest: Request message for `TestIamPermissions` method.
type TestIamPermissionsRequest struct {
	// Permissions: The set of permissions to check for the `resource`. Permissions
	// with wildcards (such as `*` or `storage.*`) are not allowed. For more
	// information see IAM Overview
	// (https://cloud.google.com/iam/docs/overview#permissions).
	Permissions []string `json:"permissions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Permissions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Permissions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TestIamPermissionsResponse: Response message for `TestIamPermissions`
// method.
type TestIamPermissionsResponse struct {
	// Permissions: A subset of `TestPermissionsRequest.permissions` that the
	// caller is allowed.
	Permissions []string `json:"permissions,omitempty"`

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

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

// TicketInfo: Information about the ticket, if any, that is being used to
// track the resolution of the issue that is identified by this finding.
type TicketInfo struct {
	// Assignee: The assignee of the ticket in the ticket system.
	Assignee string `json:"assignee,omitempty"`
	// Description: The description of the ticket in the ticket system.
	Description string `json:"description,omitempty"`
	// Id: The identifier of the ticket in the ticket system.
	Id string `json:"id,omitempty"`
	// Status: The latest status of the ticket, as reported by the ticket system.
	Status string `json:"status,omitempty"`
	// UpdateTime: The time when the ticket was last updated, as reported by the
	// ticket system.
	UpdateTime string `json:"updateTime,omitempty"`
	// Uri: The link to the ticket in the ticket system.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Assignee") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Assignee") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ToxicCombination: Contains details about a group of security issues that,
// when the issues occur together, represent a greater risk than when the
// issues occur independently. A group of such issues is referred to as a toxic
// combination.
type ToxicCombination struct {
	// AttackExposureScore: The Attack exposure score
	// (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores)
	// of this toxic combination. The score is a measure of how much this toxic
	// combination exposes one or more high-value resources to potential attack.
	AttackExposureScore float64 `json:"attackExposureScore,omitempty"`
	// RelatedFindings: List of resource names of findings associated with this
	// toxic combination. For example,
	// `organizations/123/sources/456/findings/789`.
	RelatedFindings []string `json:"relatedFindings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttackExposureScore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttackExposureScore") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// ValidateEventThreatDetectionCustomModuleRequest: Request to validate an
// Event Threat Detection custom module.
type ValidateEventThreatDetectionCustomModuleRequest struct {
	// RawText: Required. The raw text of the module's contents. Used to generate
	// error messages.
	RawText string `json:"rawText,omitempty"`
	// Type: Required. The type of the module (e.g. CONFIGURABLE_BAD_IP).
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RawText") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RawText") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ValidateEventThreatDetectionCustomModuleResponse: Response to validating an
// Event Threat Detection custom module.
type ValidateEventThreatDetectionCustomModuleResponse struct {
	// Errors: A list of errors returned by the validator. If the list is empty,
	// there were no errors.
	Errors *CustomModuleValidationErrors `json:"errors,omitempty"`

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

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

// ValuedResource: A resource that is determined to have value to a user's
// system
type ValuedResource struct {
	// DisplayName: Human-readable name of the valued resource.
	DisplayName string `json:"displayName,omitempty"`
	// ExposedScore: Exposed score for this valued resource. A value of 0 means no
	// exposure was detected exposure.
	ExposedScore float64 `json:"exposedScore,omitempty"`
	// Name: Valued resource name, for example, e.g.:
	// `organizations/123/simulations/456/valuedResources/789`
	Name string `json:"name,omitempty"`
	// Resource: The full resource name
	// (https://cloud.google.com/apis/design/resource_names#full_resource_name) of
	// the valued resource.
	Resource string `json:"resource,omitempty"`
	// ResourceType: The resource type
	// (https://cloud.google.com/asset-inventory/docs/supported-asset-types) of the
	// valued resource.
	ResourceType string `json:"resourceType,omitempty"`
	// ResourceValue: How valuable this resource is.
	//
	// Possible values:
	//   "RESOURCE_VALUE_UNSPECIFIED" - The resource value isn't specified.
	//   "RESOURCE_VALUE_LOW" - This is a low-value resource.
	//   "RESOURCE_VALUE_MEDIUM" - This is a medium-value resource.
	//   "RESOURCE_VALUE_HIGH" - This is a high-value resource.
	ResourceValue string `json:"resourceValue,omitempty"`
	// ResourceValueConfigsUsed: List of resource value configurations' metadata
	// used to determine the value of this resource. Maximum of 100.
	ResourceValueConfigsUsed []*ResourceValueConfigMetadata `json:"resourceValueConfigsUsed,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 ValuedResource) MarshalJSON() ([]byte, error) {
	type NoMethod ValuedResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

// VertexAi: Vertex AI-related information associated with the finding.
type VertexAi struct {
	// Datasets: Datasets associated with the finding.
	Datasets []*Dataset `json:"datasets,omitempty"`
	// Pipelines: Pipelines associated with the finding.
	Pipelines []*Pipeline `json:"pipelines,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Datasets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Datasets") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Vulnerability: Refers to common vulnerability fields e.g. cve, cvss, cwe
// etc.
type Vulnerability struct {
	// Cve: CVE stands for Common Vulnerabilities and Exposures
	// (https://cve.mitre.org/about/)
	Cve *Cve `json:"cve,omitempty"`
	// Cwes: Represents one or more Common Weakness Enumeration (CWE) information
	// on this vulnerability.
	Cwes []*Cwe `json:"cwes,omitempty"`
	// FixedPackage: The fixed package is relevant to the finding.
	FixedPackage *Package `json:"fixedPackage,omitempty"`
	// OffendingPackage: The offending package is relevant to the finding.
	OffendingPackage *Package `json:"offendingPackage,omitempty"`
	// ProviderRiskScore: Provider provided risk_score based on multiple factors.
	// The higher the risk score, the more risky the vulnerability is.
	ProviderRiskScore int64 `json:"providerRiskScore,omitempty,string"`
	// Reachable: Represents whether the vulnerability is reachable (detected via
	// static analysis)
	Reachable bool `json:"reachable,omitempty"`
	// SecurityBulletin: The security bulletin is relevant to this finding.
	SecurityBulletin *SecurityBulletin `json:"securityBulletin,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cve") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cve") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// VulnerabilityCountBySeverity: Vulnerability count by severity.
type VulnerabilityCountBySeverity struct {
	// SeverityToFindingCount: Key is the Severity enum.
	SeverityToFindingCount map[string]string `json:"severityToFindingCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SeverityToFindingCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SeverityToFindingCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// VulnerabilitySnapshot: Result containing the properties and count of a
// VulnerabilitySnapshot request.
type VulnerabilitySnapshot struct {
	// CloudProvider: The cloud provider for the vulnerability snapshot.
	//
	// Possible values:
	//   "CLOUD_PROVIDER_UNSPECIFIED" - The cloud provider is unspecified.
	//   "GOOGLE_CLOUD_PLATFORM" - The cloud provider is Google Cloud.
	//   "AMAZON_WEB_SERVICES" - The cloud provider is Amazon Web Services.
	//   "MICROSOFT_AZURE" - The cloud provider is Microsoft Azure.
	CloudProvider string `json:"cloudProvider,omitempty"`
	// FindingCount: The vulnerability count by severity.
	FindingCount *VulnerabilityCountBySeverity `json:"findingCount,omitempty"`
	// Name: Identifier. The vulnerability snapshot name. Format:
	// //locations//vulnerabilitySnapshots/
	Name string `json:"name,omitempty"`
	// SnapshotTime: The time that the snapshot was taken.
	SnapshotTime string `json:"snapshotTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudProvider") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudProvider") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

type FoldersAssetsGroupCall struct {
	s                  *Service
	parent             string
	groupassetsrequest *GroupAssetsRequest
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// Group: Filters an organization's assets and groups them by their specified
// properties.
//
//   - parent: The name of the parent to group the assets by. Its format is
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *FoldersAssetsService) Group(parent string, groupassetsrequest *GroupAssetsRequest) *FoldersAssetsGroupCall {
	c := &FoldersAssetsGroupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.groupassetsrequest = groupassetsrequest
	return c
}

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

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

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

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

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

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

// List: Lists an organization's assets.
//
//   - parent: The name of the parent resource that contains the assets. The
//     value that you can specify on parent depends on the method in which you
//     specify parent. You can specify one of the following values:
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *FoldersAssetsService) List(parent string) *FoldersAssetsListCall {
	c := &FoldersAssetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// CompareDuration sets the optional parameter "compareDuration": When
// compare_duration is set, the ListAssetsResult's "state_change" attribute is
// updated to indicate whether the asset was added, removed, or remained
// present during the compare_duration period of time that precedes the
// read_time. This is the time between (read_time - compare_duration) and
// read_time. The state_change value is derived based on the presence of the
// asset at the two points in time. Intermediate state changes between the two
// times don't affect the result. For example, the results aren't affected if
// the asset is removed and re-created again. Possible "state_change" values
// when compare_duration is specified: * "ADDED": indicates that the asset was
// not present at the start of compare_duration, but present at read_time. *
// "REMOVED": indicates that the asset was present at the start of
// compare_duration, but not present at read_time. * "ACTIVE": indicates that
// the asset was present at both the start and the end of the time period
// defined by compare_duration and read_time. If compare_duration is not
// specified, then the only possible state_change is "UNUSED", which will be
// the state_change set for all assets present at read_time.
func (c *FoldersAssetsListCall) CompareDuration(compareDuration string) *FoldersAssetsListCall {
	c.urlParams_.Set("compareDuration", compareDuration)
	return c
}

// FieldMask sets the optional parameter "fieldMask": A field mask to specify
// the ListAssetsResult fields to be listed in the response. An empty field
// mask will list all fields.
func (c *FoldersAssetsListCall) FieldMask(fieldMask string) *FoldersAssetsListCall {
	c.urlParams_.Set("fieldMask", fieldMask)
	return c
}

// Filter sets the optional parameter "filter": Expression that defines the
// filter to apply across assets. The expression is a list of zero or more
// restrictions combined via logical operators `AND` and `OR`. Parentheses are
// supported, and `OR` has higher precedence than `AND`. Restrictions have the
// form ` ` and may have a `-` character in front of them to indicate negation.
// The fields map to those defined in the Asset resource. Examples include: *
// name * security_center_properties.resource_name *
// resource_properties.a_property * security_marks.marks.marka The supported
// operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer
// values. * `:`, meaning substring matching, for strings. The supported value
// types are: * string literals in quotes. * integer literals without quotes. *
// boolean literals `true` and `false` without quotes. The following are the
// allowed field and operator combinations: * name: `=` * update_time: `=`,
// `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an
// RFC3339 string. Examples: `update_time = "2019-06-10T16:07:18-07:00"
// `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=`
// Usage: This should be milliseconds since epoch or an RFC3339 string.
// Examples: `create_time = "2019-06-10T16:07:18-07:00" `create_time =
// 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties:
// `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` *
// security_center_properties.resource_name: `=`, `:` *
// security_center_properties.resource_display_name: `=`, `:` *
// security_center_properties.resource_type: `=`, `:` *
// security_center_properties.resource_parent: `=`, `:` *
// security_center_properties.resource_parent_display_name: `=`, `:` *
// security_center_properties.resource_project: `=`, `:` *
// security_center_properties.resource_project_display_name: `=`, `:` *
// security_center_properties.resource_owners: `=`, `:` For example,
// `resource_properties.size = 100` is a valid filter string. Use a partial
// match on the empty string to filter based on a property existing:
// `resource_properties.my_property : "" Use a negated partial match on the
// empty string to filter based on a property not existing:
// `-resource_properties.my_property : ""
func (c *FoldersAssetsListCall) Filter(filter string) *FoldersAssetsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Expression that defines what
// fields and order to use for sorting. The string value should follow SQL
// syntax: comma separated list of fields. For example:
// "name,resource_properties.a_property". The default sorting order is
// ascending. To specify descending order for a field, a suffix " desc" should
// be appended to the field name. For example: "name
// desc,resource_properties.a_property". Redundant space characters in the
// syntax are insignificant. "name desc,resource_properties.a_property" and "
// name desc , resource_properties.a_property " are equivalent. The following
// fields are supported: name update_time resource_properties
// security_marks.marks security_center_properties.resource_name
// security_center_properties.resource_display_name
// security_center_properties.resource_parent
// security_center_properties.resource_parent_display_name
// security_center_properties.resource_project
// security_center_properties.resource_project_display_name
// security_center_properties.resource_type
func (c *FoldersAssetsListCall) OrderBy(orderBy string) *FoldersAssetsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *FoldersAssetsListCall) PageSize(pageSize int64) *FoldersAssetsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListAssetsResponse`; indicates that this is a continuation of a prior
// `ListAssets` call, and that the system should return the next page of data.
func (c *FoldersAssetsListCall) PageToken(pageToken string) *FoldersAssetsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReadTime sets the optional parameter "readTime": Time used as a reference
// point when filtering assets. The filter is limited to assets existing at the
// supplied time and their values are those at that specific time. Absence of
// this field will default to the API's version of NOW.
func (c *FoldersAssetsListCall) ReadTime(readTime string) *FoldersAssetsListCall {
	c.urlParams_.Set("readTime", readTime)
	return c
}

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

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

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

func (c *FoldersAssetsListCall) 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}/assets")
	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", "securitycenter.folders.assets.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// UpdateSecurityMarks: Updates security marks.
//
//   - name: The relative resource name of the SecurityMarks. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Examples:
//     "organizations/{organization_id}/assets/{asset_id}/securityMarks"
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/
//     securityMarks".
func (r *FoldersAssetsService) UpdateSecurityMarks(name string, securitymarks *SecurityMarks) *FoldersAssetsUpdateSecurityMarksCall {
	c := &FoldersAssetsUpdateSecurityMarksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.securitymarks = securitymarks
	return c
}

// StartTime sets the optional parameter "startTime": The time at which the
// updated SecurityMarks take effect. If not set uses current server time.
// Updates will be applied to the SecurityMarks that are active immediately
// preceding this time. Must be earlier or equal to the server time.
func (c *FoldersAssetsUpdateSecurityMarksCall) StartTime(startTime string) *FoldersAssetsUpdateSecurityMarksCall {
	c.urlParams_.Set("startTime", startTime)
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the security marks resource. The field mask must not contain
// duplicate fields. If empty or set to "marks", all marks will be replaced.
// Individual marks can be updated using "marks.".
func (c *FoldersAssetsUpdateSecurityMarksCall) UpdateMask(updateMask string) *FoldersAssetsUpdateSecurityMarksCall {
	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 *FoldersAssetsUpdateSecurityMarksCall) Fields(s ...googleapi.Field) *FoldersAssetsUpdateSecurityMarksCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersAssetsUpdateSecurityMarksCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitymarks)
	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", "securitycenter.folders.assets.updateSecurityMarks", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type FoldersBigQueryExportsCreateCall struct {
	s                                         *Service
	parent                                    string
	googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Create: Creates a BigQuery export.
//
//   - parent: The name of the parent resource of the new BigQuery export. Its
//     format is `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *FoldersBigQueryExportsService) Create(parent string, googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport) *FoldersBigQueryExportsCreateCall {
	c := &FoldersBigQueryExportsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1bigqueryexport = googlecloudsecuritycenterv1bigqueryexport
	return c
}

// BigQueryExportId sets the optional parameter "bigQueryExportId": Required.
// Unique identifier provided by the client within the parent scope. It must
// consist of only lowercase letters, numbers, and hyphens, must start with a
// letter, must end with either a letter or a number, and must be 63 characters
// or less.
func (c *FoldersBigQueryExportsCreateCall) BigQueryExportId(bigQueryExportId string) *FoldersBigQueryExportsCreateCall {
	c.urlParams_.Set("bigQueryExportId", bigQueryExportId)
	return c
}

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

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

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

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

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

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

// Delete: Deletes an existing BigQuery export.
//
//   - name: The name of the BigQuery export to delete. Its format is
//     `organizations/{organization}/bigQueryExports/{export_id}`,
//     `folders/{folder}/bigQueryExports/{export_id}`, or
//     `projects/{project}/bigQueryExports/{export_id}`.
func (r *FoldersBigQueryExportsService) Delete(name string) *FoldersBigQueryExportsDeleteCall {
	c := &FoldersBigQueryExportsDeleteCall{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 *FoldersBigQueryExportsDeleteCall) Fields(s ...googleapi.Field) *FoldersBigQueryExportsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersBigQueryExportsDeleteCall) 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", "securitycenter.folders.bigQueryExports.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.folders.bigQueryExports.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 *FoldersBigQueryExportsDeleteCall) 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", "securitycenter.folders.bigQueryExports.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a BigQuery export.
//
//   - name: Name of the BigQuery export to retrieve. Its format is
//     `organizations/{organization}/bigQueryExports/{export_id}`,
//     `folders/{folder}/bigQueryExports/{export_id}`, or
//     `projects/{project}/bigQueryExports/{export_id}`.
func (r *FoldersBigQueryExportsService) Get(name string) *FoldersBigQueryExportsGetCall {
	c := &FoldersBigQueryExportsGetCall{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 *FoldersBigQueryExportsGetCall) Fields(s ...googleapi.Field) *FoldersBigQueryExportsGetCall {
	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 *FoldersBigQueryExportsGetCall) IfNoneMatch(entityTag string) *FoldersBigQueryExportsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersBigQueryExportsGetCall) 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", "securitycenter.folders.bigQueryExports.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists BigQuery exports. Note that when requesting BigQuery exports at
// a given level all exports under that level are also returned e.g. if
// requesting BigQuery exports under a folder, then all BigQuery exports
// immediately under the folder plus the ones created under the projects within
// the folder are returned.
//
//   - parent: The parent, which owns the collection of BigQuery exports. Its
//     format is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *FoldersBigQueryExportsService) List(parent string) *FoldersBigQueryExportsListCall {
	c := &FoldersBigQueryExportsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// configs to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *FoldersBigQueryExportsListCall) PageSize(pageSize int64) *FoldersBigQueryExportsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListBigQueryExports` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListBigQueryExports` must match the call that provided the page token.
func (c *FoldersBigQueryExportsListCall) PageToken(pageToken string) *FoldersBigQueryExportsListCall {
	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 *FoldersBigQueryExportsListCall) Fields(s ...googleapi.Field) *FoldersBigQueryExportsListCall {
	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 *FoldersBigQueryExportsListCall) IfNoneMatch(entityTag string) *FoldersBigQueryExportsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersBigQueryExportsListCall) 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}/bigQueryExports")
	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", "securitycenter.folders.bigQueryExports.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates a BigQuery export.
//
//   - name: The relative resource name of this export. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name.
//     Example format:
//     "organizations/{organization_id}/bigQueryExports/{export_id}" Example
//     format: "folders/{folder_id}/bigQueryExports/{export_id}" Example format:
//     "projects/{project_id}/bigQueryExports/{export_id}" This field is provided
//     in responses, and is ignored when provided in create requests.
func (r *FoldersBigQueryExportsService) Patch(name string, googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport) *FoldersBigQueryExportsPatchCall {
	c := &FoldersBigQueryExportsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1bigqueryexport = googlecloudsecuritycenterv1bigqueryexport
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *FoldersBigQueryExportsPatchCall) UpdateMask(updateMask string) *FoldersBigQueryExportsPatchCall {
	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 *FoldersBigQueryExportsPatchCall) Fields(s ...googleapi.Field) *FoldersBigQueryExportsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersBigQueryExportsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1bigqueryexport)
	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", "securitycenter.folders.bigQueryExports.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type FoldersEventThreatDetectionSettingsValidateCustomModuleCall struct {
	s                                               *Service
	parent                                          string
	validateeventthreatdetectioncustommodulerequest *ValidateEventThreatDetectionCustomModuleRequest
	urlParams_                                      gensupport.URLParams
	ctx_                                            context.Context
	header_                                         http.Header
}

// ValidateCustomModule: Validates the given Event Threat Detection custom
// module.
//
//   - parent: Resource name of the parent to validate the Custom Module under.
//     Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *FoldersEventThreatDetectionSettingsService) ValidateCustomModule(parent string, validateeventthreatdetectioncustommodulerequest *ValidateEventThreatDetectionCustomModuleRequest) *FoldersEventThreatDetectionSettingsValidateCustomModuleCall {
	c := &FoldersEventThreatDetectionSettingsValidateCustomModuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.validateeventthreatdetectioncustommodulerequest = validateeventthreatdetectioncustommodulerequest
	return c
}

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

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

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

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

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

type FoldersEventThreatDetectionSettingsCustomModulesCreateCall struct {
	s                                *Service
	parent                           string
	eventthreatdetectioncustommodule *EventThreatDetectionCustomModule
	urlParams_                       gensupport.URLParams
	ctx_                             context.Context
	header_                          http.Header
}

// Create: Creates a resident Event Threat Detection custom module at the scope
// of the given Resource Manager parent, and also creates inherited custom
// modules for all descendants of the given parent. These modules are enabled
// by default.
//
//   - parent: The new custom module's parent. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *FoldersEventThreatDetectionSettingsCustomModulesService) Create(parent string, eventthreatdetectioncustommodule *EventThreatDetectionCustomModule) *FoldersEventThreatDetectionSettingsCustomModulesCreateCall {
	c := &FoldersEventThreatDetectionSettingsCustomModulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.eventthreatdetectioncustommodule = eventthreatdetectioncustommodule
	return c
}

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

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

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

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

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

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

// Delete: Deletes the specified Event Threat Detection custom module and all
// of its descendants in the Resource Manager hierarchy. This method is only
// supported for resident custom modules.
//
//   - name: Name of the custom module to delete. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *FoldersEventThreatDetectionSettingsCustomModulesService) Delete(name string) *FoldersEventThreatDetectionSettingsCustomModulesDeleteCall {
	c := &FoldersEventThreatDetectionSettingsCustomModulesDeleteCall{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 *FoldersEventThreatDetectionSettingsCustomModulesDeleteCall) Fields(s ...googleapi.Field) *FoldersEventThreatDetectionSettingsCustomModulesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersEventThreatDetectionSettingsCustomModulesDeleteCall) 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", "securitycenter.folders.eventThreatDetectionSettings.customModules.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.folders.eventThreatDetectionSettings.customModules.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 *FoldersEventThreatDetectionSettingsCustomModulesDeleteCall) 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", "securitycenter.folders.eventThreatDetectionSettings.customModules.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets an Event Threat Detection custom module.
//
//   - name: Name of the custom module to get. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *FoldersEventThreatDetectionSettingsCustomModulesService) Get(name string) *FoldersEventThreatDetectionSettingsCustomModulesGetCall {
	c := &FoldersEventThreatDetectionSettingsCustomModulesGetCall{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 *FoldersEventThreatDetectionSettingsCustomModulesGetCall) Fields(s ...googleapi.Field) *FoldersEventThreatDetectionSettingsCustomModulesGetCall {
	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 *FoldersEventThreatDetectionSettingsCustomModulesGetCall) IfNoneMatch(entityTag string) *FoldersEventThreatDetectionSettingsCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersEventThreatDetectionSettingsCustomModulesGetCall) 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", "securitycenter.folders.eventThreatDetectionSettings.customModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists all Event Threat Detection custom modules for the given Resource
// Manager parent. This includes resident modules defined at the scope of the
// parent along with modules inherited from ancestors.
//
//   - parent: Name of the parent to list custom modules under. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *FoldersEventThreatDetectionSettingsCustomModulesService) List(parent string) *FoldersEventThreatDetectionSettingsCustomModulesListCall {
	c := &FoldersEventThreatDetectionSettingsCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *FoldersEventThreatDetectionSettingsCustomModulesListCall) PageSize(pageSize int64) *FoldersEventThreatDetectionSettingsCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListEventThreatDetectionCustomModules` call. Provide this
// to retrieve the subsequent page. When paginating, all other parameters
// provided to `ListEventThreatDetectionCustomModules` must match the call that
// provided the page token.
func (c *FoldersEventThreatDetectionSettingsCustomModulesListCall) PageToken(pageToken string) *FoldersEventThreatDetectionSettingsCustomModulesListCall {
	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 *FoldersEventThreatDetectionSettingsCustomModulesListCall) Fields(s ...googleapi.Field) *FoldersEventThreatDetectionSettingsCustomModulesListCall {
	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 *FoldersEventThreatDetectionSettingsCustomModulesListCall) IfNoneMatch(entityTag string) *FoldersEventThreatDetectionSettingsCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersEventThreatDetectionSettingsCustomModulesListCall) 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}/customModules")
	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", "securitycenter.folders.eventThreatDetectionSettings.customModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// ListDescendant: Lists all resident Event Threat Detection custom modules
// under the given Resource Manager parent and its descendants.
//
//   - parent: Name of the parent to list custom modules under. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *FoldersEventThreatDetectionSettingsCustomModulesService) ListDescendant(parent string) *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c := &FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall) PageSize(pageSize int64) *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListDescendantEventThreatDetectionCustomModules` call.
// Provide this to retrieve the subsequent page. When paginating, all other
// parameters provided to `ListDescendantEventThreatDetectionCustomModules`
// must match the call that provided the page token.
func (c *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall) PageToken(pageToken string) *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall {
	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 *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall) Fields(s ...googleapi.Field) *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall {
	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 *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall) IfNoneMatch(entityTag string) *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersEventThreatDetectionSettingsCustomModulesListDescendantCall) 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}/customModules:listDescendant")
	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", "securitycenter.folders.eventThreatDetectionSettings.customModules.listDescendant", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates the Event Threat Detection custom module with the given name
// based on the given update mask. Updating the enablement state is supported
// for both resident and inherited modules (though resident modules cannot have
// an enablement state of "inherited"). Updating the display name or
// configuration of a module is supported for resident modules only. The type
// of a module cannot be changed.
//
//   - name: Immutable. The resource name of the Event Threat Detection custom
//     module. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *FoldersEventThreatDetectionSettingsCustomModulesService) Patch(name string, eventthreatdetectioncustommodule *EventThreatDetectionCustomModule) *FoldersEventThreatDetectionSettingsCustomModulesPatchCall {
	c := &FoldersEventThreatDetectionSettingsCustomModulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.eventthreatdetectioncustommodule = eventthreatdetectioncustommodule
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *FoldersEventThreatDetectionSettingsCustomModulesPatchCall) UpdateMask(updateMask string) *FoldersEventThreatDetectionSettingsCustomModulesPatchCall {
	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 *FoldersEventThreatDetectionSettingsCustomModulesPatchCall) Fields(s ...googleapi.Field) *FoldersEventThreatDetectionSettingsCustomModulesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersEventThreatDetectionSettingsCustomModulesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.eventthreatdetectioncustommodule)
	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", "securitycenter.folders.eventThreatDetectionSettings.customModules.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// Get: Gets an effective Event Threat Detection custom module at the given
// level.
//
//   - name: The resource name of the effective Event Threat Detection custom
//     module. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomM
//     odules/{module}`. *
//     `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{modu
//     le}`. *
//     `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{mo
//     dule}`.
func (r *FoldersEventThreatDetectionSettingsEffectiveCustomModulesService) Get(name string) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	c := &FoldersEventThreatDetectionSettingsEffectiveCustomModulesGetCall{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 *FoldersEventThreatDetectionSettingsEffectiveCustomModulesGetCall) Fields(s ...googleapi.Field) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	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 *FoldersEventThreatDetectionSettingsEffectiveCustomModulesGetCall) IfNoneMatch(entityTag string) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersEventThreatDetectionSettingsEffectiveCustomModulesGetCall) 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", "securitycenter.folders.eventThreatDetectionSettings.effectiveCustomModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists all effective Event Threat Detection custom modules for the
// given parent. This includes resident modules defined at the scope of the
// parent along with modules inherited from its ancestors.
//
//   - parent: Name of the parent to list custom modules for. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *FoldersEventThreatDetectionSettingsEffectiveCustomModulesService) List(parent string) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c := &FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall) PageSize(pageSize int64) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListEffectiveEventThreatDetectionCustomModules` call.
// Provide this to retrieve the subsequent page. When paginating, all other
// parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must
// match the call that provided the page token.
func (c *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall) PageToken(pageToken string) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	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 *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall) Fields(s ...googleapi.Field) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	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 *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall) IfNoneMatch(entityTag string) *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersEventThreatDetectionSettingsEffectiveCustomModulesListCall) 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}/effectiveCustomModules")
	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", "securitycenter.folders.eventThreatDetectionSettings.effectiveCustomModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// BulkMute: Kicks off an LRO to bulk mute findings for a parent based on a
// filter. The parent can be either an organization, folder or project. The
// findings matched by the filter will be muted after the LRO is done.
//
//   - parent: The parent, at which bulk action needs to be applied. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *FoldersFindingsService) BulkMute(parent string, bulkmutefindingsrequest *BulkMuteFindingsRequest) *FoldersFindingsBulkMuteCall {
	c := &FoldersFindingsBulkMuteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.bulkmutefindingsrequest = bulkmutefindingsrequest
	return c
}

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

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

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

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

// Do executes the "securitycenter.folders.findings.bulkMute" 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 *FoldersFindingsBulkMuteCall) 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", "securitycenter.folders.findings.bulkMute", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes an existing mute config.
//
//   - name: Name of the mute config to delete. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *FoldersLocationsMuteConfigsService) Delete(name string) *FoldersLocationsMuteConfigsDeleteCall {
	c := &FoldersLocationsMuteConfigsDeleteCall{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 *FoldersLocationsMuteConfigsDeleteCall) Fields(s ...googleapi.Field) *FoldersLocationsMuteConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersLocationsMuteConfigsDeleteCall) 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", "securitycenter.folders.locations.muteConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.folders.locations.muteConfigs.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 *FoldersLocationsMuteConfigsDeleteCall) 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", "securitycenter.folders.locations.muteConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a mute config.
//
//   - name: Name of the mute config to retrieve. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *FoldersLocationsMuteConfigsService) Get(name string) *FoldersLocationsMuteConfigsGetCall {
	c := &FoldersLocationsMuteConfigsGetCall{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 *FoldersLocationsMuteConfigsGetCall) Fields(s ...googleapi.Field) *FoldersLocationsMuteConfigsGetCall {
	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 *FoldersLocationsMuteConfigsGetCall) IfNoneMatch(entityTag string) *FoldersLocationsMuteConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersLocationsMuteConfigsGetCall) 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", "securitycenter.folders.locations.muteConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// Patch: Updates a mute config.
//
//   - name: This field will be ignored if provided on config creation. Format
//     `organizations/{organization}/muteConfigs/{mute_config}`
//     `folders/{folder}/muteConfigs/{mute_config}`
//     `projects/{project}/muteConfigs/{mute_config}`
//     `organizations/{organization}/locations/global/muteConfigs/{mute_config}`
//     `folders/{folder}/locations/global/muteConfigs/{mute_config}`
//     `projects/{project}/locations/global/muteConfigs/{mute_config}`.
func (r *FoldersLocationsMuteConfigsService) Patch(name string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *FoldersLocationsMuteConfigsPatchCall {
	c := &FoldersLocationsMuteConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *FoldersLocationsMuteConfigsPatchCall) UpdateMask(updateMask string) *FoldersLocationsMuteConfigsPatchCall {
	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 *FoldersLocationsMuteConfigsPatchCall) Fields(s ...googleapi.Field) *FoldersLocationsMuteConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersLocationsMuteConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1muteconfig)
	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", "securitycenter.folders.locations.muteConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type FoldersMuteConfigsCreateCall struct {
	s                                     *Service
	parent                                string
	googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig
	urlParams_                            gensupport.URLParams
	ctx_                                  context.Context
	header_                               http.Header
}

// Create: Creates a mute config.
//
//   - parent: Resource name of the new mute configs's parent. Its format is
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *FoldersMuteConfigsService) Create(parent string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *FoldersMuteConfigsCreateCall {
	c := &FoldersMuteConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// MuteConfigId sets the optional parameter "muteConfigId": Required. Unique
// identifier provided by the client within the parent scope. It must consist
// of only lowercase letters, numbers, and hyphens, must start with a letter,
// must end with either a letter or a number, and must be 63 characters or
// less.
func (c *FoldersMuteConfigsCreateCall) MuteConfigId(muteConfigId string) *FoldersMuteConfigsCreateCall {
	c.urlParams_.Set("muteConfigId", muteConfigId)
	return c
}

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

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

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

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

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

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

// Delete: Deletes an existing mute config.
//
//   - name: Name of the mute config to delete. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *FoldersMuteConfigsService) Delete(name string) *FoldersMuteConfigsDeleteCall {
	c := &FoldersMuteConfigsDeleteCall{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 *FoldersMuteConfigsDeleteCall) Fields(s ...googleapi.Field) *FoldersMuteConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersMuteConfigsDeleteCall) 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", "securitycenter.folders.muteConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.folders.muteConfigs.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 *FoldersMuteConfigsDeleteCall) 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", "securitycenter.folders.muteConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a mute config.
//
//   - name: Name of the mute config to retrieve. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *FoldersMuteConfigsService) Get(name string) *FoldersMuteConfigsGetCall {
	c := &FoldersMuteConfigsGetCall{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 *FoldersMuteConfigsGetCall) Fields(s ...googleapi.Field) *FoldersMuteConfigsGetCall {
	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 *FoldersMuteConfigsGetCall) IfNoneMatch(entityTag string) *FoldersMuteConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersMuteConfigsGetCall) 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", "securitycenter.folders.muteConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists mute configs.
//
//   - parent: The parent, which owns the collection of mute configs. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *FoldersMuteConfigsService) List(parent string) *FoldersMuteConfigsListCall {
	c := &FoldersMuteConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// configs to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *FoldersMuteConfigsListCall) PageSize(pageSize int64) *FoldersMuteConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListMuteConfigs` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListMuteConfigs` must match the call that provided the page token.
func (c *FoldersMuteConfigsListCall) PageToken(pageToken string) *FoldersMuteConfigsListCall {
	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 *FoldersMuteConfigsListCall) Fields(s ...googleapi.Field) *FoldersMuteConfigsListCall {
	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 *FoldersMuteConfigsListCall) IfNoneMatch(entityTag string) *FoldersMuteConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersMuteConfigsListCall) 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}/muteConfigs")
	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", "securitycenter.folders.muteConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates a mute config.
//
//   - name: This field will be ignored if provided on config creation. Format
//     `organizations/{organization}/muteConfigs/{mute_config}`
//     `folders/{folder}/muteConfigs/{mute_config}`
//     `projects/{project}/muteConfigs/{mute_config}`
//     `organizations/{organization}/locations/global/muteConfigs/{mute_config}`
//     `folders/{folder}/locations/global/muteConfigs/{mute_config}`
//     `projects/{project}/locations/global/muteConfigs/{mute_config}`.
func (r *FoldersMuteConfigsService) Patch(name string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *FoldersMuteConfigsPatchCall {
	c := &FoldersMuteConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *FoldersMuteConfigsPatchCall) UpdateMask(updateMask string) *FoldersMuteConfigsPatchCall {
	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 *FoldersMuteConfigsPatchCall) Fields(s ...googleapi.Field) *FoldersMuteConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersMuteConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1muteconfig)
	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", "securitycenter.folders.muteConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type FoldersNotificationConfigsCreateCall struct {
	s                  *Service
	parent             string
	notificationconfig *NotificationConfig
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// Create: Creates a notification config.
//
//   - parent: Resource name of the new notification config's parent. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *FoldersNotificationConfigsService) Create(parent string, notificationconfig *NotificationConfig) *FoldersNotificationConfigsCreateCall {
	c := &FoldersNotificationConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.notificationconfig = notificationconfig
	return c
}

// ConfigId sets the optional parameter "configId": Required. Unique identifier
// provided by the client within the parent scope. It must be between 1 and 128
// characters and contain alphanumeric characters, underscores, or hyphens
// only.
func (c *FoldersNotificationConfigsCreateCall) ConfigId(configId string) *FoldersNotificationConfigsCreateCall {
	c.urlParams_.Set("configId", configId)
	return c
}

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

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

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

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

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

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

// Delete: Deletes a notification config.
//
//   - name: Name of the notification config to delete. Its format is
//     `organizations/[organization_id]/notificationConfigs/[config_id]`,
//     `folders/[folder_id]/notificationConfigs/[config_id]`, or
//     `projects/[project_id]/notificationConfigs/[config_id]`.
func (r *FoldersNotificationConfigsService) Delete(name string) *FoldersNotificationConfigsDeleteCall {
	c := &FoldersNotificationConfigsDeleteCall{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 *FoldersNotificationConfigsDeleteCall) Fields(s ...googleapi.Field) *FoldersNotificationConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersNotificationConfigsDeleteCall) 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", "securitycenter.folders.notificationConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.folders.notificationConfigs.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 *FoldersNotificationConfigsDeleteCall) 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", "securitycenter.folders.notificationConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a notification config.
//
//   - name: Name of the notification config to get. Its format is
//     `organizations/[organization_id]/notificationConfigs/[config_id]`,
//     `folders/[folder_id]/notificationConfigs/[config_id]`, or
//     `projects/[project_id]/notificationConfigs/[config_id]`.
func (r *FoldersNotificationConfigsService) Get(name string) *FoldersNotificationConfigsGetCall {
	c := &FoldersNotificationConfigsGetCall{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 *FoldersNotificationConfigsGetCall) Fields(s ...googleapi.Field) *FoldersNotificationConfigsGetCall {
	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 *FoldersNotificationConfigsGetCall) IfNoneMatch(entityTag string) *FoldersNotificationConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersNotificationConfigsGetCall) 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", "securitycenter.folders.notificationConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists notification configs.
//
//   - parent: The name of the parent in which to list the notification
//     configurations. Its format is "organizations/[organization_id]",
//     "folders/[folder_id]", or "projects/[project_id]".
func (r *FoldersNotificationConfigsService) List(parent string) *FoldersNotificationConfigsListCall {
	c := &FoldersNotificationConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *FoldersNotificationConfigsListCall) PageSize(pageSize int64) *FoldersNotificationConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListNotificationConfigsResponse`; indicates that this is a
// continuation of a prior `ListNotificationConfigs` call, and that the system
// should return the next page of data.
func (c *FoldersNotificationConfigsListCall) PageToken(pageToken string) *FoldersNotificationConfigsListCall {
	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 *FoldersNotificationConfigsListCall) Fields(s ...googleapi.Field) *FoldersNotificationConfigsListCall {
	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 *FoldersNotificationConfigsListCall) IfNoneMatch(entityTag string) *FoldersNotificationConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersNotificationConfigsListCall) 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}/notificationConfigs")
	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", "securitycenter.folders.notificationConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch:  Updates a notification config. The following update fields are
// allowed: description, pubsub_topic, streaming_config.filter
//
//   - name: The relative resource name of this notification config. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Example:
//     "organizations/{organization_id}/notificationConfigs/notify_public_bucket",
//     "folders/{folder_id}/notificationConfigs/notify_public_bucket", or
//     "projects/{project_id}/notificationConfigs/notify_public_bucket".
func (r *FoldersNotificationConfigsService) Patch(name string, notificationconfig *NotificationConfig) *FoldersNotificationConfigsPatchCall {
	c := &FoldersNotificationConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.notificationconfig = notificationconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the notification config. If empty all mutable fields will be
// updated.
func (c *FoldersNotificationConfigsPatchCall) UpdateMask(updateMask string) *FoldersNotificationConfigsPatchCall {
	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 *FoldersNotificationConfigsPatchCall) Fields(s ...googleapi.Field) *FoldersNotificationConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersNotificationConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.notificationconfig)
	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", "securitycenter.folders.notificationConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type FoldersSecurityHealthAnalyticsSettingsCustomModulesCreateCall struct {
	s                                                              *Service
	parent                                                         string
	googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Create: Creates a resident SecurityHealthAnalyticsCustomModule at the scope
// of the given CRM parent, and also creates inherited
// SecurityHealthAnalyticsCustomModules for all CRM descendants of the given
// parent. These modules are enabled by default.
//
//   - parent: Resource name of the new custom module's parent. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *FoldersSecurityHealthAnalyticsSettingsCustomModulesService) Create(parent string, googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule) *FoldersSecurityHealthAnalyticsSettingsCustomModulesCreateCall {
	c := &FoldersSecurityHealthAnalyticsSettingsCustomModulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule = googlecloudsecuritycenterv1securityhealthanalyticscustommodule
	return c
}

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

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

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

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

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

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

// Delete: Deletes the specified SecurityHealthAnalyticsCustomModule and all of
// its descendants in the CRM hierarchy. This method is only supported for
// resident custom modules.
//
//   - name: Name of the custom module to delete. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}`.
func (r *FoldersSecurityHealthAnalyticsSettingsCustomModulesService) Delete(name string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesDeleteCall {
	c := &FoldersSecurityHealthAnalyticsSettingsCustomModulesDeleteCall{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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) Fields(s ...googleapi.Field) *FoldersSecurityHealthAnalyticsSettingsCustomModulesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) 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", "securitycenter.folders.securityHealthAnalyticsSettings.customModules.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.folders.securityHealthAnalyticsSettings.customModules.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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) 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", "securitycenter.folders.securityHealthAnalyticsSettings.customModules.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Retrieves a SecurityHealthAnalyticsCustomModule.
//
//   - name: Name of the custom module to get. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}`.
func (r *FoldersSecurityHealthAnalyticsSettingsCustomModulesService) Get(name string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	c := &FoldersSecurityHealthAnalyticsSettingsCustomModulesGetCall{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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesGetCall) Fields(s ...googleapi.Field) *FoldersSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesGetCall) IfNoneMatch(entityTag string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesGetCall) 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", "securitycenter.folders.securityHealthAnalyticsSettings.customModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Returns a list of all SecurityHealthAnalyticsCustomModules for the
// given parent. This includes resident modules defined at the scope of the
// parent, and inherited modules, inherited from CRM ancestors.
//
//   - parent: Name of parent to list custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *FoldersSecurityHealthAnalyticsSettingsCustomModulesService) List(parent string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c := &FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall) PageSize(pageSize int64) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall) PageToken(pageToken string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall {
	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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall) Fields(s ...googleapi.Field) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall {
	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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall) IfNoneMatch(entityTag string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesListCall) 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}/customModules")
	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", "securitycenter.folders.securityHealthAnalyticsSettings.customModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// ListDescendant: Returns a list of all resident
// SecurityHealthAnalyticsCustomModules under the given CRM parent and all of
// the parent’s CRM descendants.
//
//   - parent: Name of parent to list descendant custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *FoldersSecurityHealthAnalyticsSettingsCustomModulesService) ListDescendant(parent string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c := &FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) PageSize(pageSize int64) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) PageToken(pageToken string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) Fields(s ...googleapi.Field) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) IfNoneMatch(entityTag string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) 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}/customModules:listDescendant")
	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", "securitycenter.folders.securityHealthAnalyticsSettings.customModules.listDescendant", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates the SecurityHealthAnalyticsCustomModule under the given name
// based on the given update mask. Updating the enablement state is supported
// on both resident and inherited modules (though resident modules cannot have
// an enablement state of "inherited"). Updating the display name and custom
// config of a module is supported on resident modules only.
//
//   - name: Immutable. The resource name of the custom module. Its format is
//     "organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}", or
//     "folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}", or
//     "projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}" The id {customModule} is server-generated and is not user settable.
//     It will be a numeric id containing 1-20 digits.
func (r *FoldersSecurityHealthAnalyticsSettingsCustomModulesService) Patch(name string, googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule) *FoldersSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	c := &FoldersSecurityHealthAnalyticsSettingsCustomModulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule = googlecloudsecuritycenterv1securityhealthanalyticscustommodule
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. The only fields that can be updated are `enablement_state` and
// `custom_config`. If empty or set to the wildcard value `*`, both
// `enablement_state` and `custom_config` are updated.
func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesPatchCall) UpdateMask(updateMask string) *FoldersSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	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 *FoldersSecurityHealthAnalyticsSettingsCustomModulesPatchCall) Fields(s ...googleapi.Field) *FoldersSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersSecurityHealthAnalyticsSettingsCustomModulesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule)
	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", "securitycenter.folders.securityHealthAnalyticsSettings.customModules.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type FoldersSecurityHealthAnalyticsSettingsCustomModulesSimulateCall struct {
	s                                                  *Service
	parent                                             string
	simulatesecurityhealthanalyticscustommodulerequest *SimulateSecurityHealthAnalyticsCustomModuleRequest
	urlParams_                                         gensupport.URLParams
	ctx_                                               context.Context
	header_                                            http.Header
}

// Simulate: Simulates a given SecurityHealthAnalyticsCustomModule and
// Resource.
//
//   - parent: The relative resource name of the organization, project, or
//     folder. For more information about relative resource names, see Relative
//     Resource Name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     Example: `organizations/{organization_id}`.
func (r *FoldersSecurityHealthAnalyticsSettingsCustomModulesService) Simulate(parent string, simulatesecurityhealthanalyticscustommodulerequest *SimulateSecurityHealthAnalyticsCustomModuleRequest) *FoldersSecurityHealthAnalyticsSettingsCustomModulesSimulateCall {
	c := &FoldersSecurityHealthAnalyticsSettingsCustomModulesSimulateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.simulatesecurityhealthanalyticscustommodulerequest = simulatesecurityhealthanalyticscustommodulerequest
	return c
}

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

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

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

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

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

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

// Get: Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.
//
//   - name: Name of the effective custom module to get. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/effectiveCust
//     omModules/{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{c
//     ustomModule}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/
//     {customModule}`.
func (r *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService) Get(name string) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	c := &FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall{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 *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) Fields(s ...googleapi.Field) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	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 *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) IfNoneMatch(entityTag string) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) 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", "securitycenter.folders.securityHealthAnalyticsSettings.effectiveCustomModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules
// for the given parent. This includes resident modules defined at the scope of
// the parent, and inherited modules, inherited from CRM ancestors.
//
//   - parent: Name of parent to list effective custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesService) List(parent string) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c := &FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) PageSize(pageSize int64) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) PageToken(pageToken string) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	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 *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) Fields(s ...googleapi.Field) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	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 *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) IfNoneMatch(entityTag string) *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) 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}/effectiveCustomModules")
	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", "securitycenter.folders.securityHealthAnalyticsSettings.effectiveCustomModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists all sources belonging to an organization.
//
//   - parent: Resource name of the parent of sources to list. Its format should
//     be `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *FoldersSourcesService) List(parent string) *FoldersSourcesListCall {
	c := &FoldersSourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *FoldersSourcesListCall) PageSize(pageSize int64) *FoldersSourcesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListSourcesResponse`; indicates that this is a continuation of a prior
// `ListSources` call, and that the system should return the next page of data.
func (c *FoldersSourcesListCall) PageToken(pageToken string) *FoldersSourcesListCall {
	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 *FoldersSourcesListCall) Fields(s ...googleapi.Field) *FoldersSourcesListCall {
	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 *FoldersSourcesListCall) IfNoneMatch(entityTag string) *FoldersSourcesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *FoldersSourcesListCall) 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}/sources")
	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", "securitycenter.folders.sources.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Group: Filters an organization or source's findings and groups them by their
// specified properties. To group across all sources provide a `-` as the
// source id. Example: /v1/organizations/{organization_id}/sources/-/findings,
// /v1/folders/{folder_id}/sources/-/findings,
// /v1/projects/{project_id}/sources/-/findings
//
//   - parent: Name of the source to groupBy. Its format is
//     `organizations/[organization_id]/sources/[source_id]`,
//     `folders/[folder_id]/sources/[source_id]`, or
//     `projects/[project_id]/sources/[source_id]`. To groupBy across all sources
//     provide a source_id of `-`. For example:
//     `organizations/{organization_id}/sources/-,
//     folders/{folder_id}/sources/-`, or `projects/{project_id}/sources/-`.
func (r *FoldersSourcesFindingsService) Group(parent string, groupfindingsrequest *GroupFindingsRequest) *FoldersSourcesFindingsGroupCall {
	c := &FoldersSourcesFindingsGroupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.groupfindingsrequest = groupfindingsrequest
	return c
}

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

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

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

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

// Do executes the "securitycenter.folders.sources.findings.group" call.
// Any non-2xx status code is an error. Response headers are in either
// *GroupFindingsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *FoldersSourcesFindingsGroupCall) Do(opts ...googleapi.CallOption) (*GroupFindingsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GroupFindingsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.folders.sources.findings.group", "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 *FoldersSourcesFindingsGroupCall) Pages(ctx context.Context, f func(*GroupFindingsResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.groupfindingsrequest.PageToken = pt }(c.groupfindingsrequest.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.groupfindingsrequest.PageToken = x.NextPageToken
	}
}

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

// List: Lists an organization or source's findings. To list across all sources
// provide a `-` as the source id. Example:
// /v1/organizations/{organization_id}/sources/-/findings
//
//   - parent: Name of the source the findings belong to. Its format is
//     `organizations/[organization_id]/sources/[source_id]`,
//     `folders/[folder_id]/sources/[source_id]`, or
//     `projects/[project_id]/sources/[source_id]`. To list across all sources
//     provide a source_id of `-`. For example:
//     `organizations/{organization_id}/sources/-`,
//     `folders/{folder_id}/sources/-` or `projects/{projects_id}/sources/-`.
func (r *FoldersSourcesFindingsService) List(parent string) *FoldersSourcesFindingsListCall {
	c := &FoldersSourcesFindingsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// CompareDuration sets the optional parameter "compareDuration": When
// compare_duration is set, the ListFindingsResult's "state_change" attribute
// is updated to indicate whether the finding had its state changed, the
// finding's state remained unchanged, or if the finding was added in any state
// during the compare_duration period of time that precedes the read_time. This
// is the time between (read_time - compare_duration) and read_time. The
// state_change value is derived based on the presence and state of the finding
// at the two points in time. Intermediate state changes between the two times
// don't affect the result. For example, the results aren't affected if the
// finding is made inactive and then active again. Possible "state_change"
// values when compare_duration is specified: * "CHANGED": indicates that the
// finding was present and matched the given filter at the start of
// compare_duration, but changed its state at read_time. * "UNCHANGED":
// indicates that the finding was present and matched the given filter at the
// start of compare_duration and did not change state at read_time. * "ADDED":
// indicates that the finding did not match the given filter or was not present
// at the start of compare_duration, but was present at read_time. * "REMOVED":
// indicates that the finding was present and matched the filter at the start
// of compare_duration, but did not match the filter at read_time. If
// compare_duration is not specified, then the only possible state_change is
// "UNUSED", which will be the state_change set for all findings present at
// read_time.
func (c *FoldersSourcesFindingsListCall) CompareDuration(compareDuration string) *FoldersSourcesFindingsListCall {
	c.urlParams_.Set("compareDuration", compareDuration)
	return c
}

// FieldMask sets the optional parameter "fieldMask": A field mask to specify
// the Finding fields to be listed in the response. An empty field mask will
// list all fields.
func (c *FoldersSourcesFindingsListCall) FieldMask(fieldMask string) *FoldersSourcesFindingsListCall {
	c.urlParams_.Set("fieldMask", fieldMask)
	return c
}

// Filter sets the optional parameter "filter": Expression that defines the
// filter to apply across findings. The expression is a list of one or more
// restrictions combined via logical operators `AND` and `OR`. Parentheses are
// supported, and `OR` has higher precedence than `AND`. Restrictions have the
// form ` ` and may have a `-` character in front of them to indicate negation.
// Examples include: * name * source_properties.a_property *
// security_marks.marks.marka The supported operators are: * `=` for all value
// types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring
// matching, for strings. The supported value types are: * string literals in
// quotes. * integer literals without quotes. * boolean literals `true` and
// `false` without quotes. The following field and operator combinations are
// supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state:
// `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`,
// `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an
// RFC3339 string. Examples: `event_time = "2019-06-10T16:07:18-07:00"
// `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:`
// * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`,
// `>=`, `<=` For example, `source_properties.size = 100` is a valid filter
// string. Use a partial match on the empty string to filter based on a
// property existing: `source_properties.my_property : "" Use a negated
// partial match on the empty string to filter based on a property not
// existing: `-source_properties.my_property : "" * resource: * resource.name:
// `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name:
// `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name:
// `=`, `:` * resource.type: `=`, `:` * resource.folders.resource_folder: `=`,
// `:` * resource.display_name: `=`, `:`
func (c *FoldersSourcesFindingsListCall) Filter(filter string) *FoldersSourcesFindingsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Expression that defines what
// fields and order to use for sorting. The string value should follow SQL
// syntax: comma separated list of fields. For example:
// "name,resource_properties.a_property". The default sorting order is
// ascending. To specify descending order for a field, a suffix " desc" should
// be appended to the field name. For example: "name
// desc,source_properties.a_property". Redundant space characters in the syntax
// are insignificant. "name desc,source_properties.a_property" and " name desc
// , source_properties.a_property " are equivalent. The following fields are
// supported: name parent state category resource_name event_time
// source_properties security_marks.marks
func (c *FoldersSourcesFindingsListCall) OrderBy(orderBy string) *FoldersSourcesFindingsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *FoldersSourcesFindingsListCall) PageSize(pageSize int64) *FoldersSourcesFindingsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListFindingsResponse`; indicates that this is a continuation of a
// prior `ListFindings` call, and that the system should return the next page
// of data.
func (c *FoldersSourcesFindingsListCall) PageToken(pageToken string) *FoldersSourcesFindingsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReadTime sets the optional parameter "readTime": Time used as a reference
// point when filtering findings. The filter is limited to findings existing at
// the supplied time and their values are those at that specific time. Absence
// of this field will default to the API's version of NOW.
func (c *FoldersSourcesFindingsListCall) ReadTime(readTime string) *FoldersSourcesFindingsListCall {
	c.urlParams_.Set("readTime", readTime)
	return c
}

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

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

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

func (c *FoldersSourcesFindingsListCall) 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}/findings")
	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", "securitycenter.folders.sources.findings.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Creates or updates a finding. The corresponding source must exist for
// a finding creation to succeed.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}"
//     , "folders/{folder_id}/sources/{source_id}/findings/{finding_id}",
//     "projects/{project_id}/sources/{source_id}/findings/{finding_id}".
func (r *FoldersSourcesFindingsService) Patch(name string, finding *Finding) *FoldersSourcesFindingsPatchCall {
	c := &FoldersSourcesFindingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.finding = finding
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the finding resource. This field should not be specified when
// creating a finding. When updating a finding, an empty mask is treated as
// updating all mutable fields and replacing source_properties. Individual
// source_properties can be added/updated by using "source_properties." in the
// field mask.
func (c *FoldersSourcesFindingsPatchCall) UpdateMask(updateMask string) *FoldersSourcesFindingsPatchCall {
	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 *FoldersSourcesFindingsPatchCall) Fields(s ...googleapi.Field) *FoldersSourcesFindingsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersSourcesFindingsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.finding)
	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", "securitycenter.folders.sources.findings.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// SetMute: Updates the mute state of a finding.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`
//     , `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`,
//     `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.
func (r *FoldersSourcesFindingsService) SetMute(name string, setmuterequest *SetMuteRequest) *FoldersSourcesFindingsSetMuteCall {
	c := &FoldersSourcesFindingsSetMuteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.setmuterequest = setmuterequest
	return c
}

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

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

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

func (c *FoldersSourcesFindingsSetMuteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.setmuterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMute")
	urls += "?" + c.urlParams_.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", "securitycenter.folders.sources.findings.setMute", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// SetState: Updates the state of a finding.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`
//     , `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`,
//     `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.
func (r *FoldersSourcesFindingsService) SetState(name string, setfindingstaterequest *SetFindingStateRequest) *FoldersSourcesFindingsSetStateCall {
	c := &FoldersSourcesFindingsSetStateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.setfindingstaterequest = setfindingstaterequest
	return c
}

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

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

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

func (c *FoldersSourcesFindingsSetStateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.setfindingstaterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setState")
	urls += "?" + c.urlParams_.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", "securitycenter.folders.sources.findings.setState", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// UpdateSecurityMarks: Updates security marks.
//
//   - name: The relative resource name of the SecurityMarks. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Examples:
//     "organizations/{organization_id}/assets/{asset_id}/securityMarks"
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/
//     securityMarks".
func (r *FoldersSourcesFindingsService) UpdateSecurityMarks(name string, securitymarks *SecurityMarks) *FoldersSourcesFindingsUpdateSecurityMarksCall {
	c := &FoldersSourcesFindingsUpdateSecurityMarksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.securitymarks = securitymarks
	return c
}

// StartTime sets the optional parameter "startTime": The time at which the
// updated SecurityMarks take effect. If not set uses current server time.
// Updates will be applied to the SecurityMarks that are active immediately
// preceding this time. Must be earlier or equal to the server time.
func (c *FoldersSourcesFindingsUpdateSecurityMarksCall) StartTime(startTime string) *FoldersSourcesFindingsUpdateSecurityMarksCall {
	c.urlParams_.Set("startTime", startTime)
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the security marks resource. The field mask must not contain
// duplicate fields. If empty or set to "marks", all marks will be replaced.
// Individual marks can be updated using "marks.".
func (c *FoldersSourcesFindingsUpdateSecurityMarksCall) UpdateMask(updateMask string) *FoldersSourcesFindingsUpdateSecurityMarksCall {
	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 *FoldersSourcesFindingsUpdateSecurityMarksCall) Fields(s ...googleapi.Field) *FoldersSourcesFindingsUpdateSecurityMarksCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersSourcesFindingsUpdateSecurityMarksCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitymarks)
	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", "securitycenter.folders.sources.findings.updateSecurityMarks", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// Patch: Updates external system. This is for a given finding.
//
//   - name: Full resource name of the external system, for example:
//     "organizations/1234/sources/5678/findings/123456/externalSystems/jira",
//     "folders/1234/sources/5678/findings/123456/externalSystems/jira",
//     "projects/1234/sources/5678/findings/123456/externalSystems/jira".
func (r *FoldersSourcesFindingsExternalSystemsService) Patch(name string, googlecloudsecuritycenterv1externalsystem *GoogleCloudSecuritycenterV1ExternalSystem) *FoldersSourcesFindingsExternalSystemsPatchCall {
	c := &FoldersSourcesFindingsExternalSystemsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1externalsystem = googlecloudsecuritycenterv1externalsystem
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the external system resource. If empty all mutable fields will
// be updated.
func (c *FoldersSourcesFindingsExternalSystemsPatchCall) UpdateMask(updateMask string) *FoldersSourcesFindingsExternalSystemsPatchCall {
	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 *FoldersSourcesFindingsExternalSystemsPatchCall) Fields(s ...googleapi.Field) *FoldersSourcesFindingsExternalSystemsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *FoldersSourcesFindingsExternalSystemsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1externalsystem)
	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", "securitycenter.folders.sources.findings.externalSystems.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// GetOrganizationSettings: Gets the settings for an organization.
//
//   - name: Name of the organization to get organization settings for. Its
//     format is `organizations/[organization_id]/organizationSettings`.
func (r *OrganizationsService) GetOrganizationSettings(name string) *OrganizationsGetOrganizationSettingsCall {
	c := &OrganizationsGetOrganizationSettingsCall{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 *OrganizationsGetOrganizationSettingsCall) Fields(s ...googleapi.Field) *OrganizationsGetOrganizationSettingsCall {
	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 *OrganizationsGetOrganizationSettingsCall) IfNoneMatch(entityTag string) *OrganizationsGetOrganizationSettingsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsGetOrganizationSettingsCall) 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", "securitycenter.organizations.getOrganizationSettings", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// UpdateOrganizationSettings: Updates an organization's settings.
//
//   - name: The relative resource name of the settings. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Example: "organizations/{organization_id}/organizationSettings".
func (r *OrganizationsService) UpdateOrganizationSettings(name string, organizationsettings *OrganizationSettings) *OrganizationsUpdateOrganizationSettingsCall {
	c := &OrganizationsUpdateOrganizationSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.organizationsettings = organizationsettings
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the settings resource. If empty all mutable fields will be
// updated.
func (c *OrganizationsUpdateOrganizationSettingsCall) UpdateMask(updateMask string) *OrganizationsUpdateOrganizationSettingsCall {
	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 *OrganizationsUpdateOrganizationSettingsCall) Fields(s ...googleapi.Field) *OrganizationsUpdateOrganizationSettingsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsUpdateOrganizationSettingsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.organizationsettings)
	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", "securitycenter.organizations.updateOrganizationSettings", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsAssetsGroupCall struct {
	s                  *Service
	parent             string
	groupassetsrequest *GroupAssetsRequest
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// Group: Filters an organization's assets and groups them by their specified
// properties.
//
//   - parent: The name of the parent to group the assets by. Its format is
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *OrganizationsAssetsService) Group(parent string, groupassetsrequest *GroupAssetsRequest) *OrganizationsAssetsGroupCall {
	c := &OrganizationsAssetsGroupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.groupassetsrequest = groupassetsrequest
	return c
}

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

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

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

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

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

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

// List: Lists an organization's assets.
//
//   - parent: The name of the parent resource that contains the assets. The
//     value that you can specify on parent depends on the method in which you
//     specify parent. You can specify one of the following values:
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *OrganizationsAssetsService) List(parent string) *OrganizationsAssetsListCall {
	c := &OrganizationsAssetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// CompareDuration sets the optional parameter "compareDuration": When
// compare_duration is set, the ListAssetsResult's "state_change" attribute is
// updated to indicate whether the asset was added, removed, or remained
// present during the compare_duration period of time that precedes the
// read_time. This is the time between (read_time - compare_duration) and
// read_time. The state_change value is derived based on the presence of the
// asset at the two points in time. Intermediate state changes between the two
// times don't affect the result. For example, the results aren't affected if
// the asset is removed and re-created again. Possible "state_change" values
// when compare_duration is specified: * "ADDED": indicates that the asset was
// not present at the start of compare_duration, but present at read_time. *
// "REMOVED": indicates that the asset was present at the start of
// compare_duration, but not present at read_time. * "ACTIVE": indicates that
// the asset was present at both the start and the end of the time period
// defined by compare_duration and read_time. If compare_duration is not
// specified, then the only possible state_change is "UNUSED", which will be
// the state_change set for all assets present at read_time.
func (c *OrganizationsAssetsListCall) CompareDuration(compareDuration string) *OrganizationsAssetsListCall {
	c.urlParams_.Set("compareDuration", compareDuration)
	return c
}

// FieldMask sets the optional parameter "fieldMask": A field mask to specify
// the ListAssetsResult fields to be listed in the response. An empty field
// mask will list all fields.
func (c *OrganizationsAssetsListCall) FieldMask(fieldMask string) *OrganizationsAssetsListCall {
	c.urlParams_.Set("fieldMask", fieldMask)
	return c
}

// Filter sets the optional parameter "filter": Expression that defines the
// filter to apply across assets. The expression is a list of zero or more
// restrictions combined via logical operators `AND` and `OR`. Parentheses are
// supported, and `OR` has higher precedence than `AND`. Restrictions have the
// form ` ` and may have a `-` character in front of them to indicate negation.
// The fields map to those defined in the Asset resource. Examples include: *
// name * security_center_properties.resource_name *
// resource_properties.a_property * security_marks.marks.marka The supported
// operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer
// values. * `:`, meaning substring matching, for strings. The supported value
// types are: * string literals in quotes. * integer literals without quotes. *
// boolean literals `true` and `false` without quotes. The following are the
// allowed field and operator combinations: * name: `=` * update_time: `=`,
// `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an
// RFC3339 string. Examples: `update_time = "2019-06-10T16:07:18-07:00"
// `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=`
// Usage: This should be milliseconds since epoch or an RFC3339 string.
// Examples: `create_time = "2019-06-10T16:07:18-07:00" `create_time =
// 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties:
// `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` *
// security_center_properties.resource_name: `=`, `:` *
// security_center_properties.resource_display_name: `=`, `:` *
// security_center_properties.resource_type: `=`, `:` *
// security_center_properties.resource_parent: `=`, `:` *
// security_center_properties.resource_parent_display_name: `=`, `:` *
// security_center_properties.resource_project: `=`, `:` *
// security_center_properties.resource_project_display_name: `=`, `:` *
// security_center_properties.resource_owners: `=`, `:` For example,
// `resource_properties.size = 100` is a valid filter string. Use a partial
// match on the empty string to filter based on a property existing:
// `resource_properties.my_property : "" Use a negated partial match on the
// empty string to filter based on a property not existing:
// `-resource_properties.my_property : ""
func (c *OrganizationsAssetsListCall) Filter(filter string) *OrganizationsAssetsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Expression that defines what
// fields and order to use for sorting. The string value should follow SQL
// syntax: comma separated list of fields. For example:
// "name,resource_properties.a_property". The default sorting order is
// ascending. To specify descending order for a field, a suffix " desc" should
// be appended to the field name. For example: "name
// desc,resource_properties.a_property". Redundant space characters in the
// syntax are insignificant. "name desc,resource_properties.a_property" and "
// name desc , resource_properties.a_property " are equivalent. The following
// fields are supported: name update_time resource_properties
// security_marks.marks security_center_properties.resource_name
// security_center_properties.resource_display_name
// security_center_properties.resource_parent
// security_center_properties.resource_parent_display_name
// security_center_properties.resource_project
// security_center_properties.resource_project_display_name
// security_center_properties.resource_type
func (c *OrganizationsAssetsListCall) OrderBy(orderBy string) *OrganizationsAssetsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsAssetsListCall) PageSize(pageSize int64) *OrganizationsAssetsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListAssetsResponse`; indicates that this is a continuation of a prior
// `ListAssets` call, and that the system should return the next page of data.
func (c *OrganizationsAssetsListCall) PageToken(pageToken string) *OrganizationsAssetsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReadTime sets the optional parameter "readTime": Time used as a reference
// point when filtering assets. The filter is limited to assets existing at the
// supplied time and their values are those at that specific time. Absence of
// this field will default to the API's version of NOW.
func (c *OrganizationsAssetsListCall) ReadTime(readTime string) *OrganizationsAssetsListCall {
	c.urlParams_.Set("readTime", readTime)
	return c
}

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

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

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

func (c *OrganizationsAssetsListCall) 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}/assets")
	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", "securitycenter.organizations.assets.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// RunDiscovery: Runs asset discovery. The discovery is tracked with a
// long-running operation. This API can only be called with limited frequency
// for an organization. If it is called too frequently the caller will receive
// a TOO_MANY_REQUESTS error.
//
//   - parent: Name of the organization to run asset discovery for. Its format is
//     `organizations/[organization_id]`.
func (r *OrganizationsAssetsService) RunDiscovery(parent string, runassetdiscoveryrequest *RunAssetDiscoveryRequest) *OrganizationsAssetsRunDiscoveryCall {
	c := &OrganizationsAssetsRunDiscoveryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.runassetdiscoveryrequest = runassetdiscoveryrequest
	return c
}

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

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

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

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

// Do executes the "securitycenter.organizations.assets.runDiscovery" 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 *OrganizationsAssetsRunDiscoveryCall) 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", "securitycenter.organizations.assets.runDiscovery", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// UpdateSecurityMarks: Updates security marks.
//
//   - name: The relative resource name of the SecurityMarks. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Examples:
//     "organizations/{organization_id}/assets/{asset_id}/securityMarks"
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/
//     securityMarks".
func (r *OrganizationsAssetsService) UpdateSecurityMarks(name string, securitymarks *SecurityMarks) *OrganizationsAssetsUpdateSecurityMarksCall {
	c := &OrganizationsAssetsUpdateSecurityMarksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.securitymarks = securitymarks
	return c
}

// StartTime sets the optional parameter "startTime": The time at which the
// updated SecurityMarks take effect. If not set uses current server time.
// Updates will be applied to the SecurityMarks that are active immediately
// preceding this time. Must be earlier or equal to the server time.
func (c *OrganizationsAssetsUpdateSecurityMarksCall) StartTime(startTime string) *OrganizationsAssetsUpdateSecurityMarksCall {
	c.urlParams_.Set("startTime", startTime)
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the security marks resource. The field mask must not contain
// duplicate fields. If empty or set to "marks", all marks will be replaced.
// Individual marks can be updated using "marks.".
func (c *OrganizationsAssetsUpdateSecurityMarksCall) UpdateMask(updateMask string) *OrganizationsAssetsUpdateSecurityMarksCall {
	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 *OrganizationsAssetsUpdateSecurityMarksCall) Fields(s ...googleapi.Field) *OrganizationsAssetsUpdateSecurityMarksCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsAssetsUpdateSecurityMarksCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitymarks)
	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", "securitycenter.organizations.assets.updateSecurityMarks", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists the attack paths for a set of simulation results or valued
// resources and filter.
//
//   - parent: Name of parent to list attack paths. Valid formats:
//     `organizations/{organization}`,
//     `organizations/{organization}/simulations/{simulation}`
//     `organizations/{organization}/simulations/{simulation}/attackExposureResult
//     s/{attack_exposure_result_v2}`
//     `organizations/{organization}/simulations/{simulation}/valuedResources/{val
//     ued_resource}`.
func (r *OrganizationsAttackPathsService) List(parent string) *OrganizationsAttackPathsListCall {
	c := &OrganizationsAttackPathsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter expression that
// filters the attack path in the response. Supported fields: *
// `valued_resources` supports =
func (c *OrganizationsAttackPathsListCall) Filter(filter string) *OrganizationsAttackPathsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsAttackPathsListCall) PageSize(pageSize int64) *OrganizationsAttackPathsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListAttackPathsResponse`; indicates that this is a continuation of a
// prior `ListAttackPaths` call, and that the system should return the next
// page of data.
func (c *OrganizationsAttackPathsListCall) PageToken(pageToken string) *OrganizationsAttackPathsListCall {
	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 *OrganizationsAttackPathsListCall) Fields(s ...googleapi.Field) *OrganizationsAttackPathsListCall {
	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 *OrganizationsAttackPathsListCall) IfNoneMatch(entityTag string) *OrganizationsAttackPathsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsAttackPathsListCall) 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}/attackPaths")
	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", "securitycenter.organizations.attackPaths.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Create: Creates a BigQuery export.
//
//   - parent: The name of the parent resource of the new BigQuery export. Its
//     format is `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *OrganizationsBigQueryExportsService) Create(parent string, googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport) *OrganizationsBigQueryExportsCreateCall {
	c := &OrganizationsBigQueryExportsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1bigqueryexport = googlecloudsecuritycenterv1bigqueryexport
	return c
}

// BigQueryExportId sets the optional parameter "bigQueryExportId": Required.
// Unique identifier provided by the client within the parent scope. It must
// consist of only lowercase letters, numbers, and hyphens, must start with a
// letter, must end with either a letter or a number, and must be 63 characters
// or less.
func (c *OrganizationsBigQueryExportsCreateCall) BigQueryExportId(bigQueryExportId string) *OrganizationsBigQueryExportsCreateCall {
	c.urlParams_.Set("bigQueryExportId", bigQueryExportId)
	return c
}

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

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

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

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

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

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

// Delete: Deletes an existing BigQuery export.
//
//   - name: The name of the BigQuery export to delete. Its format is
//     `organizations/{organization}/bigQueryExports/{export_id}`,
//     `folders/{folder}/bigQueryExports/{export_id}`, or
//     `projects/{project}/bigQueryExports/{export_id}`.
func (r *OrganizationsBigQueryExportsService) Delete(name string) *OrganizationsBigQueryExportsDeleteCall {
	c := &OrganizationsBigQueryExportsDeleteCall{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 *OrganizationsBigQueryExportsDeleteCall) Fields(s ...googleapi.Field) *OrganizationsBigQueryExportsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsBigQueryExportsDeleteCall) 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", "securitycenter.organizations.bigQueryExports.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.bigQueryExports.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 *OrganizationsBigQueryExportsDeleteCall) 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", "securitycenter.organizations.bigQueryExports.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a BigQuery export.
//
//   - name: Name of the BigQuery export to retrieve. Its format is
//     `organizations/{organization}/bigQueryExports/{export_id}`,
//     `folders/{folder}/bigQueryExports/{export_id}`, or
//     `projects/{project}/bigQueryExports/{export_id}`.
func (r *OrganizationsBigQueryExportsService) Get(name string) *OrganizationsBigQueryExportsGetCall {
	c := &OrganizationsBigQueryExportsGetCall{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 *OrganizationsBigQueryExportsGetCall) Fields(s ...googleapi.Field) *OrganizationsBigQueryExportsGetCall {
	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 *OrganizationsBigQueryExportsGetCall) IfNoneMatch(entityTag string) *OrganizationsBigQueryExportsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsBigQueryExportsGetCall) 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", "securitycenter.organizations.bigQueryExports.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists BigQuery exports. Note that when requesting BigQuery exports at
// a given level all exports under that level are also returned e.g. if
// requesting BigQuery exports under a folder, then all BigQuery exports
// immediately under the folder plus the ones created under the projects within
// the folder are returned.
//
//   - parent: The parent, which owns the collection of BigQuery exports. Its
//     format is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *OrganizationsBigQueryExportsService) List(parent string) *OrganizationsBigQueryExportsListCall {
	c := &OrganizationsBigQueryExportsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// configs to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *OrganizationsBigQueryExportsListCall) PageSize(pageSize int64) *OrganizationsBigQueryExportsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListBigQueryExports` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListBigQueryExports` must match the call that provided the page token.
func (c *OrganizationsBigQueryExportsListCall) PageToken(pageToken string) *OrganizationsBigQueryExportsListCall {
	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 *OrganizationsBigQueryExportsListCall) Fields(s ...googleapi.Field) *OrganizationsBigQueryExportsListCall {
	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 *OrganizationsBigQueryExportsListCall) IfNoneMatch(entityTag string) *OrganizationsBigQueryExportsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsBigQueryExportsListCall) 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}/bigQueryExports")
	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", "securitycenter.organizations.bigQueryExports.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates a BigQuery export.
//
//   - name: The relative resource name of this export. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name.
//     Example format:
//     "organizations/{organization_id}/bigQueryExports/{export_id}" Example
//     format: "folders/{folder_id}/bigQueryExports/{export_id}" Example format:
//     "projects/{project_id}/bigQueryExports/{export_id}" This field is provided
//     in responses, and is ignored when provided in create requests.
func (r *OrganizationsBigQueryExportsService) Patch(name string, googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport) *OrganizationsBigQueryExportsPatchCall {
	c := &OrganizationsBigQueryExportsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1bigqueryexport = googlecloudsecuritycenterv1bigqueryexport
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *OrganizationsBigQueryExportsPatchCall) UpdateMask(updateMask string) *OrganizationsBigQueryExportsPatchCall {
	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 *OrganizationsBigQueryExportsPatchCall) Fields(s ...googleapi.Field) *OrganizationsBigQueryExportsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsBigQueryExportsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1bigqueryexport)
	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", "securitycenter.organizations.bigQueryExports.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsEventThreatDetectionSettingsValidateCustomModuleCall struct {
	s                                               *Service
	parent                                          string
	validateeventthreatdetectioncustommodulerequest *ValidateEventThreatDetectionCustomModuleRequest
	urlParams_                                      gensupport.URLParams
	ctx_                                            context.Context
	header_                                         http.Header
}

// ValidateCustomModule: Validates the given Event Threat Detection custom
// module.
//
//   - parent: Resource name of the parent to validate the Custom Module under.
//     Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *OrganizationsEventThreatDetectionSettingsService) ValidateCustomModule(parent string, validateeventthreatdetectioncustommodulerequest *ValidateEventThreatDetectionCustomModuleRequest) *OrganizationsEventThreatDetectionSettingsValidateCustomModuleCall {
	c := &OrganizationsEventThreatDetectionSettingsValidateCustomModuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.validateeventthreatdetectioncustommodulerequest = validateeventthreatdetectioncustommodulerequest
	return c
}

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

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

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

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

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

type OrganizationsEventThreatDetectionSettingsCustomModulesCreateCall struct {
	s                                *Service
	parent                           string
	eventthreatdetectioncustommodule *EventThreatDetectionCustomModule
	urlParams_                       gensupport.URLParams
	ctx_                             context.Context
	header_                          http.Header
}

// Create: Creates a resident Event Threat Detection custom module at the scope
// of the given Resource Manager parent, and also creates inherited custom
// modules for all descendants of the given parent. These modules are enabled
// by default.
//
//   - parent: The new custom module's parent. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *OrganizationsEventThreatDetectionSettingsCustomModulesService) Create(parent string, eventthreatdetectioncustommodule *EventThreatDetectionCustomModule) *OrganizationsEventThreatDetectionSettingsCustomModulesCreateCall {
	c := &OrganizationsEventThreatDetectionSettingsCustomModulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.eventthreatdetectioncustommodule = eventthreatdetectioncustommodule
	return c
}

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

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

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

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

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

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

// Delete: Deletes the specified Event Threat Detection custom module and all
// of its descendants in the Resource Manager hierarchy. This method is only
// supported for resident custom modules.
//
//   - name: Name of the custom module to delete. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *OrganizationsEventThreatDetectionSettingsCustomModulesService) Delete(name string) *OrganizationsEventThreatDetectionSettingsCustomModulesDeleteCall {
	c := &OrganizationsEventThreatDetectionSettingsCustomModulesDeleteCall{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 *OrganizationsEventThreatDetectionSettingsCustomModulesDeleteCall) Fields(s ...googleapi.Field) *OrganizationsEventThreatDetectionSettingsCustomModulesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsEventThreatDetectionSettingsCustomModulesDeleteCall) 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", "securitycenter.organizations.eventThreatDetectionSettings.customModules.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.eventThreatDetectionSettings.customModules.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 *OrganizationsEventThreatDetectionSettingsCustomModulesDeleteCall) 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", "securitycenter.organizations.eventThreatDetectionSettings.customModules.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets an Event Threat Detection custom module.
//
//   - name: Name of the custom module to get. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *OrganizationsEventThreatDetectionSettingsCustomModulesService) Get(name string) *OrganizationsEventThreatDetectionSettingsCustomModulesGetCall {
	c := &OrganizationsEventThreatDetectionSettingsCustomModulesGetCall{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 *OrganizationsEventThreatDetectionSettingsCustomModulesGetCall) Fields(s ...googleapi.Field) *OrganizationsEventThreatDetectionSettingsCustomModulesGetCall {
	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 *OrganizationsEventThreatDetectionSettingsCustomModulesGetCall) IfNoneMatch(entityTag string) *OrganizationsEventThreatDetectionSettingsCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsEventThreatDetectionSettingsCustomModulesGetCall) 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", "securitycenter.organizations.eventThreatDetectionSettings.customModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists all Event Threat Detection custom modules for the given Resource
// Manager parent. This includes resident modules defined at the scope of the
// parent along with modules inherited from ancestors.
//
//   - parent: Name of the parent to list custom modules under. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *OrganizationsEventThreatDetectionSettingsCustomModulesService) List(parent string) *OrganizationsEventThreatDetectionSettingsCustomModulesListCall {
	c := &OrganizationsEventThreatDetectionSettingsCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *OrganizationsEventThreatDetectionSettingsCustomModulesListCall) PageSize(pageSize int64) *OrganizationsEventThreatDetectionSettingsCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListEventThreatDetectionCustomModules` call. Provide this
// to retrieve the subsequent page. When paginating, all other parameters
// provided to `ListEventThreatDetectionCustomModules` must match the call that
// provided the page token.
func (c *OrganizationsEventThreatDetectionSettingsCustomModulesListCall) PageToken(pageToken string) *OrganizationsEventThreatDetectionSettingsCustomModulesListCall {
	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 *OrganizationsEventThreatDetectionSettingsCustomModulesListCall) Fields(s ...googleapi.Field) *OrganizationsEventThreatDetectionSettingsCustomModulesListCall {
	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 *OrganizationsEventThreatDetectionSettingsCustomModulesListCall) IfNoneMatch(entityTag string) *OrganizationsEventThreatDetectionSettingsCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsEventThreatDetectionSettingsCustomModulesListCall) 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}/customModules")
	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", "securitycenter.organizations.eventThreatDetectionSettings.customModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// ListDescendant: Lists all resident Event Threat Detection custom modules
// under the given Resource Manager parent and its descendants.
//
//   - parent: Name of the parent to list custom modules under. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *OrganizationsEventThreatDetectionSettingsCustomModulesService) ListDescendant(parent string) *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c := &OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall) PageSize(pageSize int64) *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListDescendantEventThreatDetectionCustomModules` call.
// Provide this to retrieve the subsequent page. When paginating, all other
// parameters provided to `ListDescendantEventThreatDetectionCustomModules`
// must match the call that provided the page token.
func (c *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall) PageToken(pageToken string) *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	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 *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall) Fields(s ...googleapi.Field) *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	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 *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall) IfNoneMatch(entityTag string) *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsEventThreatDetectionSettingsCustomModulesListDescendantCall) 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}/customModules:listDescendant")
	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", "securitycenter.organizations.eventThreatDetectionSettings.customModules.listDescendant", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates the Event Threat Detection custom module with the given name
// based on the given update mask. Updating the enablement state is supported
// for both resident and inherited modules (though resident modules cannot have
// an enablement state of "inherited"). Updating the display name or
// configuration of a module is supported for resident modules only. The type
// of a module cannot be changed.
//
//   - name: Immutable. The resource name of the Event Threat Detection custom
//     module. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *OrganizationsEventThreatDetectionSettingsCustomModulesService) Patch(name string, eventthreatdetectioncustommodule *EventThreatDetectionCustomModule) *OrganizationsEventThreatDetectionSettingsCustomModulesPatchCall {
	c := &OrganizationsEventThreatDetectionSettingsCustomModulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.eventthreatdetectioncustommodule = eventthreatdetectioncustommodule
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *OrganizationsEventThreatDetectionSettingsCustomModulesPatchCall) UpdateMask(updateMask string) *OrganizationsEventThreatDetectionSettingsCustomModulesPatchCall {
	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 *OrganizationsEventThreatDetectionSettingsCustomModulesPatchCall) Fields(s ...googleapi.Field) *OrganizationsEventThreatDetectionSettingsCustomModulesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsEventThreatDetectionSettingsCustomModulesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.eventthreatdetectioncustommodule)
	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", "securitycenter.organizations.eventThreatDetectionSettings.customModules.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// Get: Gets an effective Event Threat Detection custom module at the given
// level.
//
//   - name: The resource name of the effective Event Threat Detection custom
//     module. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomM
//     odules/{module}`. *
//     `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{modu
//     le}`. *
//     `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{mo
//     dule}`.
func (r *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService) Get(name string) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	c := &OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesGetCall{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 *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) Fields(s ...googleapi.Field) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	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 *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) IfNoneMatch(entityTag string) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) 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", "securitycenter.organizations.eventThreatDetectionSettings.effectiveCustomModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists all effective Event Threat Detection custom modules for the
// given parent. This includes resident modules defined at the scope of the
// parent along with modules inherited from its ancestors.
//
//   - parent: Name of the parent to list custom modules for. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesService) List(parent string) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c := &OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall) PageSize(pageSize int64) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListEffectiveEventThreatDetectionCustomModules` call.
// Provide this to retrieve the subsequent page. When paginating, all other
// parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must
// match the call that provided the page token.
func (c *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall) PageToken(pageToken string) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	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 *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall) Fields(s ...googleapi.Field) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	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 *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall) IfNoneMatch(entityTag string) *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsEventThreatDetectionSettingsEffectiveCustomModulesListCall) 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}/effectiveCustomModules")
	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", "securitycenter.organizations.eventThreatDetectionSettings.effectiveCustomModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// BulkMute: Kicks off an LRO to bulk mute findings for a parent based on a
// filter. The parent can be either an organization, folder or project. The
// findings matched by the filter will be muted after the LRO is done.
//
//   - parent: The parent, at which bulk action needs to be applied. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *OrganizationsFindingsService) BulkMute(parent string, bulkmutefindingsrequest *BulkMuteFindingsRequest) *OrganizationsFindingsBulkMuteCall {
	c := &OrganizationsFindingsBulkMuteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.bulkmutefindingsrequest = bulkmutefindingsrequest
	return c
}

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

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

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

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

// Do executes the "securitycenter.organizations.findings.bulkMute" 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 *OrganizationsFindingsBulkMuteCall) 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", "securitycenter.organizations.findings.bulkMute", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes an existing mute config.
//
//   - name: Name of the mute config to delete. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *OrganizationsLocationsMuteConfigsService) Delete(name string) *OrganizationsLocationsMuteConfigsDeleteCall {
	c := &OrganizationsLocationsMuteConfigsDeleteCall{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 *OrganizationsLocationsMuteConfigsDeleteCall) Fields(s ...googleapi.Field) *OrganizationsLocationsMuteConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsLocationsMuteConfigsDeleteCall) 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", "securitycenter.organizations.locations.muteConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.locations.muteConfigs.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 *OrganizationsLocationsMuteConfigsDeleteCall) 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", "securitycenter.organizations.locations.muteConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a mute config.
//
//   - name: Name of the mute config to retrieve. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *OrganizationsLocationsMuteConfigsService) Get(name string) *OrganizationsLocationsMuteConfigsGetCall {
	c := &OrganizationsLocationsMuteConfigsGetCall{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 *OrganizationsLocationsMuteConfigsGetCall) Fields(s ...googleapi.Field) *OrganizationsLocationsMuteConfigsGetCall {
	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 *OrganizationsLocationsMuteConfigsGetCall) IfNoneMatch(entityTag string) *OrganizationsLocationsMuteConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsLocationsMuteConfigsGetCall) 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", "securitycenter.organizations.locations.muteConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// Patch: Updates a mute config.
//
//   - name: This field will be ignored if provided on config creation. Format
//     `organizations/{organization}/muteConfigs/{mute_config}`
//     `folders/{folder}/muteConfigs/{mute_config}`
//     `projects/{project}/muteConfigs/{mute_config}`
//     `organizations/{organization}/locations/global/muteConfigs/{mute_config}`
//     `folders/{folder}/locations/global/muteConfigs/{mute_config}`
//     `projects/{project}/locations/global/muteConfigs/{mute_config}`.
func (r *OrganizationsLocationsMuteConfigsService) Patch(name string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *OrganizationsLocationsMuteConfigsPatchCall {
	c := &OrganizationsLocationsMuteConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *OrganizationsLocationsMuteConfigsPatchCall) UpdateMask(updateMask string) *OrganizationsLocationsMuteConfigsPatchCall {
	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 *OrganizationsLocationsMuteConfigsPatchCall) Fields(s ...googleapi.Field) *OrganizationsLocationsMuteConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsLocationsMuteConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1muteconfig)
	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", "securitycenter.organizations.locations.muteConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsMuteConfigsCreateCall struct {
	s                                     *Service
	parent                                string
	googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig
	urlParams_                            gensupport.URLParams
	ctx_                                  context.Context
	header_                               http.Header
}

// Create: Creates a mute config.
//
//   - parent: Resource name of the new mute configs's parent. Its format is
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *OrganizationsMuteConfigsService) Create(parent string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *OrganizationsMuteConfigsCreateCall {
	c := &OrganizationsMuteConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// MuteConfigId sets the optional parameter "muteConfigId": Required. Unique
// identifier provided by the client within the parent scope. It must consist
// of only lowercase letters, numbers, and hyphens, must start with a letter,
// must end with either a letter or a number, and must be 63 characters or
// less.
func (c *OrganizationsMuteConfigsCreateCall) MuteConfigId(muteConfigId string) *OrganizationsMuteConfigsCreateCall {
	c.urlParams_.Set("muteConfigId", muteConfigId)
	return c
}

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

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

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

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

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

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

// Delete: Deletes an existing mute config.
//
//   - name: Name of the mute config to delete. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *OrganizationsMuteConfigsService) Delete(name string) *OrganizationsMuteConfigsDeleteCall {
	c := &OrganizationsMuteConfigsDeleteCall{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 *OrganizationsMuteConfigsDeleteCall) Fields(s ...googleapi.Field) *OrganizationsMuteConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsMuteConfigsDeleteCall) 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", "securitycenter.organizations.muteConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.muteConfigs.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 *OrganizationsMuteConfigsDeleteCall) 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", "securitycenter.organizations.muteConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a mute config.
//
//   - name: Name of the mute config to retrieve. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *OrganizationsMuteConfigsService) Get(name string) *OrganizationsMuteConfigsGetCall {
	c := &OrganizationsMuteConfigsGetCall{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 *OrganizationsMuteConfigsGetCall) Fields(s ...googleapi.Field) *OrganizationsMuteConfigsGetCall {
	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 *OrganizationsMuteConfigsGetCall) IfNoneMatch(entityTag string) *OrganizationsMuteConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsMuteConfigsGetCall) 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", "securitycenter.organizations.muteConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists mute configs.
//
//   - parent: The parent, which owns the collection of mute configs. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *OrganizationsMuteConfigsService) List(parent string) *OrganizationsMuteConfigsListCall {
	c := &OrganizationsMuteConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// configs to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *OrganizationsMuteConfigsListCall) PageSize(pageSize int64) *OrganizationsMuteConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListMuteConfigs` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListMuteConfigs` must match the call that provided the page token.
func (c *OrganizationsMuteConfigsListCall) PageToken(pageToken string) *OrganizationsMuteConfigsListCall {
	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 *OrganizationsMuteConfigsListCall) Fields(s ...googleapi.Field) *OrganizationsMuteConfigsListCall {
	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 *OrganizationsMuteConfigsListCall) IfNoneMatch(entityTag string) *OrganizationsMuteConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsMuteConfigsListCall) 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}/muteConfigs")
	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", "securitycenter.organizations.muteConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates a mute config.
//
//   - name: This field will be ignored if provided on config creation. Format
//     `organizations/{organization}/muteConfigs/{mute_config}`
//     `folders/{folder}/muteConfigs/{mute_config}`
//     `projects/{project}/muteConfigs/{mute_config}`
//     `organizations/{organization}/locations/global/muteConfigs/{mute_config}`
//     `folders/{folder}/locations/global/muteConfigs/{mute_config}`
//     `projects/{project}/locations/global/muteConfigs/{mute_config}`.
func (r *OrganizationsMuteConfigsService) Patch(name string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *OrganizationsMuteConfigsPatchCall {
	c := &OrganizationsMuteConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *OrganizationsMuteConfigsPatchCall) UpdateMask(updateMask string) *OrganizationsMuteConfigsPatchCall {
	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 *OrganizationsMuteConfigsPatchCall) Fields(s ...googleapi.Field) *OrganizationsMuteConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsMuteConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1muteconfig)
	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", "securitycenter.organizations.muteConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsNotificationConfigsCreateCall struct {
	s                  *Service
	parent             string
	notificationconfig *NotificationConfig
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// Create: Creates a notification config.
//
//   - parent: Resource name of the new notification config's parent. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *OrganizationsNotificationConfigsService) Create(parent string, notificationconfig *NotificationConfig) *OrganizationsNotificationConfigsCreateCall {
	c := &OrganizationsNotificationConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.notificationconfig = notificationconfig
	return c
}

// ConfigId sets the optional parameter "configId": Required. Unique identifier
// provided by the client within the parent scope. It must be between 1 and 128
// characters and contain alphanumeric characters, underscores, or hyphens
// only.
func (c *OrganizationsNotificationConfigsCreateCall) ConfigId(configId string) *OrganizationsNotificationConfigsCreateCall {
	c.urlParams_.Set("configId", configId)
	return c
}

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

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

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

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

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

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

// Delete: Deletes a notification config.
//
//   - name: Name of the notification config to delete. Its format is
//     `organizations/[organization_id]/notificationConfigs/[config_id]`,
//     `folders/[folder_id]/notificationConfigs/[config_id]`, or
//     `projects/[project_id]/notificationConfigs/[config_id]`.
func (r *OrganizationsNotificationConfigsService) Delete(name string) *OrganizationsNotificationConfigsDeleteCall {
	c := &OrganizationsNotificationConfigsDeleteCall{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 *OrganizationsNotificationConfigsDeleteCall) Fields(s ...googleapi.Field) *OrganizationsNotificationConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsNotificationConfigsDeleteCall) 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", "securitycenter.organizations.notificationConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.notificationConfigs.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 *OrganizationsNotificationConfigsDeleteCall) 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", "securitycenter.organizations.notificationConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a notification config.
//
//   - name: Name of the notification config to get. Its format is
//     `organizations/[organization_id]/notificationConfigs/[config_id]`,
//     `folders/[folder_id]/notificationConfigs/[config_id]`, or
//     `projects/[project_id]/notificationConfigs/[config_id]`.
func (r *OrganizationsNotificationConfigsService) Get(name string) *OrganizationsNotificationConfigsGetCall {
	c := &OrganizationsNotificationConfigsGetCall{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 *OrganizationsNotificationConfigsGetCall) Fields(s ...googleapi.Field) *OrganizationsNotificationConfigsGetCall {
	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 *OrganizationsNotificationConfigsGetCall) IfNoneMatch(entityTag string) *OrganizationsNotificationConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsNotificationConfigsGetCall) 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", "securitycenter.organizations.notificationConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists notification configs.
//
//   - parent: The name of the parent in which to list the notification
//     configurations. Its format is "organizations/[organization_id]",
//     "folders/[folder_id]", or "projects/[project_id]".
func (r *OrganizationsNotificationConfigsService) List(parent string) *OrganizationsNotificationConfigsListCall {
	c := &OrganizationsNotificationConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsNotificationConfigsListCall) PageSize(pageSize int64) *OrganizationsNotificationConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListNotificationConfigsResponse`; indicates that this is a
// continuation of a prior `ListNotificationConfigs` call, and that the system
// should return the next page of data.
func (c *OrganizationsNotificationConfigsListCall) PageToken(pageToken string) *OrganizationsNotificationConfigsListCall {
	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 *OrganizationsNotificationConfigsListCall) Fields(s ...googleapi.Field) *OrganizationsNotificationConfigsListCall {
	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 *OrganizationsNotificationConfigsListCall) IfNoneMatch(entityTag string) *OrganizationsNotificationConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsNotificationConfigsListCall) 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}/notificationConfigs")
	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", "securitycenter.organizations.notificationConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch:  Updates a notification config. The following update fields are
// allowed: description, pubsub_topic, streaming_config.filter
//
//   - name: The relative resource name of this notification config. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Example:
//     "organizations/{organization_id}/notificationConfigs/notify_public_bucket",
//     "folders/{folder_id}/notificationConfigs/notify_public_bucket", or
//     "projects/{project_id}/notificationConfigs/notify_public_bucket".
func (r *OrganizationsNotificationConfigsService) Patch(name string, notificationconfig *NotificationConfig) *OrganizationsNotificationConfigsPatchCall {
	c := &OrganizationsNotificationConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.notificationconfig = notificationconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the notification config. If empty all mutable fields will be
// updated.
func (c *OrganizationsNotificationConfigsPatchCall) UpdateMask(updateMask string) *OrganizationsNotificationConfigsPatchCall {
	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 *OrganizationsNotificationConfigsPatchCall) Fields(s ...googleapi.Field) *OrganizationsNotificationConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsNotificationConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.notificationconfig)
	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", "securitycenter.organizations.notificationConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsOperationsCancelCall struct {
	s          *Service
	name       string
	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 *OrganizationsOperationsService) Cancel(name string) *OrganizationsOperationsCancelCall {
	c := &OrganizationsOperationsCancelCall{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 *OrganizationsOperationsCancelCall) Fields(s ...googleapi.Field) *OrganizationsOperationsCancelCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsOperationsCancelCall) 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}:cancel")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", 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", "securitycenter.organizations.operations.cancel", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.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 *OrganizationsOperationsCancelCall) 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", "securitycenter.organizations.operations.cancel", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsOperationsDeleteCall 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 *OrganizationsOperationsService) Delete(name string) *OrganizationsOperationsDeleteCall {
	c := &OrganizationsOperationsDeleteCall{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 *OrganizationsOperationsDeleteCall) Fields(s ...googleapi.Field) *OrganizationsOperationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsOperationsDeleteCall) 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", "securitycenter.organizations.operations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.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 *OrganizationsOperationsDeleteCall) 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", "securitycenter.organizations.operations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsOperationsGetCall 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 *OrganizationsOperationsService) Get(name string) *OrganizationsOperationsGetCall {
	c := &OrganizationsOperationsGetCall{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 *OrganizationsOperationsGetCall) Fields(s ...googleapi.Field) *OrganizationsOperationsGetCall {
	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 *OrganizationsOperationsGetCall) IfNoneMatch(entityTag string) *OrganizationsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsOperationsGetCall) 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", "securitycenter.organizations.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.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 *OrganizationsOperationsGetCall) 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", "securitycenter.organizations.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsOperationsListCall 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 *OrganizationsOperationsService) List(name string) *OrganizationsOperationsListCall {
	c := &OrganizationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *OrganizationsOperationsListCall) Filter(filter string) *OrganizationsOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *OrganizationsOperationsListCall) PageSize(pageSize int64) *OrganizationsOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *OrganizationsOperationsListCall) PageToken(pageToken string) *OrganizationsOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *OrganizationsOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *OrganizationsOperationsListCall {
	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 *OrganizationsOperationsListCall) Fields(s ...googleapi.Field) *OrganizationsOperationsListCall {
	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 *OrganizationsOperationsListCall) IfNoneMatch(entityTag string) *OrganizationsOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsOperationsListCall) 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", "securitycenter.organizations.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.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 *OrganizationsOperationsListCall) 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", "securitycenter.organizations.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 *OrganizationsOperationsListCall) 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 OrganizationsResourceValueConfigsBatchCreateCall struct {
	s                                      *Service
	parent                                 string
	batchcreateresourcevalueconfigsrequest *BatchCreateResourceValueConfigsRequest
	urlParams_                             gensupport.URLParams
	ctx_                                   context.Context
	header_                                http.Header
}

// BatchCreate: Creates a ResourceValueConfig for an organization. Maps user's
// tags to difference resource values for use by the attack path simulation.
//
//   - parent: Resource name of the new ResourceValueConfig's parent. The parent
//     field in the CreateResourceValueConfigRequest messages must either be
//     empty or match this field.
func (r *OrganizationsResourceValueConfigsService) BatchCreate(parent string, batchcreateresourcevalueconfigsrequest *BatchCreateResourceValueConfigsRequest) *OrganizationsResourceValueConfigsBatchCreateCall {
	c := &OrganizationsResourceValueConfigsBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.batchcreateresourcevalueconfigsrequest = batchcreateresourcevalueconfigsrequest
	return c
}

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

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

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

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

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

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

// Delete: Deletes a ResourceValueConfig.
//
// - name: Name of the ResourceValueConfig to delete.
func (r *OrganizationsResourceValueConfigsService) Delete(name string) *OrganizationsResourceValueConfigsDeleteCall {
	c := &OrganizationsResourceValueConfigsDeleteCall{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 *OrganizationsResourceValueConfigsDeleteCall) Fields(s ...googleapi.Field) *OrganizationsResourceValueConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsResourceValueConfigsDeleteCall) 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", "securitycenter.organizations.resourceValueConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.resourceValueConfigs.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 *OrganizationsResourceValueConfigsDeleteCall) 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", "securitycenter.organizations.resourceValueConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets a ResourceValueConfig.
//
//   - name: Name of the resource value config to retrieve. Its format is
//     `organizations/{organization}/resourceValueConfigs/{config_id}`.
func (r *OrganizationsResourceValueConfigsService) Get(name string) *OrganizationsResourceValueConfigsGetCall {
	c := &OrganizationsResourceValueConfigsGetCall{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 *OrganizationsResourceValueConfigsGetCall) Fields(s ...googleapi.Field) *OrganizationsResourceValueConfigsGetCall {
	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 *OrganizationsResourceValueConfigsGetCall) IfNoneMatch(entityTag string) *OrganizationsResourceValueConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsResourceValueConfigsGetCall) 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", "securitycenter.organizations.resourceValueConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists all ResourceValueConfigs.
//
//   - parent: The parent, which owns the collection of resource value configs.
//     Its format is `organizations/[organization_id]`.
func (r *OrganizationsResourceValueConfigsService) List(parent string) *OrganizationsResourceValueConfigsListCall {
	c := &OrganizationsResourceValueConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The number of results to
// return. The service may return fewer than this value. If unspecified, at
// most 10 configs will be returned. The maximum value is 1000; values above
// 1000 will be coerced to 1000.
func (c *OrganizationsResourceValueConfigsListCall) PageSize(pageSize int64) *OrganizationsResourceValueConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListResourceValueConfigs` call. Provide this to retrieve
// the subsequent page. When paginating, all other parameters provided to
// `ListResourceValueConfigs` must match the call that provided the page token.
// page_size can be specified, and the new page_size will be used.
func (c *OrganizationsResourceValueConfigsListCall) PageToken(pageToken string) *OrganizationsResourceValueConfigsListCall {
	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 *OrganizationsResourceValueConfigsListCall) Fields(s ...googleapi.Field) *OrganizationsResourceValueConfigsListCall {
	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 *OrganizationsResourceValueConfigsListCall) IfNoneMatch(entityTag string) *OrganizationsResourceValueConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsResourceValueConfigsListCall) 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}/resourceValueConfigs")
	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", "securitycenter.organizations.resourceValueConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates an existing ResourceValueConfigs with new rules.
//
// - name: Name for the resource value configuration.
func (r *OrganizationsResourceValueConfigsService) Patch(name string, googlecloudsecuritycenterv1resourcevalueconfig *GoogleCloudSecuritycenterV1ResourceValueConfig) *OrganizationsResourceValueConfigsPatchCall {
	c := &OrganizationsResourceValueConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1resourcevalueconfig = googlecloudsecuritycenterv1resourcevalueconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *OrganizationsResourceValueConfigsPatchCall) UpdateMask(updateMask string) *OrganizationsResourceValueConfigsPatchCall {
	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 *OrganizationsResourceValueConfigsPatchCall) Fields(s ...googleapi.Field) *OrganizationsResourceValueConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsResourceValueConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1resourcevalueconfig)
	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", "securitycenter.organizations.resourceValueConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsSecurityHealthAnalyticsSettingsCustomModulesCreateCall struct {
	s                                                              *Service
	parent                                                         string
	googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Create: Creates a resident SecurityHealthAnalyticsCustomModule at the scope
// of the given CRM parent, and also creates inherited
// SecurityHealthAnalyticsCustomModules for all CRM descendants of the given
// parent. These modules are enabled by default.
//
//   - parent: Resource name of the new custom module's parent. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService) Create(parent string, googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesCreateCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule = googlecloudsecuritycenterv1securityhealthanalyticscustommodule
	return c
}

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

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

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

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

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

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

// Delete: Deletes the specified SecurityHealthAnalyticsCustomModule and all of
// its descendants in the CRM hierarchy. This method is only supported for
// resident custom modules.
//
//   - name: Name of the custom module to delete. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService) Delete(name string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall{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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) Fields(s ...googleapi.Field) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) 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", "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) 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", "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Retrieves a SecurityHealthAnalyticsCustomModule.
//
//   - name: Name of the custom module to get. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService) Get(name string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesGetCall{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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesGetCall) Fields(s ...googleapi.Field) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesGetCall) IfNoneMatch(entityTag string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesGetCall) 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", "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Returns a list of all SecurityHealthAnalyticsCustomModules for the
// given parent. This includes resident modules defined at the scope of the
// parent, and inherited modules, inherited from CRM ancestors.
//
//   - parent: Name of parent to list custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService) List(parent string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall) PageSize(pageSize int64) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall) PageToken(pageToken string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall) Fields(s ...googleapi.Field) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall) IfNoneMatch(entityTag string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListCall) 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}/customModules")
	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", "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// ListDescendant: Returns a list of all resident
// SecurityHealthAnalyticsCustomModules under the given CRM parent and all of
// the parent’s CRM descendants.
//
//   - parent: Name of parent to list descendant custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService) ListDescendant(parent string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) PageSize(pageSize int64) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) PageToken(pageToken string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) Fields(s ...googleapi.Field) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) IfNoneMatch(entityTag string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) 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}/customModules:listDescendant")
	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", "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.listDescendant", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates the SecurityHealthAnalyticsCustomModule under the given name
// based on the given update mask. Updating the enablement state is supported
// on both resident and inherited modules (though resident modules cannot have
// an enablement state of "inherited"). Updating the display name and custom
// config of a module is supported on resident modules only.
//
//   - name: Immutable. The resource name of the custom module. Its format is
//     "organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}", or
//     "folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}", or
//     "projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}" The id {customModule} is server-generated and is not user settable.
//     It will be a numeric id containing 1-20 digits.
func (r *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService) Patch(name string, googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule = googlecloudsecuritycenterv1securityhealthanalyticscustommodule
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. The only fields that can be updated are `enablement_state` and
// `custom_config`. If empty or set to the wildcard value `*`, both
// `enablement_state` and `custom_config` are updated.
func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) UpdateMask(updateMask string) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) Fields(s ...googleapi.Field) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule)
	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", "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall struct {
	s                                                  *Service
	parent                                             string
	simulatesecurityhealthanalyticscustommodulerequest *SimulateSecurityHealthAnalyticsCustomModuleRequest
	urlParams_                                         gensupport.URLParams
	ctx_                                               context.Context
	header_                                            http.Header
}

// Simulate: Simulates a given SecurityHealthAnalyticsCustomModule and
// Resource.
//
//   - parent: The relative resource name of the organization, project, or
//     folder. For more information about relative resource names, see Relative
//     Resource Name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     Example: `organizations/{organization_id}`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesService) Simulate(parent string, simulatesecurityhealthanalyticscustommodulerequest *SimulateSecurityHealthAnalyticsCustomModuleRequest) *OrganizationsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.simulatesecurityhealthanalyticscustommodulerequest = simulatesecurityhealthanalyticscustommodulerequest
	return c
}

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

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

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

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

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

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

// Get: Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.
//
//   - name: Name of the effective custom module to get. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/effectiveCust
//     omModules/{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{c
//     ustomModule}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/
//     {customModule}`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService) Get(name string) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall{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 *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) Fields(s ...googleapi.Field) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) IfNoneMatch(entityTag string) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) 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", "securitycenter.organizations.securityHealthAnalyticsSettings.effectiveCustomModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules
// for the given parent. This includes resident modules defined at the scope of
// the parent, and inherited modules, inherited from CRM ancestors.
//
//   - parent: Name of parent to list effective custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService) List(parent string) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c := &OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) PageSize(pageSize int64) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) PageToken(pageToken string) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) Fields(s ...googleapi.Field) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	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 *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) IfNoneMatch(entityTag string) *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) 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}/effectiveCustomModules")
	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", "securitycenter.organizations.securityHealthAnalyticsSettings.effectiveCustomModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Get: Get the simulation by name or the latest simulation for the given
// organization.
//
//   - name: The organization name or simulation name of this simulation Valid
//     format: `organizations/{organization}/simulations/latest`
//     `organizations/{organization}/simulations/{simulation}`.
func (r *OrganizationsSimulationsService) Get(name string) *OrganizationsSimulationsGetCall {
	c := &OrganizationsSimulationsGetCall{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 *OrganizationsSimulationsGetCall) Fields(s ...googleapi.Field) *OrganizationsSimulationsGetCall {
	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 *OrganizationsSimulationsGetCall) IfNoneMatch(entityTag string) *OrganizationsSimulationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSimulationsGetCall) 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", "securitycenter.organizations.simulations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists the attack paths for a set of simulation results or valued
// resources and filter.
//
//   - parent: Name of parent to list attack paths. Valid formats:
//     `organizations/{organization}`,
//     `organizations/{organization}/simulations/{simulation}`
//     `organizations/{organization}/simulations/{simulation}/attackExposureResult
//     s/{attack_exposure_result_v2}`
//     `organizations/{organization}/simulations/{simulation}/valuedResources/{val
//     ued_resource}`.
func (r *OrganizationsSimulationsAttackExposureResultsAttackPathsService) List(parent string) *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall {
	c := &OrganizationsSimulationsAttackExposureResultsAttackPathsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter expression that
// filters the attack path in the response. Supported fields: *
// `valued_resources` supports =
func (c *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall) Filter(filter string) *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall) PageSize(pageSize int64) *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListAttackPathsResponse`; indicates that this is a continuation of a
// prior `ListAttackPaths` call, and that the system should return the next
// page of data.
func (c *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall) PageToken(pageToken string) *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall {
	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 *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall) Fields(s ...googleapi.Field) *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall {
	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 *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall) IfNoneMatch(entityTag string) *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSimulationsAttackExposureResultsAttackPathsListCall) 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}/attackPaths")
	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", "securitycenter.organizations.simulations.attackExposureResults.attackPaths.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists the valued resources for a set of simulation results and filter.
//
//   - parent: Name of parent to list valued resources. Valid formats:
//     `organizations/{organization}`,
//     `organizations/{organization}/simulations/{simulation}`
//     `organizations/{organization}/simulations/{simulation}/attackExposureResult
//     s/{attack_exposure_result_v2}`.
func (r *OrganizationsSimulationsAttackExposureResultsValuedResourcesService) List(parent string) *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall {
	c := &OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter expression that
// filters the valued resources in the response. Supported fields: *
// `resource_value` supports = * `resource_type` supports =
func (c *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall) Filter(filter string) *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": The fields by which to order
// the valued resources response. Supported fields: * `exposed_score` *
// `resource_value` * `resource_type` * `resource` * `display_name` Values
// should be a comma separated list of fields. For example:
// `exposed_score,resource_value`. The default sorting order is descending. To
// specify ascending or descending order for a field, append a ` ASC` or a `
// DESC` suffix, respectively; for example: `exposed_score DESC`.
func (c *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall) OrderBy(orderBy string) *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall) PageSize(pageSize int64) *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListValuedResourcesResponse`; indicates that this is a continuation of
// a prior `ListValuedResources` call, and that the system should return the
// next page of data.
func (c *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall) PageToken(pageToken string) *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall {
	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 *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall) Fields(s ...googleapi.Field) *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall {
	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 *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall) IfNoneMatch(entityTag string) *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSimulationsAttackExposureResultsValuedResourcesListCall) 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}/valuedResources")
	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", "securitycenter.organizations.simulations.attackExposureResults.valuedResources.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists the attack paths for a set of simulation results or valued
// resources and filter.
//
//   - parent: Name of parent to list attack paths. Valid formats:
//     `organizations/{organization}`,
//     `organizations/{organization}/simulations/{simulation}`
//     `organizations/{organization}/simulations/{simulation}/attackExposureResult
//     s/{attack_exposure_result_v2}`
//     `organizations/{organization}/simulations/{simulation}/valuedResources/{val
//     ued_resource}`.
func (r *OrganizationsSimulationsAttackPathsService) List(parent string) *OrganizationsSimulationsAttackPathsListCall {
	c := &OrganizationsSimulationsAttackPathsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter expression that
// filters the attack path in the response. Supported fields: *
// `valued_resources` supports =
func (c *OrganizationsSimulationsAttackPathsListCall) Filter(filter string) *OrganizationsSimulationsAttackPathsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSimulationsAttackPathsListCall) PageSize(pageSize int64) *OrganizationsSimulationsAttackPathsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListAttackPathsResponse`; indicates that this is a continuation of a
// prior `ListAttackPaths` call, and that the system should return the next
// page of data.
func (c *OrganizationsSimulationsAttackPathsListCall) PageToken(pageToken string) *OrganizationsSimulationsAttackPathsListCall {
	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 *OrganizationsSimulationsAttackPathsListCall) Fields(s ...googleapi.Field) *OrganizationsSimulationsAttackPathsListCall {
	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 *OrganizationsSimulationsAttackPathsListCall) IfNoneMatch(entityTag string) *OrganizationsSimulationsAttackPathsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSimulationsAttackPathsListCall) 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}/attackPaths")
	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", "securitycenter.organizations.simulations.attackPaths.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Get: Get the valued resource by name
//
//   - name: The name of this valued resource Valid format:
//     `organizations/{organization}/simulations/{simulation}/valuedResources/{val
//     ued_resource}`.
func (r *OrganizationsSimulationsValuedResourcesService) Get(name string) *OrganizationsSimulationsValuedResourcesGetCall {
	c := &OrganizationsSimulationsValuedResourcesGetCall{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 *OrganizationsSimulationsValuedResourcesGetCall) Fields(s ...googleapi.Field) *OrganizationsSimulationsValuedResourcesGetCall {
	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 *OrganizationsSimulationsValuedResourcesGetCall) IfNoneMatch(entityTag string) *OrganizationsSimulationsValuedResourcesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSimulationsValuedResourcesGetCall) 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", "securitycenter.organizations.simulations.valuedResources.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists the valued resources for a set of simulation results and filter.
//
//   - parent: Name of parent to list valued resources. Valid formats:
//     `organizations/{organization}`,
//     `organizations/{organization}/simulations/{simulation}`
//     `organizations/{organization}/simulations/{simulation}/attackExposureResult
//     s/{attack_exposure_result_v2}`.
func (r *OrganizationsSimulationsValuedResourcesService) List(parent string) *OrganizationsSimulationsValuedResourcesListCall {
	c := &OrganizationsSimulationsValuedResourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter expression that
// filters the valued resources in the response. Supported fields: *
// `resource_value` supports = * `resource_type` supports =
func (c *OrganizationsSimulationsValuedResourcesListCall) Filter(filter string) *OrganizationsSimulationsValuedResourcesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": The fields by which to order
// the valued resources response. Supported fields: * `exposed_score` *
// `resource_value` * `resource_type` * `resource` * `display_name` Values
// should be a comma separated list of fields. For example:
// `exposed_score,resource_value`. The default sorting order is descending. To
// specify ascending or descending order for a field, append a ` ASC` or a `
// DESC` suffix, respectively; for example: `exposed_score DESC`.
func (c *OrganizationsSimulationsValuedResourcesListCall) OrderBy(orderBy string) *OrganizationsSimulationsValuedResourcesListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSimulationsValuedResourcesListCall) PageSize(pageSize int64) *OrganizationsSimulationsValuedResourcesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListValuedResourcesResponse`; indicates that this is a continuation of
// a prior `ListValuedResources` call, and that the system should return the
// next page of data.
func (c *OrganizationsSimulationsValuedResourcesListCall) PageToken(pageToken string) *OrganizationsSimulationsValuedResourcesListCall {
	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 *OrganizationsSimulationsValuedResourcesListCall) Fields(s ...googleapi.Field) *OrganizationsSimulationsValuedResourcesListCall {
	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 *OrganizationsSimulationsValuedResourcesListCall) IfNoneMatch(entityTag string) *OrganizationsSimulationsValuedResourcesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSimulationsValuedResourcesListCall) 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}/valuedResources")
	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", "securitycenter.organizations.simulations.valuedResources.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists the attack paths for a set of simulation results or valued
// resources and filter.
//
//   - parent: Name of parent to list attack paths. Valid formats:
//     `organizations/{organization}`,
//     `organizations/{organization}/simulations/{simulation}`
//     `organizations/{organization}/simulations/{simulation}/attackExposureResult
//     s/{attack_exposure_result_v2}`
//     `organizations/{organization}/simulations/{simulation}/valuedResources/{val
//     ued_resource}`.
func (r *OrganizationsSimulationsValuedResourcesAttackPathsService) List(parent string) *OrganizationsSimulationsValuedResourcesAttackPathsListCall {
	c := &OrganizationsSimulationsValuedResourcesAttackPathsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter expression that
// filters the attack path in the response. Supported fields: *
// `valued_resources` supports =
func (c *OrganizationsSimulationsValuedResourcesAttackPathsListCall) Filter(filter string) *OrganizationsSimulationsValuedResourcesAttackPathsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSimulationsValuedResourcesAttackPathsListCall) PageSize(pageSize int64) *OrganizationsSimulationsValuedResourcesAttackPathsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListAttackPathsResponse`; indicates that this is a continuation of a
// prior `ListAttackPaths` call, and that the system should return the next
// page of data.
func (c *OrganizationsSimulationsValuedResourcesAttackPathsListCall) PageToken(pageToken string) *OrganizationsSimulationsValuedResourcesAttackPathsListCall {
	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 *OrganizationsSimulationsValuedResourcesAttackPathsListCall) Fields(s ...googleapi.Field) *OrganizationsSimulationsValuedResourcesAttackPathsListCall {
	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 *OrganizationsSimulationsValuedResourcesAttackPathsListCall) IfNoneMatch(entityTag string) *OrganizationsSimulationsValuedResourcesAttackPathsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSimulationsValuedResourcesAttackPathsListCall) 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}/attackPaths")
	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", "securitycenter.organizations.simulations.valuedResources.attackPaths.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Create: Creates a source.
//
//   - parent: Resource name of the new source's parent. Its format should be
//     `organizations/[organization_id]`.
func (r *OrganizationsSourcesService) Create(parent string, source *Source) *OrganizationsSourcesCreateCall {
	c := &OrganizationsSourcesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.source = source
	return c
}

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

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

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

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

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

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

// Get: Gets a source.
//
//   - name: Relative resource name of the source. Its format is
//     `organizations/[organization_id]/source/[source_id]`.
func (r *OrganizationsSourcesService) Get(name string) *OrganizationsSourcesGetCall {
	c := &OrganizationsSourcesGetCall{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 *OrganizationsSourcesGetCall) Fields(s ...googleapi.Field) *OrganizationsSourcesGetCall {
	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 *OrganizationsSourcesGetCall) IfNoneMatch(entityTag string) *OrganizationsSourcesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSourcesGetCall) 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", "securitycenter.organizations.sources.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsSourcesGetIamPolicyCall struct {
	s                   *Service
	resource            string
	getiampolicyrequest *GetIamPolicyRequest
	urlParams_          gensupport.URLParams
	ctx_                context.Context
	header_             http.Header
}

// GetIamPolicy: Gets the access control policy on the specified Source.
//
//   - resource: REQUIRED: The resource for which the policy is being requested.
//     See Resource names (https://cloud.google.com/apis/design/resource_names)
//     for the appropriate value for this field.
func (r *OrganizationsSourcesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *OrganizationsSourcesGetIamPolicyCall {
	c := &OrganizationsSourcesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resource = resource
	c.getiampolicyrequest = getiampolicyrequest
	return c
}

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

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

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

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

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

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

// List: Lists all sources belonging to an organization.
//
//   - parent: Resource name of the parent of sources to list. Its format should
//     be `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *OrganizationsSourcesService) List(parent string) *OrganizationsSourcesListCall {
	c := &OrganizationsSourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSourcesListCall) PageSize(pageSize int64) *OrganizationsSourcesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListSourcesResponse`; indicates that this is a continuation of a prior
// `ListSources` call, and that the system should return the next page of data.
func (c *OrganizationsSourcesListCall) PageToken(pageToken string) *OrganizationsSourcesListCall {
	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 *OrganizationsSourcesListCall) Fields(s ...googleapi.Field) *OrganizationsSourcesListCall {
	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 *OrganizationsSourcesListCall) IfNoneMatch(entityTag string) *OrganizationsSourcesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

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

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

func (c *OrganizationsSourcesListCall) 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}/sources")
	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", "securitycenter.organizations.sources.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Patch: Updates a source.
//
//   - name: The relative resource name of this source. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Example: "organizations/{organization_id}/sources/{source_id}".
func (r *OrganizationsSourcesService) Patch(name string, source *Source) *OrganizationsSourcesPatchCall {
	c := &OrganizationsSourcesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.source = source
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the source resource. If empty all mutable fields will be
// updated.
func (c *OrganizationsSourcesPatchCall) UpdateMask(updateMask string) *OrganizationsSourcesPatchCall {
	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 *OrganizationsSourcesPatchCall) Fields(s ...googleapi.Field) *OrganizationsSourcesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

func (c *OrganizationsSourcesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.source)
	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", "securitycenter.organizations.sources.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

type OrganizationsSourcesSetIamPolicyCall struct {
	s                   *Service
	resource            string
	setiampolicyrequest *SetIamPolicyRequest
	urlParams_          gensupport.URLParams
	ctx_                context.Context
	header_             http.Header
}

// SetIamPolicy: Sets the access control policy on the specified Source.
//
//   - resource: REQUIRED: The resource for which the policy is being specified.
//     See Resource names (https://cloud.google.com/apis/design/resource_names)
//     for the appropriate value for this field.
func (r *OrganizationsSourcesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *OrganizationsSourcesSetIamPolicyCall {
	c := &OrganizationsSourcesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resource = resource
	c.setiampolicyrequest = setiampolicyrequest
	return c
}

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

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

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

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

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

type OrganizationsSourcesTestIamPermissionsCall struct {
	s                         *Service
	resource                  string
	testiampermissionsrequest *TestIamPermissionsRequest
	urlParams_                gensupport.URLParams
	ctx_                      context.Context
	header_                   http.Header
}

// TestIamPermissions: Returns the permissions that a caller has on the
// specified source.
//
//   - resource: REQUIRED: The resource for which the policy detail is being
//     requested. See Resource names
//     (https://cloud.google.com/apis/design/resource_names) for the appropriate
//     value for this field.
func (r *OrganizationsSourcesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *OrganizationsSourcesTestIamPermissionsCall {
	c := &OrganizationsSourcesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resource = resource
	c.testiampermissionsrequest = testiampermissionsrequest
	return c
}

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

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

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

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

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

type OrganizationsSourcesFindingsCreateCall struct {
	s          *Service
	parent     string
	finding    *Finding
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a finding. The corresponding source must exist for finding
// creation to succeed.
//
//   - parent: Resource name of the new finding's parent. Its format should be
//     `organizations/[organization_id]/sources/[source_id]`.
func (r *OrganizationsSourcesFindingsService) Create(parent string, finding *Finding) *OrganizationsSourcesFindingsCreateCall {
	c := &OrganizationsSourcesFindingsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.finding = finding
	return c
}

// FindingId sets the optional parameter "findingId": Required. Unique
// identifier provided by the client within the parent scope. It must be
// alphanumeric and less than or equal to 32 characters and greater than 0
// characters in length.
func (c *OrganizationsSourcesFindingsCreateCall) FindingId(findingId string) *OrganizationsSourcesFindingsCreateCall {
	c.urlParams_.Set("findingId", findingId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *OrganizationsSourcesFindingsCreateCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsCreateCall) Context(ctx context.Context) *OrganizationsSourcesFindingsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.finding)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/findings")
	urls += "?" + c.urlParams_.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", "securitycenter.organizations.sources.findings.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Finding.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *OrganizationsSourcesFindingsCreateCall) Do(opts ...googleapi.CallOption) (*Finding, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Finding{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsSourcesFindingsGroupCall struct {
	s                    *Service
	parent               string
	groupfindingsrequest *GroupFindingsRequest
	urlParams_           gensupport.URLParams
	ctx_                 context.Context
	header_              http.Header
}

// Group: Filters an organization or source's findings and groups them by their
// specified properties. To group across all sources provide a `-` as the
// source id. Example: /v1/organizations/{organization_id}/sources/-/findings,
// /v1/folders/{folder_id}/sources/-/findings,
// /v1/projects/{project_id}/sources/-/findings
//
//   - parent: Name of the source to groupBy. Its format is
//     `organizations/[organization_id]/sources/[source_id]`,
//     `folders/[folder_id]/sources/[source_id]`, or
//     `projects/[project_id]/sources/[source_id]`. To groupBy across all sources
//     provide a source_id of `-`. For example:
//     `organizations/{organization_id}/sources/-,
//     folders/{folder_id}/sources/-`, or `projects/{project_id}/sources/-`.
func (r *OrganizationsSourcesFindingsService) Group(parent string, groupfindingsrequest *GroupFindingsRequest) *OrganizationsSourcesFindingsGroupCall {
	c := &OrganizationsSourcesFindingsGroupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.groupfindingsrequest = groupfindingsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *OrganizationsSourcesFindingsGroupCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsGroupCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsGroupCall) Context(ctx context.Context) *OrganizationsSourcesFindingsGroupCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsGroupCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsGroupCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.groupfindingsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/findings:group")
	urls += "?" + c.urlParams_.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", "securitycenter.organizations.sources.findings.group", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.group" call.
// Any non-2xx status code is an error. Response headers are in either
// *GroupFindingsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *OrganizationsSourcesFindingsGroupCall) Do(opts ...googleapi.CallOption) (*GroupFindingsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GroupFindingsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.group", "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 *OrganizationsSourcesFindingsGroupCall) Pages(ctx context.Context, f func(*GroupFindingsResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.groupfindingsrequest.PageToken = pt }(c.groupfindingsrequest.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.groupfindingsrequest.PageToken = x.NextPageToken
	}
}

type OrganizationsSourcesFindingsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists an organization or source's findings. To list across all sources
// provide a `-` as the source id. Example:
// /v1/organizations/{organization_id}/sources/-/findings
//
//   - parent: Name of the source the findings belong to. Its format is
//     `organizations/[organization_id]/sources/[source_id]`,
//     `folders/[folder_id]/sources/[source_id]`, or
//     `projects/[project_id]/sources/[source_id]`. To list across all sources
//     provide a source_id of `-`. For example:
//     `organizations/{organization_id}/sources/-`,
//     `folders/{folder_id}/sources/-` or `projects/{projects_id}/sources/-`.
func (r *OrganizationsSourcesFindingsService) List(parent string) *OrganizationsSourcesFindingsListCall {
	c := &OrganizationsSourcesFindingsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// CompareDuration sets the optional parameter "compareDuration": When
// compare_duration is set, the ListFindingsResult's "state_change" attribute
// is updated to indicate whether the finding had its state changed, the
// finding's state remained unchanged, or if the finding was added in any state
// during the compare_duration period of time that precedes the read_time. This
// is the time between (read_time - compare_duration) and read_time. The
// state_change value is derived based on the presence and state of the finding
// at the two points in time. Intermediate state changes between the two times
// don't affect the result. For example, the results aren't affected if the
// finding is made inactive and then active again. Possible "state_change"
// values when compare_duration is specified: * "CHANGED": indicates that the
// finding was present and matched the given filter at the start of
// compare_duration, but changed its state at read_time. * "UNCHANGED":
// indicates that the finding was present and matched the given filter at the
// start of compare_duration and did not change state at read_time. * "ADDED":
// indicates that the finding did not match the given filter or was not present
// at the start of compare_duration, but was present at read_time. * "REMOVED":
// indicates that the finding was present and matched the filter at the start
// of compare_duration, but did not match the filter at read_time. If
// compare_duration is not specified, then the only possible state_change is
// "UNUSED", which will be the state_change set for all findings present at
// read_time.
func (c *OrganizationsSourcesFindingsListCall) CompareDuration(compareDuration string) *OrganizationsSourcesFindingsListCall {
	c.urlParams_.Set("compareDuration", compareDuration)
	return c
}

// FieldMask sets the optional parameter "fieldMask": A field mask to specify
// the Finding fields to be listed in the response. An empty field mask will
// list all fields.
func (c *OrganizationsSourcesFindingsListCall) FieldMask(fieldMask string) *OrganizationsSourcesFindingsListCall {
	c.urlParams_.Set("fieldMask", fieldMask)
	return c
}

// Filter sets the optional parameter "filter": Expression that defines the
// filter to apply across findings. The expression is a list of one or more
// restrictions combined via logical operators `AND` and `OR`. Parentheses are
// supported, and `OR` has higher precedence than `AND`. Restrictions have the
// form ` ` and may have a `-` character in front of them to indicate negation.
// Examples include: * name * source_properties.a_property *
// security_marks.marks.marka The supported operators are: * `=` for all value
// types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring
// matching, for strings. The supported value types are: * string literals in
// quotes. * integer literals without quotes. * boolean literals `true` and
// `false` without quotes. The following field and operator combinations are
// supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state:
// `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`,
// `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an
// RFC3339 string. Examples: `event_time = "2019-06-10T16:07:18-07:00"
// `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:`
// * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`,
// `>=`, `<=` For example, `source_properties.size = 100` is a valid filter
// string. Use a partial match on the empty string to filter based on a
// property existing: `source_properties.my_property : "" Use a negated
// partial match on the empty string to filter based on a property not
// existing: `-source_properties.my_property : "" * resource: * resource.name:
// `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name:
// `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name:
// `=`, `:` * resource.type: `=`, `:` * resource.folders.resource_folder: `=`,
// `:` * resource.display_name: `=`, `:`
func (c *OrganizationsSourcesFindingsListCall) Filter(filter string) *OrganizationsSourcesFindingsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Expression that defines what
// fields and order to use for sorting. The string value should follow SQL
// syntax: comma separated list of fields. For example:
// "name,resource_properties.a_property". The default sorting order is
// ascending. To specify descending order for a field, a suffix " desc" should
// be appended to the field name. For example: "name
// desc,source_properties.a_property". Redundant space characters in the syntax
// are insignificant. "name desc,source_properties.a_property" and " name desc
// , source_properties.a_property " are equivalent. The following fields are
// supported: name parent state category resource_name event_time
// source_properties security_marks.marks
func (c *OrganizationsSourcesFindingsListCall) OrderBy(orderBy string) *OrganizationsSourcesFindingsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsSourcesFindingsListCall) PageSize(pageSize int64) *OrganizationsSourcesFindingsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListFindingsResponse`; indicates that this is a continuation of a
// prior `ListFindings` call, and that the system should return the next page
// of data.
func (c *OrganizationsSourcesFindingsListCall) PageToken(pageToken string) *OrganizationsSourcesFindingsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReadTime sets the optional parameter "readTime": Time used as a reference
// point when filtering findings. The filter is limited to findings existing at
// the supplied time and their values are those at that specific time. Absence
// of this field will default to the API's version of NOW.
func (c *OrganizationsSourcesFindingsListCall) ReadTime(readTime string) *OrganizationsSourcesFindingsListCall {
	c.urlParams_.Set("readTime", readTime)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *OrganizationsSourcesFindingsListCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsListCall {
	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 *OrganizationsSourcesFindingsListCall) IfNoneMatch(entityTag string) *OrganizationsSourcesFindingsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsListCall) Context(ctx context.Context) *OrganizationsSourcesFindingsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsListCall) 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}/findings")
	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", "securitycenter.organizations.sources.findings.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListFindingsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *OrganizationsSourcesFindingsListCall) Do(opts ...googleapi.CallOption) (*ListFindingsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListFindingsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.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 *OrganizationsSourcesFindingsListCall) Pages(ctx context.Context, f func(*ListFindingsResponse) 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 OrganizationsSourcesFindingsPatchCall struct {
	s          *Service
	name       string
	finding    *Finding
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Creates or updates a finding. The corresponding source must exist for
// a finding creation to succeed.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}"
//     , "folders/{folder_id}/sources/{source_id}/findings/{finding_id}",
//     "projects/{project_id}/sources/{source_id}/findings/{finding_id}".
func (r *OrganizationsSourcesFindingsService) Patch(name string, finding *Finding) *OrganizationsSourcesFindingsPatchCall {
	c := &OrganizationsSourcesFindingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.finding = finding
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the finding resource. This field should not be specified when
// creating a finding. When updating a finding, an empty mask is treated as
// updating all mutable fields and replacing source_properties. Individual
// source_properties can be added/updated by using "source_properties." in the
// field mask.
func (c *OrganizationsSourcesFindingsPatchCall) UpdateMask(updateMask string) *OrganizationsSourcesFindingsPatchCall {
	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 *OrganizationsSourcesFindingsPatchCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsPatchCall) Context(ctx context.Context) *OrganizationsSourcesFindingsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.finding)
	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", "securitycenter.organizations.sources.findings.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Finding.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *OrganizationsSourcesFindingsPatchCall) Do(opts ...googleapi.CallOption) (*Finding, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Finding{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsSourcesFindingsSetMuteCall struct {
	s              *Service
	name           string
	setmuterequest *SetMuteRequest
	urlParams_     gensupport.URLParams
	ctx_           context.Context
	header_        http.Header
}

// SetMute: Updates the mute state of a finding.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`
//     , `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`,
//     `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.
func (r *OrganizationsSourcesFindingsService) SetMute(name string, setmuterequest *SetMuteRequest) *OrganizationsSourcesFindingsSetMuteCall {
	c := &OrganizationsSourcesFindingsSetMuteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.setmuterequest = setmuterequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *OrganizationsSourcesFindingsSetMuteCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsSetMuteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsSetMuteCall) Context(ctx context.Context) *OrganizationsSourcesFindingsSetMuteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsSetMuteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsSetMuteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.setmuterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMute")
	urls += "?" + c.urlParams_.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", "securitycenter.organizations.sources.findings.setMute", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.setMute" call.
// Any non-2xx status code is an error. Response headers are in either
// *Finding.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *OrganizationsSourcesFindingsSetMuteCall) Do(opts ...googleapi.CallOption) (*Finding, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Finding{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.setMute", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsSourcesFindingsSetStateCall struct {
	s                      *Service
	name                   string
	setfindingstaterequest *SetFindingStateRequest
	urlParams_             gensupport.URLParams
	ctx_                   context.Context
	header_                http.Header
}

// SetState: Updates the state of a finding.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`
//     , `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`,
//     `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.
func (r *OrganizationsSourcesFindingsService) SetState(name string, setfindingstaterequest *SetFindingStateRequest) *OrganizationsSourcesFindingsSetStateCall {
	c := &OrganizationsSourcesFindingsSetStateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.setfindingstaterequest = setfindingstaterequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *OrganizationsSourcesFindingsSetStateCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsSetStateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsSetStateCall) Context(ctx context.Context) *OrganizationsSourcesFindingsSetStateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsSetStateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsSetStateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.setfindingstaterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setState")
	urls += "?" + c.urlParams_.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", "securitycenter.organizations.sources.findings.setState", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.setState" call.
// Any non-2xx status code is an error. Response headers are in either
// *Finding.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *OrganizationsSourcesFindingsSetStateCall) Do(opts ...googleapi.CallOption) (*Finding, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Finding{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.setState", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsSourcesFindingsUpdateSecurityMarksCall struct {
	s             *Service
	name          string
	securitymarks *SecurityMarks
	urlParams_    gensupport.URLParams
	ctx_          context.Context
	header_       http.Header
}

// UpdateSecurityMarks: Updates security marks.
//
//   - name: The relative resource name of the SecurityMarks. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Examples:
//     "organizations/{organization_id}/assets/{asset_id}/securityMarks"
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/
//     securityMarks".
func (r *OrganizationsSourcesFindingsService) UpdateSecurityMarks(name string, securitymarks *SecurityMarks) *OrganizationsSourcesFindingsUpdateSecurityMarksCall {
	c := &OrganizationsSourcesFindingsUpdateSecurityMarksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.securitymarks = securitymarks
	return c
}

// StartTime sets the optional parameter "startTime": The time at which the
// updated SecurityMarks take effect. If not set uses current server time.
// Updates will be applied to the SecurityMarks that are active immediately
// preceding this time. Must be earlier or equal to the server time.
func (c *OrganizationsSourcesFindingsUpdateSecurityMarksCall) StartTime(startTime string) *OrganizationsSourcesFindingsUpdateSecurityMarksCall {
	c.urlParams_.Set("startTime", startTime)
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the security marks resource. The field mask must not contain
// duplicate fields. If empty or set to "marks", all marks will be replaced.
// Individual marks can be updated using "marks.".
func (c *OrganizationsSourcesFindingsUpdateSecurityMarksCall) UpdateMask(updateMask string) *OrganizationsSourcesFindingsUpdateSecurityMarksCall {
	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 *OrganizationsSourcesFindingsUpdateSecurityMarksCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsUpdateSecurityMarksCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsUpdateSecurityMarksCall) Context(ctx context.Context) *OrganizationsSourcesFindingsUpdateSecurityMarksCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsUpdateSecurityMarksCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsUpdateSecurityMarksCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitymarks)
	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", "securitycenter.organizations.sources.findings.updateSecurityMarks", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.updateSecurityMarks" call.
// Any non-2xx status code is an error. Response headers are in either
// *SecurityMarks.ServerResponse.Header or (if a response was returned at all)
// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *OrganizationsSourcesFindingsUpdateSecurityMarksCall) Do(opts ...googleapi.CallOption) (*SecurityMarks, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &SecurityMarks{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.updateSecurityMarks", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsSourcesFindingsExternalSystemsPatchCall struct {
	s                                         *Service
	name                                      string
	googlecloudsecuritycenterv1externalsystem *GoogleCloudSecuritycenterV1ExternalSystem
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Patch: Updates external system. This is for a given finding.
//
//   - name: Full resource name of the external system, for example:
//     "organizations/1234/sources/5678/findings/123456/externalSystems/jira",
//     "folders/1234/sources/5678/findings/123456/externalSystems/jira",
//     "projects/1234/sources/5678/findings/123456/externalSystems/jira".
func (r *OrganizationsSourcesFindingsExternalSystemsService) Patch(name string, googlecloudsecuritycenterv1externalsystem *GoogleCloudSecuritycenterV1ExternalSystem) *OrganizationsSourcesFindingsExternalSystemsPatchCall {
	c := &OrganizationsSourcesFindingsExternalSystemsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1externalsystem = googlecloudsecuritycenterv1externalsystem
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the external system resource. If empty all mutable fields will
// be updated.
func (c *OrganizationsSourcesFindingsExternalSystemsPatchCall) UpdateMask(updateMask string) *OrganizationsSourcesFindingsExternalSystemsPatchCall {
	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 *OrganizationsSourcesFindingsExternalSystemsPatchCall) Fields(s ...googleapi.Field) *OrganizationsSourcesFindingsExternalSystemsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsSourcesFindingsExternalSystemsPatchCall) Context(ctx context.Context) *OrganizationsSourcesFindingsExternalSystemsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsSourcesFindingsExternalSystemsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsSourcesFindingsExternalSystemsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1externalsystem)
	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", "securitycenter.organizations.sources.findings.externalSystems.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.sources.findings.externalSystems.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1ExternalSystem.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *OrganizationsSourcesFindingsExternalSystemsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1ExternalSystem, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1ExternalSystem{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.sources.findings.externalSystems.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type OrganizationsValuedResourcesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists the valued resources for a set of simulation results and filter.
//
//   - parent: Name of parent to list valued resources. Valid formats:
//     `organizations/{organization}`,
//     `organizations/{organization}/simulations/{simulation}`
//     `organizations/{organization}/simulations/{simulation}/attackExposureResult
//     s/{attack_exposure_result_v2}`.
func (r *OrganizationsValuedResourcesService) List(parent string) *OrganizationsValuedResourcesListCall {
	c := &OrganizationsValuedResourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter expression that
// filters the valued resources in the response. Supported fields: *
// `resource_value` supports = * `resource_type` supports =
func (c *OrganizationsValuedResourcesListCall) Filter(filter string) *OrganizationsValuedResourcesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": The fields by which to order
// the valued resources response. Supported fields: * `exposed_score` *
// `resource_value` * `resource_type` * `resource` * `display_name` Values
// should be a comma separated list of fields. For example:
// `exposed_score,resource_value`. The default sorting order is descending. To
// specify ascending or descending order for a field, append a ` ASC` or a `
// DESC` suffix, respectively; for example: `exposed_score DESC`.
func (c *OrganizationsValuedResourcesListCall) OrderBy(orderBy string) *OrganizationsValuedResourcesListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *OrganizationsValuedResourcesListCall) PageSize(pageSize int64) *OrganizationsValuedResourcesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListValuedResourcesResponse`; indicates that this is a continuation of
// a prior `ListValuedResources` call, and that the system should return the
// next page of data.
func (c *OrganizationsValuedResourcesListCall) PageToken(pageToken string) *OrganizationsValuedResourcesListCall {
	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 *OrganizationsValuedResourcesListCall) Fields(s ...googleapi.Field) *OrganizationsValuedResourcesListCall {
	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 *OrganizationsValuedResourcesListCall) IfNoneMatch(entityTag string) *OrganizationsValuedResourcesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *OrganizationsValuedResourcesListCall) Context(ctx context.Context) *OrganizationsValuedResourcesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *OrganizationsValuedResourcesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *OrganizationsValuedResourcesListCall) 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}/valuedResources")
	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", "securitycenter.organizations.valuedResources.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.organizations.valuedResources.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListValuedResourcesResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *OrganizationsValuedResourcesListCall) Do(opts ...googleapi.CallOption) (*ListValuedResourcesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListValuedResourcesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.organizations.valuedResources.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 *OrganizationsValuedResourcesListCall) Pages(ctx context.Context, f func(*ListValuedResourcesResponse) 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 ProjectsAssetsGroupCall struct {
	s                  *Service
	parent             string
	groupassetsrequest *GroupAssetsRequest
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// Group: Filters an organization's assets and groups them by their specified
// properties.
//
//   - parent: The name of the parent to group the assets by. Its format is
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *ProjectsAssetsService) Group(parent string, groupassetsrequest *GroupAssetsRequest) *ProjectsAssetsGroupCall {
	c := &ProjectsAssetsGroupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.groupassetsrequest = groupassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAssetsGroupCall) Fields(s ...googleapi.Field) *ProjectsAssetsGroupCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsAssetsGroupCall) Context(ctx context.Context) *ProjectsAssetsGroupCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAssetsGroupCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAssetsGroupCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.groupassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/assets:group")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.assets.group", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.assets.group" call.
// Any non-2xx status code is an error. Response headers are in either
// *GroupAssetsResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAssetsGroupCall) Do(opts ...googleapi.CallOption) (*GroupAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GroupAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.assets.group", "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 *ProjectsAssetsGroupCall) Pages(ctx context.Context, f func(*GroupAssetsResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.groupassetsrequest.PageToken = pt }(c.groupassetsrequest.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.groupassetsrequest.PageToken = x.NextPageToken
	}
}

type ProjectsAssetsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists an organization's assets.
//
//   - parent: The name of the parent resource that contains the assets. The
//     value that you can specify on parent depends on the method in which you
//     specify parent. You can specify one of the following values:
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *ProjectsAssetsService) List(parent string) *ProjectsAssetsListCall {
	c := &ProjectsAssetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// CompareDuration sets the optional parameter "compareDuration": When
// compare_duration is set, the ListAssetsResult's "state_change" attribute is
// updated to indicate whether the asset was added, removed, or remained
// present during the compare_duration period of time that precedes the
// read_time. This is the time between (read_time - compare_duration) and
// read_time. The state_change value is derived based on the presence of the
// asset at the two points in time. Intermediate state changes between the two
// times don't affect the result. For example, the results aren't affected if
// the asset is removed and re-created again. Possible "state_change" values
// when compare_duration is specified: * "ADDED": indicates that the asset was
// not present at the start of compare_duration, but present at read_time. *
// "REMOVED": indicates that the asset was present at the start of
// compare_duration, but not present at read_time. * "ACTIVE": indicates that
// the asset was present at both the start and the end of the time period
// defined by compare_duration and read_time. If compare_duration is not
// specified, then the only possible state_change is "UNUSED", which will be
// the state_change set for all assets present at read_time.
func (c *ProjectsAssetsListCall) CompareDuration(compareDuration string) *ProjectsAssetsListCall {
	c.urlParams_.Set("compareDuration", compareDuration)
	return c
}

// FieldMask sets the optional parameter "fieldMask": A field mask to specify
// the ListAssetsResult fields to be listed in the response. An empty field
// mask will list all fields.
func (c *ProjectsAssetsListCall) FieldMask(fieldMask string) *ProjectsAssetsListCall {
	c.urlParams_.Set("fieldMask", fieldMask)
	return c
}

// Filter sets the optional parameter "filter": Expression that defines the
// filter to apply across assets. The expression is a list of zero or more
// restrictions combined via logical operators `AND` and `OR`. Parentheses are
// supported, and `OR` has higher precedence than `AND`. Restrictions have the
// form ` ` and may have a `-` character in front of them to indicate negation.
// The fields map to those defined in the Asset resource. Examples include: *
// name * security_center_properties.resource_name *
// resource_properties.a_property * security_marks.marks.marka The supported
// operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer
// values. * `:`, meaning substring matching, for strings. The supported value
// types are: * string literals in quotes. * integer literals without quotes. *
// boolean literals `true` and `false` without quotes. The following are the
// allowed field and operator combinations: * name: `=` * update_time: `=`,
// `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an
// RFC3339 string. Examples: `update_time = "2019-06-10T16:07:18-07:00"
// `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=`
// Usage: This should be milliseconds since epoch or an RFC3339 string.
// Examples: `create_time = "2019-06-10T16:07:18-07:00" `create_time =
// 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties:
// `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` *
// security_center_properties.resource_name: `=`, `:` *
// security_center_properties.resource_display_name: `=`, `:` *
// security_center_properties.resource_type: `=`, `:` *
// security_center_properties.resource_parent: `=`, `:` *
// security_center_properties.resource_parent_display_name: `=`, `:` *
// security_center_properties.resource_project: `=`, `:` *
// security_center_properties.resource_project_display_name: `=`, `:` *
// security_center_properties.resource_owners: `=`, `:` For example,
// `resource_properties.size = 100` is a valid filter string. Use a partial
// match on the empty string to filter based on a property existing:
// `resource_properties.my_property : "" Use a negated partial match on the
// empty string to filter based on a property not existing:
// `-resource_properties.my_property : ""
func (c *ProjectsAssetsListCall) Filter(filter string) *ProjectsAssetsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Expression that defines what
// fields and order to use for sorting. The string value should follow SQL
// syntax: comma separated list of fields. For example:
// "name,resource_properties.a_property". The default sorting order is
// ascending. To specify descending order for a field, a suffix " desc" should
// be appended to the field name. For example: "name
// desc,resource_properties.a_property". Redundant space characters in the
// syntax are insignificant. "name desc,resource_properties.a_property" and "
// name desc , resource_properties.a_property " are equivalent. The following
// fields are supported: name update_time resource_properties
// security_marks.marks security_center_properties.resource_name
// security_center_properties.resource_display_name
// security_center_properties.resource_parent
// security_center_properties.resource_parent_display_name
// security_center_properties.resource_project
// security_center_properties.resource_project_display_name
// security_center_properties.resource_type
func (c *ProjectsAssetsListCall) OrderBy(orderBy string) *ProjectsAssetsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *ProjectsAssetsListCall) PageSize(pageSize int64) *ProjectsAssetsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListAssetsResponse`; indicates that this is a continuation of a prior
// `ListAssets` call, and that the system should return the next page of data.
func (c *ProjectsAssetsListCall) PageToken(pageToken string) *ProjectsAssetsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReadTime sets the optional parameter "readTime": Time used as a reference
// point when filtering assets. The filter is limited to assets existing at the
// supplied time and their values are those at that specific time. Absence of
// this field will default to the API's version of NOW.
func (c *ProjectsAssetsListCall) ReadTime(readTime string) *ProjectsAssetsListCall {
	c.urlParams_.Set("readTime", readTime)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAssetsListCall) Fields(s ...googleapi.Field) *ProjectsAssetsListCall {
	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 *ProjectsAssetsListCall) IfNoneMatch(entityTag string) *ProjectsAssetsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsAssetsListCall) Context(ctx context.Context) *ProjectsAssetsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAssetsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAssetsListCall) 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}/assets")
	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", "securitycenter.projects.assets.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.assets.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListAssetsResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAssetsListCall) Do(opts ...googleapi.CallOption) (*ListAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.assets.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 *ProjectsAssetsListCall) Pages(ctx context.Context, f func(*ListAssetsResponse) 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 ProjectsAssetsUpdateSecurityMarksCall struct {
	s             *Service
	name          string
	securitymarks *SecurityMarks
	urlParams_    gensupport.URLParams
	ctx_          context.Context
	header_       http.Header
}

// UpdateSecurityMarks: Updates security marks.
//
//   - name: The relative resource name of the SecurityMarks. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Examples:
//     "organizations/{organization_id}/assets/{asset_id}/securityMarks"
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/
//     securityMarks".
func (r *ProjectsAssetsService) UpdateSecurityMarks(name string, securitymarks *SecurityMarks) *ProjectsAssetsUpdateSecurityMarksCall {
	c := &ProjectsAssetsUpdateSecurityMarksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.securitymarks = securitymarks
	return c
}

// StartTime sets the optional parameter "startTime": The time at which the
// updated SecurityMarks take effect. If not set uses current server time.
// Updates will be applied to the SecurityMarks that are active immediately
// preceding this time. Must be earlier or equal to the server time.
func (c *ProjectsAssetsUpdateSecurityMarksCall) StartTime(startTime string) *ProjectsAssetsUpdateSecurityMarksCall {
	c.urlParams_.Set("startTime", startTime)
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the security marks resource. The field mask must not contain
// duplicate fields. If empty or set to "marks", all marks will be replaced.
// Individual marks can be updated using "marks.".
func (c *ProjectsAssetsUpdateSecurityMarksCall) UpdateMask(updateMask string) *ProjectsAssetsUpdateSecurityMarksCall {
	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 *ProjectsAssetsUpdateSecurityMarksCall) Fields(s ...googleapi.Field) *ProjectsAssetsUpdateSecurityMarksCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsAssetsUpdateSecurityMarksCall) Context(ctx context.Context) *ProjectsAssetsUpdateSecurityMarksCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAssetsUpdateSecurityMarksCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAssetsUpdateSecurityMarksCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitymarks)
	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", "securitycenter.projects.assets.updateSecurityMarks", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.assets.updateSecurityMarks" call.
// Any non-2xx status code is an error. Response headers are in either
// *SecurityMarks.ServerResponse.Header or (if a response was returned at all)
// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsAssetsUpdateSecurityMarksCall) Do(opts ...googleapi.CallOption) (*SecurityMarks, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &SecurityMarks{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.assets.updateSecurityMarks", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsBigQueryExportsCreateCall struct {
	s                                         *Service
	parent                                    string
	googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Create: Creates a BigQuery export.
//
//   - parent: The name of the parent resource of the new BigQuery export. Its
//     format is `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *ProjectsBigQueryExportsService) Create(parent string, googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport) *ProjectsBigQueryExportsCreateCall {
	c := &ProjectsBigQueryExportsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1bigqueryexport = googlecloudsecuritycenterv1bigqueryexport
	return c
}

// BigQueryExportId sets the optional parameter "bigQueryExportId": Required.
// Unique identifier provided by the client within the parent scope. It must
// consist of only lowercase letters, numbers, and hyphens, must start with a
// letter, must end with either a letter or a number, and must be 63 characters
// or less.
func (c *ProjectsBigQueryExportsCreateCall) BigQueryExportId(bigQueryExportId string) *ProjectsBigQueryExportsCreateCall {
	c.urlParams_.Set("bigQueryExportId", bigQueryExportId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsBigQueryExportsCreateCall) Fields(s ...googleapi.Field) *ProjectsBigQueryExportsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsBigQueryExportsCreateCall) Context(ctx context.Context) *ProjectsBigQueryExportsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsBigQueryExportsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsBigQueryExportsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1bigqueryexport)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bigQueryExports")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.bigQueryExports.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.bigQueryExports.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1BigQueryExport.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsBigQueryExportsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1BigQueryExport, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1BigQueryExport{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.bigQueryExports.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsBigQueryExportsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an existing BigQuery export.
//
//   - name: The name of the BigQuery export to delete. Its format is
//     `organizations/{organization}/bigQueryExports/{export_id}`,
//     `folders/{folder}/bigQueryExports/{export_id}`, or
//     `projects/{project}/bigQueryExports/{export_id}`.
func (r *ProjectsBigQueryExportsService) Delete(name string) *ProjectsBigQueryExportsDeleteCall {
	c := &ProjectsBigQueryExportsDeleteCall{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 *ProjectsBigQueryExportsDeleteCall) Fields(s ...googleapi.Field) *ProjectsBigQueryExportsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsBigQueryExportsDeleteCall) Context(ctx context.Context) *ProjectsBigQueryExportsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsBigQueryExportsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsBigQueryExportsDeleteCall) 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", "securitycenter.projects.bigQueryExports.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.bigQueryExports.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 *ProjectsBigQueryExportsDeleteCall) 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", "securitycenter.projects.bigQueryExports.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsBigQueryExportsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a BigQuery export.
//
//   - name: Name of the BigQuery export to retrieve. Its format is
//     `organizations/{organization}/bigQueryExports/{export_id}`,
//     `folders/{folder}/bigQueryExports/{export_id}`, or
//     `projects/{project}/bigQueryExports/{export_id}`.
func (r *ProjectsBigQueryExportsService) Get(name string) *ProjectsBigQueryExportsGetCall {
	c := &ProjectsBigQueryExportsGetCall{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 *ProjectsBigQueryExportsGetCall) Fields(s ...googleapi.Field) *ProjectsBigQueryExportsGetCall {
	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 *ProjectsBigQueryExportsGetCall) IfNoneMatch(entityTag string) *ProjectsBigQueryExportsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsBigQueryExportsGetCall) Context(ctx context.Context) *ProjectsBigQueryExportsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsBigQueryExportsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsBigQueryExportsGetCall) 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", "securitycenter.projects.bigQueryExports.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.bigQueryExports.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1BigQueryExport.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsBigQueryExportsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1BigQueryExport, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1BigQueryExport{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.bigQueryExports.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsBigQueryExportsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists BigQuery exports. Note that when requesting BigQuery exports at
// a given level all exports under that level are also returned e.g. if
// requesting BigQuery exports under a folder, then all BigQuery exports
// immediately under the folder plus the ones created under the projects within
// the folder are returned.
//
//   - parent: The parent, which owns the collection of BigQuery exports. Its
//     format is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *ProjectsBigQueryExportsService) List(parent string) *ProjectsBigQueryExportsListCall {
	c := &ProjectsBigQueryExportsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// configs to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *ProjectsBigQueryExportsListCall) PageSize(pageSize int64) *ProjectsBigQueryExportsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListBigQueryExports` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListBigQueryExports` must match the call that provided the page token.
func (c *ProjectsBigQueryExportsListCall) PageToken(pageToken string) *ProjectsBigQueryExportsListCall {
	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 *ProjectsBigQueryExportsListCall) Fields(s ...googleapi.Field) *ProjectsBigQueryExportsListCall {
	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 *ProjectsBigQueryExportsListCall) IfNoneMatch(entityTag string) *ProjectsBigQueryExportsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsBigQueryExportsListCall) Context(ctx context.Context) *ProjectsBigQueryExportsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsBigQueryExportsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsBigQueryExportsListCall) 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}/bigQueryExports")
	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", "securitycenter.projects.bigQueryExports.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.bigQueryExports.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListBigQueryExportsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsBigQueryExportsListCall) Do(opts ...googleapi.CallOption) (*ListBigQueryExportsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListBigQueryExportsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.bigQueryExports.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 *ProjectsBigQueryExportsListCall) Pages(ctx context.Context, f func(*ListBigQueryExportsResponse) 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 ProjectsBigQueryExportsPatchCall struct {
	s                                         *Service
	name                                      string
	googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Patch: Updates a BigQuery export.
//
//   - name: The relative resource name of this export. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name.
//     Example format:
//     "organizations/{organization_id}/bigQueryExports/{export_id}" Example
//     format: "folders/{folder_id}/bigQueryExports/{export_id}" Example format:
//     "projects/{project_id}/bigQueryExports/{export_id}" This field is provided
//     in responses, and is ignored when provided in create requests.
func (r *ProjectsBigQueryExportsService) Patch(name string, googlecloudsecuritycenterv1bigqueryexport *GoogleCloudSecuritycenterV1BigQueryExport) *ProjectsBigQueryExportsPatchCall {
	c := &ProjectsBigQueryExportsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1bigqueryexport = googlecloudsecuritycenterv1bigqueryexport
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *ProjectsBigQueryExportsPatchCall) UpdateMask(updateMask string) *ProjectsBigQueryExportsPatchCall {
	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 *ProjectsBigQueryExportsPatchCall) Fields(s ...googleapi.Field) *ProjectsBigQueryExportsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsBigQueryExportsPatchCall) Context(ctx context.Context) *ProjectsBigQueryExportsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsBigQueryExportsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsBigQueryExportsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1bigqueryexport)
	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", "securitycenter.projects.bigQueryExports.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.bigQueryExports.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1BigQueryExport.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsBigQueryExportsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1BigQueryExport, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1BigQueryExport{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.bigQueryExports.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsEventThreatDetectionSettingsValidateCustomModuleCall struct {
	s                                               *Service
	parent                                          string
	validateeventthreatdetectioncustommodulerequest *ValidateEventThreatDetectionCustomModuleRequest
	urlParams_                                      gensupport.URLParams
	ctx_                                            context.Context
	header_                                         http.Header
}

// ValidateCustomModule: Validates the given Event Threat Detection custom
// module.
//
//   - parent: Resource name of the parent to validate the Custom Module under.
//     Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *ProjectsEventThreatDetectionSettingsService) ValidateCustomModule(parent string, validateeventthreatdetectioncustommodulerequest *ValidateEventThreatDetectionCustomModuleRequest) *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall {
	c := &ProjectsEventThreatDetectionSettingsValidateCustomModuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.validateeventthreatdetectioncustommodulerequest = validateeventthreatdetectioncustommodulerequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.validateeventthreatdetectioncustommodulerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:validateCustomModule")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.eventThreatDetectionSettings.validateCustomModule", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.validateCustomModule" call.
// Any non-2xx status code is an error. Response headers are in either
// *ValidateEventThreatDetectionCustomModuleResponse.ServerResponse.Header or
// (if a response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsValidateCustomModuleCall) Do(opts ...googleapi.CallOption) (*ValidateEventThreatDetectionCustomModuleResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ValidateEventThreatDetectionCustomModuleResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.validateCustomModule", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsEventThreatDetectionSettingsCustomModulesCreateCall struct {
	s                                *Service
	parent                           string
	eventthreatdetectioncustommodule *EventThreatDetectionCustomModule
	urlParams_                       gensupport.URLParams
	ctx_                             context.Context
	header_                          http.Header
}

// Create: Creates a resident Event Threat Detection custom module at the scope
// of the given Resource Manager parent, and also creates inherited custom
// modules for all descendants of the given parent. These modules are enabled
// by default.
//
//   - parent: The new custom module's parent. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *ProjectsEventThreatDetectionSettingsCustomModulesService) Create(parent string, eventthreatdetectioncustommodule *EventThreatDetectionCustomModule) *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall {
	c := &ProjectsEventThreatDetectionSettingsCustomModulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.eventthreatdetectioncustommodule = eventthreatdetectioncustommodule
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.eventthreatdetectioncustommodule)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/customModules")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.eventThreatDetectionSettings.customModules.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.customModules.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *EventThreatDetectionCustomModule.ServerResponse.Header or (if a response
// was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesCreateCall) Do(opts ...googleapi.CallOption) (*EventThreatDetectionCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EventThreatDetectionCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.customModules.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified Event Threat Detection custom module and all
// of its descendants in the Resource Manager hierarchy. This method is only
// supported for resident custom modules.
//
//   - name: Name of the custom module to delete. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *ProjectsEventThreatDetectionSettingsCustomModulesService) Delete(name string) *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall {
	c := &ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall{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 *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall) 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", "securitycenter.projects.eventThreatDetectionSettings.customModules.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.customModules.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 *ProjectsEventThreatDetectionSettingsCustomModulesDeleteCall) 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", "securitycenter.projects.eventThreatDetectionSettings.customModules.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsEventThreatDetectionSettingsCustomModulesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets an Event Threat Detection custom module.
//
//   - name: Name of the custom module to get. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *ProjectsEventThreatDetectionSettingsCustomModulesService) Get(name string) *ProjectsEventThreatDetectionSettingsCustomModulesGetCall {
	c := &ProjectsEventThreatDetectionSettingsCustomModulesGetCall{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 *ProjectsEventThreatDetectionSettingsCustomModulesGetCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsCustomModulesGetCall {
	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 *ProjectsEventThreatDetectionSettingsCustomModulesGetCall) IfNoneMatch(entityTag string) *ProjectsEventThreatDetectionSettingsCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesGetCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsCustomModulesGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsCustomModulesGetCall) 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", "securitycenter.projects.eventThreatDetectionSettings.customModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.customModules.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *EventThreatDetectionCustomModule.ServerResponse.Header or (if a response
// was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesGetCall) Do(opts ...googleapi.CallOption) (*EventThreatDetectionCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EventThreatDetectionCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.customModules.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsEventThreatDetectionSettingsCustomModulesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Event Threat Detection custom modules for the given Resource
// Manager parent. This includes resident modules defined at the scope of the
// parent along with modules inherited from ancestors.
//
//   - parent: Name of the parent to list custom modules under. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *ProjectsEventThreatDetectionSettingsCustomModulesService) List(parent string) *ProjectsEventThreatDetectionSettingsCustomModulesListCall {
	c := &ProjectsEventThreatDetectionSettingsCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListCall) PageSize(pageSize int64) *ProjectsEventThreatDetectionSettingsCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListEventThreatDetectionCustomModules` call. Provide this
// to retrieve the subsequent page. When paginating, all other parameters
// provided to `ListEventThreatDetectionCustomModules` must match the call that
// provided the page token.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListCall) PageToken(pageToken string) *ProjectsEventThreatDetectionSettingsCustomModulesListCall {
	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 *ProjectsEventThreatDetectionSettingsCustomModulesListCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsCustomModulesListCall {
	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 *ProjectsEventThreatDetectionSettingsCustomModulesListCall) IfNoneMatch(entityTag string) *ProjectsEventThreatDetectionSettingsCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsCustomModulesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsCustomModulesListCall) 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}/customModules")
	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", "securitycenter.projects.eventThreatDetectionSettings.customModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.customModules.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEventThreatDetectionCustomModulesResponse.ServerResponse.Header or (if
// a response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListCall) Do(opts ...googleapi.CallOption) (*ListEventThreatDetectionCustomModulesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEventThreatDetectionCustomModulesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.customModules.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 *ProjectsEventThreatDetectionSettingsCustomModulesListCall) Pages(ctx context.Context, f func(*ListEventThreatDetectionCustomModulesResponse) 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 ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListDescendant: Lists all resident Event Threat Detection custom modules
// under the given Resource Manager parent and its descendants.
//
//   - parent: Name of the parent to list custom modules under. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *ProjectsEventThreatDetectionSettingsCustomModulesService) ListDescendant(parent string) *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c := &ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) PageSize(pageSize int64) *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListDescendantEventThreatDetectionCustomModules` call.
// Provide this to retrieve the subsequent page. When paginating, all other
// parameters provided to `ListDescendantEventThreatDetectionCustomModules`
// must match the call that provided the page token.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) PageToken(pageToken string) *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	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 *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	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 *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) IfNoneMatch(entityTag string) *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) 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}/customModules:listDescendant")
	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", "securitycenter.projects.eventThreatDetectionSettings.customModules.listDescendant", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.customModules.listDescendant" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListDescendantEventThreatDetectionCustomModulesResponse.ServerResponse.Heade
// r or (if a response was returned at all) in error.(*googleapi.Error).Header.
// Use googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) Do(opts ...googleapi.CallOption) (*ListDescendantEventThreatDetectionCustomModulesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListDescendantEventThreatDetectionCustomModulesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.customModules.listDescendant", "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 *ProjectsEventThreatDetectionSettingsCustomModulesListDescendantCall) Pages(ctx context.Context, f func(*ListDescendantEventThreatDetectionCustomModulesResponse) 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 ProjectsEventThreatDetectionSettingsCustomModulesPatchCall struct {
	s                                *Service
	name                             string
	eventthreatdetectioncustommodule *EventThreatDetectionCustomModule
	urlParams_                       gensupport.URLParams
	ctx_                             context.Context
	header_                          http.Header
}

// Patch: Updates the Event Threat Detection custom module with the given name
// based on the given update mask. Updating the enablement state is supported
// for both resident and inherited modules (though resident modules cannot have
// an enablement state of "inherited"). Updating the display name or
// configuration of a module is supported for resident modules only. The type
// of a module cannot be changed.
//
//   - name: Immutable. The resource name of the Event Threat Detection custom
//     module. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/customModules/{m
//     odule}`. *
//     `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. *
//     `projects/{project}/eventThreatDetectionSettings/customModules/{module}`.
func (r *ProjectsEventThreatDetectionSettingsCustomModulesService) Patch(name string, eventthreatdetectioncustommodule *EventThreatDetectionCustomModule) *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall {
	c := &ProjectsEventThreatDetectionSettingsCustomModulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.eventthreatdetectioncustommodule = eventthreatdetectioncustommodule
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall) UpdateMask(updateMask string) *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall {
	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 *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.eventthreatdetectioncustommodule)
	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", "securitycenter.projects.eventThreatDetectionSettings.customModules.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.customModules.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *EventThreatDetectionCustomModule.ServerResponse.Header or (if a response
// was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsCustomModulesPatchCall) Do(opts ...googleapi.CallOption) (*EventThreatDetectionCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EventThreatDetectionCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.customModules.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets an effective Event Threat Detection custom module at the given
// level.
//
//   - name: The resource name of the effective Event Threat Detection custom
//     module. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomM
//     odules/{module}`. *
//     `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{modu
//     le}`. *
//     `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{mo
//     dule}`.
func (r *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesService) Get(name string) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	c := &ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall{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 *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	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 *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) IfNoneMatch(entityTag string) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) 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", "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *EffectiveEventThreatDetectionCustomModule.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesGetCall) Do(opts ...googleapi.CallOption) (*EffectiveEventThreatDetectionCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EffectiveEventThreatDetectionCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all effective Event Threat Detection custom modules for the
// given parent. This includes resident modules defined at the scope of the
// parent along with modules inherited from its ancestors.
//
//   - parent: Name of the parent to list custom modules for. Its format is: *
//     `organizations/{organization}/eventThreatDetectionSettings`. *
//     `folders/{folder}/eventThreatDetectionSettings`. *
//     `projects/{project}/eventThreatDetectionSettings`.
func (r *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesService) List(parent string) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c := &ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// modules to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) PageSize(pageSize int64) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListEffectiveEventThreatDetectionCustomModules` call.
// Provide this to retrieve the subsequent page. When paginating, all other
// parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must
// match the call that provided the page token.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) PageToken(pageToken string) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	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 *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) Fields(s ...googleapi.Field) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	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 *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) IfNoneMatch(entityTag string) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) Context(ctx context.Context) *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) 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}/effectiveCustomModules")
	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", "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEffectiveEventThreatDetectionCustomModulesResponse.ServerResponse.Header
//
//	or (if a response was returned at all) in error.(*googleapi.Error).Header.
//
// Use googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) Do(opts ...googleapi.CallOption) (*ListEffectiveEventThreatDetectionCustomModulesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEffectiveEventThreatDetectionCustomModulesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.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 *ProjectsEventThreatDetectionSettingsEffectiveCustomModulesListCall) Pages(ctx context.Context, f func(*ListEffectiveEventThreatDetectionCustomModulesResponse) 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 ProjectsFindingsBulkMuteCall struct {
	s                       *Service
	parent                  string
	bulkmutefindingsrequest *BulkMuteFindingsRequest
	urlParams_              gensupport.URLParams
	ctx_                    context.Context
	header_                 http.Header
}

// BulkMute: Kicks off an LRO to bulk mute findings for a parent based on a
// filter. The parent can be either an organization, folder or project. The
// findings matched by the filter will be muted after the LRO is done.
//
//   - parent: The parent, at which bulk action needs to be applied. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *ProjectsFindingsService) BulkMute(parent string, bulkmutefindingsrequest *BulkMuteFindingsRequest) *ProjectsFindingsBulkMuteCall {
	c := &ProjectsFindingsBulkMuteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.bulkmutefindingsrequest = bulkmutefindingsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsFindingsBulkMuteCall) Fields(s ...googleapi.Field) *ProjectsFindingsBulkMuteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsFindingsBulkMuteCall) Context(ctx context.Context) *ProjectsFindingsBulkMuteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsFindingsBulkMuteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsFindingsBulkMuteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.bulkmutefindingsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/findings:bulkMute")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.findings.bulkMute", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.findings.bulkMute" 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 *ProjectsFindingsBulkMuteCall) 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", "securitycenter.projects.findings.bulkMute", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsMuteConfigsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an existing mute config.
//
//   - name: Name of the mute config to delete. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *ProjectsLocationsMuteConfigsService) Delete(name string) *ProjectsLocationsMuteConfigsDeleteCall {
	c := &ProjectsLocationsMuteConfigsDeleteCall{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 *ProjectsLocationsMuteConfigsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsMuteConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsMuteConfigsDeleteCall) Context(ctx context.Context) *ProjectsLocationsMuteConfigsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsMuteConfigsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsMuteConfigsDeleteCall) 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", "securitycenter.projects.locations.muteConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.locations.muteConfigs.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 *ProjectsLocationsMuteConfigsDeleteCall) 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", "securitycenter.projects.locations.muteConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsMuteConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a mute config.
//
//   - name: Name of the mute config to retrieve. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *ProjectsLocationsMuteConfigsService) Get(name string) *ProjectsLocationsMuteConfigsGetCall {
	c := &ProjectsLocationsMuteConfigsGetCall{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 *ProjectsLocationsMuteConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsMuteConfigsGetCall {
	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 *ProjectsLocationsMuteConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsMuteConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsMuteConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsMuteConfigsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsMuteConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsMuteConfigsGetCall) 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", "securitycenter.projects.locations.muteConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.locations.muteConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1MuteConfig.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsMuteConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1MuteConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1MuteConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.locations.muteConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsMuteConfigsPatchCall struct {
	s                                     *Service
	name                                  string
	googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig
	urlParams_                            gensupport.URLParams
	ctx_                                  context.Context
	header_                               http.Header
}

// Patch: Updates a mute config.
//
//   - name: This field will be ignored if provided on config creation. Format
//     `organizations/{organization}/muteConfigs/{mute_config}`
//     `folders/{folder}/muteConfigs/{mute_config}`
//     `projects/{project}/muteConfigs/{mute_config}`
//     `organizations/{organization}/locations/global/muteConfigs/{mute_config}`
//     `folders/{folder}/locations/global/muteConfigs/{mute_config}`
//     `projects/{project}/locations/global/muteConfigs/{mute_config}`.
func (r *ProjectsLocationsMuteConfigsService) Patch(name string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *ProjectsLocationsMuteConfigsPatchCall {
	c := &ProjectsLocationsMuteConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *ProjectsLocationsMuteConfigsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsMuteConfigsPatchCall {
	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 *ProjectsLocationsMuteConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsMuteConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsMuteConfigsPatchCall) Context(ctx context.Context) *ProjectsLocationsMuteConfigsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsMuteConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsMuteConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1muteconfig)
	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", "securitycenter.projects.locations.muteConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.locations.muteConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1MuteConfig.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsMuteConfigsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1MuteConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1MuteConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.locations.muteConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsMuteConfigsCreateCall struct {
	s                                     *Service
	parent                                string
	googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig
	urlParams_                            gensupport.URLParams
	ctx_                                  context.Context
	header_                               http.Header
}

// Create: Creates a mute config.
//
//   - parent: Resource name of the new mute configs's parent. Its format is
//     `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *ProjectsMuteConfigsService) Create(parent string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *ProjectsMuteConfigsCreateCall {
	c := &ProjectsMuteConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// MuteConfigId sets the optional parameter "muteConfigId": Required. Unique
// identifier provided by the client within the parent scope. It must consist
// of only lowercase letters, numbers, and hyphens, must start with a letter,
// must end with either a letter or a number, and must be 63 characters or
// less.
func (c *ProjectsMuteConfigsCreateCall) MuteConfigId(muteConfigId string) *ProjectsMuteConfigsCreateCall {
	c.urlParams_.Set("muteConfigId", muteConfigId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsMuteConfigsCreateCall) Fields(s ...googleapi.Field) *ProjectsMuteConfigsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsMuteConfigsCreateCall) Context(ctx context.Context) *ProjectsMuteConfigsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsMuteConfigsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsMuteConfigsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1muteconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/muteConfigs")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.muteConfigs.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.muteConfigs.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1MuteConfig.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsMuteConfigsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1MuteConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1MuteConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.muteConfigs.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsMuteConfigsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an existing mute config.
//
//   - name: Name of the mute config to delete. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *ProjectsMuteConfigsService) Delete(name string) *ProjectsMuteConfigsDeleteCall {
	c := &ProjectsMuteConfigsDeleteCall{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 *ProjectsMuteConfigsDeleteCall) Fields(s ...googleapi.Field) *ProjectsMuteConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsMuteConfigsDeleteCall) Context(ctx context.Context) *ProjectsMuteConfigsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsMuteConfigsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsMuteConfigsDeleteCall) 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", "securitycenter.projects.muteConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.muteConfigs.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 *ProjectsMuteConfigsDeleteCall) 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", "securitycenter.projects.muteConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsMuteConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a mute config.
//
//   - name: Name of the mute config to retrieve. Its format is
//     `organizations/{organization}/muteConfigs/{config_id}`,
//     `folders/{folder}/muteConfigs/{config_id}`,
//     `projects/{project}/muteConfigs/{config_id}`,
//     `organizations/{organization}/locations/global/muteConfigs/{config_id}`,
//     `folders/{folder}/locations/global/muteConfigs/{config_id}`, or
//     `projects/{project}/locations/global/muteConfigs/{config_id}`.
func (r *ProjectsMuteConfigsService) Get(name string) *ProjectsMuteConfigsGetCall {
	c := &ProjectsMuteConfigsGetCall{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 *ProjectsMuteConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsMuteConfigsGetCall {
	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 *ProjectsMuteConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsMuteConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsMuteConfigsGetCall) Context(ctx context.Context) *ProjectsMuteConfigsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsMuteConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsMuteConfigsGetCall) 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", "securitycenter.projects.muteConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.muteConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1MuteConfig.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsMuteConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1MuteConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1MuteConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.muteConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsMuteConfigsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists mute configs.
//
//   - parent: The parent, which owns the collection of mute configs. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`,
//     `projects/[project_id]`.
func (r *ProjectsMuteConfigsService) List(parent string) *ProjectsMuteConfigsListCall {
	c := &ProjectsMuteConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// configs to return. The service may return fewer than this value. If
// unspecified, at most 10 configs will be returned. The maximum value is 1000;
// values above 1000 will be coerced to 1000.
func (c *ProjectsMuteConfigsListCall) PageSize(pageSize int64) *ProjectsMuteConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListMuteConfigs` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListMuteConfigs` must match the call that provided the page token.
func (c *ProjectsMuteConfigsListCall) PageToken(pageToken string) *ProjectsMuteConfigsListCall {
	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 *ProjectsMuteConfigsListCall) Fields(s ...googleapi.Field) *ProjectsMuteConfigsListCall {
	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 *ProjectsMuteConfigsListCall) IfNoneMatch(entityTag string) *ProjectsMuteConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsMuteConfigsListCall) Context(ctx context.Context) *ProjectsMuteConfigsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsMuteConfigsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsMuteConfigsListCall) 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}/muteConfigs")
	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", "securitycenter.projects.muteConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.muteConfigs.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListMuteConfigsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsMuteConfigsListCall) Do(opts ...googleapi.CallOption) (*ListMuteConfigsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListMuteConfigsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.muteConfigs.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 *ProjectsMuteConfigsListCall) Pages(ctx context.Context, f func(*ListMuteConfigsResponse) 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 ProjectsMuteConfigsPatchCall struct {
	s                                     *Service
	name                                  string
	googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig
	urlParams_                            gensupport.URLParams
	ctx_                                  context.Context
	header_                               http.Header
}

// Patch: Updates a mute config.
//
//   - name: This field will be ignored if provided on config creation. Format
//     `organizations/{organization}/muteConfigs/{mute_config}`
//     `folders/{folder}/muteConfigs/{mute_config}`
//     `projects/{project}/muteConfigs/{mute_config}`
//     `organizations/{organization}/locations/global/muteConfigs/{mute_config}`
//     `folders/{folder}/locations/global/muteConfigs/{mute_config}`
//     `projects/{project}/locations/global/muteConfigs/{mute_config}`.
func (r *ProjectsMuteConfigsService) Patch(name string, googlecloudsecuritycenterv1muteconfig *GoogleCloudSecuritycenterV1MuteConfig) *ProjectsMuteConfigsPatchCall {
	c := &ProjectsMuteConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1muteconfig = googlecloudsecuritycenterv1muteconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. If empty all mutable fields will be updated.
func (c *ProjectsMuteConfigsPatchCall) UpdateMask(updateMask string) *ProjectsMuteConfigsPatchCall {
	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 *ProjectsMuteConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsMuteConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsMuteConfigsPatchCall) Context(ctx context.Context) *ProjectsMuteConfigsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsMuteConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsMuteConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1muteconfig)
	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", "securitycenter.projects.muteConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.muteConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1MuteConfig.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsMuteConfigsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1MuteConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1MuteConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.muteConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsNotificationConfigsCreateCall struct {
	s                  *Service
	parent             string
	notificationconfig *NotificationConfig
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// Create: Creates a notification config.
//
//   - parent: Resource name of the new notification config's parent. Its format
//     is `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *ProjectsNotificationConfigsService) Create(parent string, notificationconfig *NotificationConfig) *ProjectsNotificationConfigsCreateCall {
	c := &ProjectsNotificationConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.notificationconfig = notificationconfig
	return c
}

// ConfigId sets the optional parameter "configId": Required. Unique identifier
// provided by the client within the parent scope. It must be between 1 and 128
// characters and contain alphanumeric characters, underscores, or hyphens
// only.
func (c *ProjectsNotificationConfigsCreateCall) ConfigId(configId string) *ProjectsNotificationConfigsCreateCall {
	c.urlParams_.Set("configId", configId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsNotificationConfigsCreateCall) Fields(s ...googleapi.Field) *ProjectsNotificationConfigsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsNotificationConfigsCreateCall) Context(ctx context.Context) *ProjectsNotificationConfigsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsNotificationConfigsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsNotificationConfigsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.notificationconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/notificationConfigs")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.notificationConfigs.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.notificationConfigs.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *NotificationConfig.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsNotificationConfigsCreateCall) Do(opts ...googleapi.CallOption) (*NotificationConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &NotificationConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.notificationConfigs.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsNotificationConfigsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a notification config.
//
//   - name: Name of the notification config to delete. Its format is
//     `organizations/[organization_id]/notificationConfigs/[config_id]`,
//     `folders/[folder_id]/notificationConfigs/[config_id]`, or
//     `projects/[project_id]/notificationConfigs/[config_id]`.
func (r *ProjectsNotificationConfigsService) Delete(name string) *ProjectsNotificationConfigsDeleteCall {
	c := &ProjectsNotificationConfigsDeleteCall{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 *ProjectsNotificationConfigsDeleteCall) Fields(s ...googleapi.Field) *ProjectsNotificationConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsNotificationConfigsDeleteCall) Context(ctx context.Context) *ProjectsNotificationConfigsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsNotificationConfigsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsNotificationConfigsDeleteCall) 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", "securitycenter.projects.notificationConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.notificationConfigs.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 *ProjectsNotificationConfigsDeleteCall) 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", "securitycenter.projects.notificationConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsNotificationConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a notification config.
//
//   - name: Name of the notification config to get. Its format is
//     `organizations/[organization_id]/notificationConfigs/[config_id]`,
//     `folders/[folder_id]/notificationConfigs/[config_id]`, or
//     `projects/[project_id]/notificationConfigs/[config_id]`.
func (r *ProjectsNotificationConfigsService) Get(name string) *ProjectsNotificationConfigsGetCall {
	c := &ProjectsNotificationConfigsGetCall{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 *ProjectsNotificationConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsNotificationConfigsGetCall {
	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 *ProjectsNotificationConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsNotificationConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsNotificationConfigsGetCall) Context(ctx context.Context) *ProjectsNotificationConfigsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsNotificationConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsNotificationConfigsGetCall) 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", "securitycenter.projects.notificationConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.notificationConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *NotificationConfig.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsNotificationConfigsGetCall) Do(opts ...googleapi.CallOption) (*NotificationConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &NotificationConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.notificationConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsNotificationConfigsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists notification configs.
//
//   - parent: The name of the parent in which to list the notification
//     configurations. Its format is "organizations/[organization_id]",
//     "folders/[folder_id]", or "projects/[project_id]".
func (r *ProjectsNotificationConfigsService) List(parent string) *ProjectsNotificationConfigsListCall {
	c := &ProjectsNotificationConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *ProjectsNotificationConfigsListCall) PageSize(pageSize int64) *ProjectsNotificationConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListNotificationConfigsResponse`; indicates that this is a
// continuation of a prior `ListNotificationConfigs` call, and that the system
// should return the next page of data.
func (c *ProjectsNotificationConfigsListCall) PageToken(pageToken string) *ProjectsNotificationConfigsListCall {
	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 *ProjectsNotificationConfigsListCall) Fields(s ...googleapi.Field) *ProjectsNotificationConfigsListCall {
	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 *ProjectsNotificationConfigsListCall) IfNoneMatch(entityTag string) *ProjectsNotificationConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsNotificationConfigsListCall) Context(ctx context.Context) *ProjectsNotificationConfigsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsNotificationConfigsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsNotificationConfigsListCall) 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}/notificationConfigs")
	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", "securitycenter.projects.notificationConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.notificationConfigs.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListNotificationConfigsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsNotificationConfigsListCall) Do(opts ...googleapi.CallOption) (*ListNotificationConfigsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListNotificationConfigsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.notificationConfigs.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 *ProjectsNotificationConfigsListCall) Pages(ctx context.Context, f func(*ListNotificationConfigsResponse) 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 ProjectsNotificationConfigsPatchCall struct {
	s                  *Service
	name               string
	notificationconfig *NotificationConfig
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// Patch:  Updates a notification config. The following update fields are
// allowed: description, pubsub_topic, streaming_config.filter
//
//   - name: The relative resource name of this notification config. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Example:
//     "organizations/{organization_id}/notificationConfigs/notify_public_bucket",
//     "folders/{folder_id}/notificationConfigs/notify_public_bucket", or
//     "projects/{project_id}/notificationConfigs/notify_public_bucket".
func (r *ProjectsNotificationConfigsService) Patch(name string, notificationconfig *NotificationConfig) *ProjectsNotificationConfigsPatchCall {
	c := &ProjectsNotificationConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.notificationconfig = notificationconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the notification config. If empty all mutable fields will be
// updated.
func (c *ProjectsNotificationConfigsPatchCall) UpdateMask(updateMask string) *ProjectsNotificationConfigsPatchCall {
	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 *ProjectsNotificationConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsNotificationConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsNotificationConfigsPatchCall) Context(ctx context.Context) *ProjectsNotificationConfigsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsNotificationConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsNotificationConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.notificationconfig)
	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", "securitycenter.projects.notificationConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.notificationConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *NotificationConfig.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsNotificationConfigsPatchCall) Do(opts ...googleapi.CallOption) (*NotificationConfig, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &NotificationConfig{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.notificationConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall struct {
	s                                                              *Service
	parent                                                         string
	googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Create: Creates a resident SecurityHealthAnalyticsCustomModule at the scope
// of the given CRM parent, and also creates inherited
// SecurityHealthAnalyticsCustomModules for all CRM descendants of the given
// parent. These modules are enabled by default.
//
//   - parent: Resource name of the new custom module's parent. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService) Create(parent string, googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule = googlecloudsecuritycenterv1securityhealthanalyticscustommodule
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/customModules")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.customModules.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified SecurityHealthAnalyticsCustomModule and all of
// its descendants in the CRM hierarchy. This method is only supported for
// resident custom modules.
//
//   - name: Name of the custom module to delete. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}`.
func (r *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService) Delete(name string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall{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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) 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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.customModules.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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesDeleteCall) 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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Retrieves a SecurityHealthAnalyticsCustomModule.
//
//   - name: Name of the custom module to get. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}`.
func (r *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService) Get(name string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall{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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall) IfNoneMatch(entityTag string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall) 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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.customModules.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Returns a list of all SecurityHealthAnalyticsCustomModules for the
// given parent. This includes resident modules defined at the scope of the
// parent, and inherited modules, inherited from CRM ancestors.
//
//   - parent: Name of parent to list custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService) List(parent string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) PageSize(pageSize int64) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) PageToken(pageToken string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) IfNoneMatch(entityTag string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) 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}/customModules")
	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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.customModules.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListSecurityHealthAnalyticsCustomModulesResponse.ServerResponse.Header or
// (if a response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) Do(opts ...googleapi.CallOption) (*ListSecurityHealthAnalyticsCustomModulesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListSecurityHealthAnalyticsCustomModulesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListCall) Pages(ctx context.Context, f func(*ListSecurityHealthAnalyticsCustomModulesResponse) 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 ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListDescendant: Returns a list of all resident
// SecurityHealthAnalyticsCustomModules under the given CRM parent and all of
// the parent’s CRM descendants.
//
//   - parent: Name of parent to list descendant custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService) ListDescendant(parent string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) PageSize(pageSize int64) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) PageToken(pageToken string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) IfNoneMatch(entityTag string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) 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}/customModules:listDescendant")
	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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.listDescendant", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.customModules.listDescendant" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListDescendantSecurityHealthAnalyticsCustomModulesResponse.ServerResponse.He
// ader or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) Do(opts ...googleapi.CallOption) (*ListDescendantSecurityHealthAnalyticsCustomModulesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListDescendantSecurityHealthAnalyticsCustomModulesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.listDescendant", "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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesListDescendantCall) Pages(ctx context.Context, f func(*ListDescendantSecurityHealthAnalyticsCustomModulesResponse) 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 ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall struct {
	s                                                              *Service
	name                                                           string
	googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Patch: Updates the SecurityHealthAnalyticsCustomModule under the given name
// based on the given update mask. Updating the enablement state is supported
// on both resident and inherited modules (though resident modules cannot have
// an enablement state of "inherited"). Updating the display name and custom
// config of a module is supported on resident modules only.
//
//   - name: Immutable. The resource name of the custom module. Its format is
//     "organizations/{organization}/securityHealthAnalyticsSettings/customModules
//     /{customModule}", or
//     "folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModu
//     le}", or
//     "projects/{project}/securityHealthAnalyticsSettings/customModules/{customMo
//     dule}" The id {customModule} is server-generated and is not user settable.
//     It will be a numeric id containing 1-20 digits.
func (r *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService) Patch(name string, googlecloudsecuritycenterv1securityhealthanalyticscustommodule *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule = googlecloudsecuritycenterv1securityhealthanalyticscustommodule
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated. The only fields that can be updated are `enablement_state` and
// `custom_config`. If empty or set to the wildcard value `*`, both
// `enablement_state` and `custom_config` are updated.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) UpdateMask(updateMask string) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1securityhealthanalyticscustommodule)
	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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.customModules.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall struct {
	s                                                  *Service
	parent                                             string
	simulatesecurityhealthanalyticscustommodulerequest *SimulateSecurityHealthAnalyticsCustomModuleRequest
	urlParams_                                         gensupport.URLParams
	ctx_                                               context.Context
	header_                                            http.Header
}

// Simulate: Simulates a given SecurityHealthAnalyticsCustomModule and
// Resource.
//
//   - parent: The relative resource name of the organization, project, or
//     folder. For more information about relative resource names, see Relative
//     Resource Name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     Example: `organizations/{organization_id}`.
func (r *ProjectsSecurityHealthAnalyticsSettingsCustomModulesService) Simulate(parent string, simulatesecurityhealthanalyticscustommodulerequest *SimulateSecurityHealthAnalyticsCustomModuleRequest) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.simulatesecurityhealthanalyticscustommodulerequest = simulatesecurityhealthanalyticscustommodulerequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.simulatesecurityhealthanalyticscustommodulerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/customModules:simulate")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.simulate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.customModules.simulate" call.
// Any non-2xx status code is an error. Response headers are in either
// *SimulateSecurityHealthAnalyticsCustomModuleResponse.ServerResponse.Header
// or (if a response was returned at all) in error.(*googleapi.Error).Header.
// Use googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsCustomModulesSimulateCall) Do(opts ...googleapi.CallOption) (*SimulateSecurityHealthAnalyticsCustomModuleResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &SimulateSecurityHealthAnalyticsCustomModuleResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.customModules.simulate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.
//
//   - name: Name of the effective custom module to get. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings/effectiveCust
//     omModules/{customModule}`,
//     `folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{c
//     ustomModule}`, or
//     `projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/
//     {customModule}`.
func (r *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService) Get(name string) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall{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 *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) IfNoneMatch(entityTag string) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) 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", "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule.Serv
// erResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules
// for the given parent. This includes resident modules defined at the scope of
// the parent, and inherited modules, inherited from CRM ancestors.
//
//   - parent: Name of parent to list effective custom modules. Its format is
//     `organizations/{organization}/securityHealthAnalyticsSettings`,
//     `folders/{folder}/securityHealthAnalyticsSettings`, or
//     `projects/{project}/securityHealthAnalyticsSettings`.
func (r *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesService) List(parent string) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c := &ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) PageSize(pageSize int64) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last call indicating a continuation
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) PageToken(pageToken string) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) Fields(s ...googleapi.Field) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	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 *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) IfNoneMatch(entityTag string) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) Context(ctx context.Context) *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) 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}/effectiveCustomModules")
	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", "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEffectiveSecurityHealthAnalyticsCustomModulesResponse.ServerResponse.Hea
// der or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) Do(opts ...googleapi.CallOption) (*ListEffectiveSecurityHealthAnalyticsCustomModulesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEffectiveSecurityHealthAnalyticsCustomModulesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.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 *ProjectsSecurityHealthAnalyticsSettingsEffectiveCustomModulesListCall) Pages(ctx context.Context, f func(*ListEffectiveSecurityHealthAnalyticsCustomModulesResponse) 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 ProjectsSourcesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all sources belonging to an organization.
//
//   - parent: Resource name of the parent of sources to list. Its format should
//     be `organizations/[organization_id]`, `folders/[folder_id]`, or
//     `projects/[project_id]`.
func (r *ProjectsSourcesService) List(parent string) *ProjectsSourcesListCall {
	c := &ProjectsSourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *ProjectsSourcesListCall) PageSize(pageSize int64) *ProjectsSourcesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListSourcesResponse`; indicates that this is a continuation of a prior
// `ListSources` call, and that the system should return the next page of data.
func (c *ProjectsSourcesListCall) PageToken(pageToken string) *ProjectsSourcesListCall {
	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 *ProjectsSourcesListCall) Fields(s ...googleapi.Field) *ProjectsSourcesListCall {
	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 *ProjectsSourcesListCall) IfNoneMatch(entityTag string) *ProjectsSourcesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesListCall) Context(ctx context.Context) *ProjectsSourcesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesListCall) 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}/sources")
	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", "securitycenter.projects.sources.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListSourcesResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsSourcesListCall) Do(opts ...googleapi.CallOption) (*ListSourcesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListSourcesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.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 *ProjectsSourcesListCall) Pages(ctx context.Context, f func(*ListSourcesResponse) 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 ProjectsSourcesFindingsGroupCall struct {
	s                    *Service
	parent               string
	groupfindingsrequest *GroupFindingsRequest
	urlParams_           gensupport.URLParams
	ctx_                 context.Context
	header_              http.Header
}

// Group: Filters an organization or source's findings and groups them by their
// specified properties. To group across all sources provide a `-` as the
// source id. Example: /v1/organizations/{organization_id}/sources/-/findings,
// /v1/folders/{folder_id}/sources/-/findings,
// /v1/projects/{project_id}/sources/-/findings
//
//   - parent: Name of the source to groupBy. Its format is
//     `organizations/[organization_id]/sources/[source_id]`,
//     `folders/[folder_id]/sources/[source_id]`, or
//     `projects/[project_id]/sources/[source_id]`. To groupBy across all sources
//     provide a source_id of `-`. For example:
//     `organizations/{organization_id}/sources/-,
//     folders/{folder_id}/sources/-`, or `projects/{project_id}/sources/-`.
func (r *ProjectsSourcesFindingsService) Group(parent string, groupfindingsrequest *GroupFindingsRequest) *ProjectsSourcesFindingsGroupCall {
	c := &ProjectsSourcesFindingsGroupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.groupfindingsrequest = groupfindingsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsSourcesFindingsGroupCall) Fields(s ...googleapi.Field) *ProjectsSourcesFindingsGroupCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesFindingsGroupCall) Context(ctx context.Context) *ProjectsSourcesFindingsGroupCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesFindingsGroupCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesFindingsGroupCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.groupfindingsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/findings:group")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.sources.findings.group", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.findings.group" call.
// Any non-2xx status code is an error. Response headers are in either
// *GroupFindingsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsSourcesFindingsGroupCall) Do(opts ...googleapi.CallOption) (*GroupFindingsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GroupFindingsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.findings.group", "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 *ProjectsSourcesFindingsGroupCall) Pages(ctx context.Context, f func(*GroupFindingsResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.groupfindingsrequest.PageToken = pt }(c.groupfindingsrequest.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.groupfindingsrequest.PageToken = x.NextPageToken
	}
}

type ProjectsSourcesFindingsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists an organization or source's findings. To list across all sources
// provide a `-` as the source id. Example:
// /v1/organizations/{organization_id}/sources/-/findings
//
//   - parent: Name of the source the findings belong to. Its format is
//     `organizations/[organization_id]/sources/[source_id]`,
//     `folders/[folder_id]/sources/[source_id]`, or
//     `projects/[project_id]/sources/[source_id]`. To list across all sources
//     provide a source_id of `-`. For example:
//     `organizations/{organization_id}/sources/-`,
//     `folders/{folder_id}/sources/-` or `projects/{projects_id}/sources/-`.
func (r *ProjectsSourcesFindingsService) List(parent string) *ProjectsSourcesFindingsListCall {
	c := &ProjectsSourcesFindingsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// CompareDuration sets the optional parameter "compareDuration": When
// compare_duration is set, the ListFindingsResult's "state_change" attribute
// is updated to indicate whether the finding had its state changed, the
// finding's state remained unchanged, or if the finding was added in any state
// during the compare_duration period of time that precedes the read_time. This
// is the time between (read_time - compare_duration) and read_time. The
// state_change value is derived based on the presence and state of the finding
// at the two points in time. Intermediate state changes between the two times
// don't affect the result. For example, the results aren't affected if the
// finding is made inactive and then active again. Possible "state_change"
// values when compare_duration is specified: * "CHANGED": indicates that the
// finding was present and matched the given filter at the start of
// compare_duration, but changed its state at read_time. * "UNCHANGED":
// indicates that the finding was present and matched the given filter at the
// start of compare_duration and did not change state at read_time. * "ADDED":
// indicates that the finding did not match the given filter or was not present
// at the start of compare_duration, but was present at read_time. * "REMOVED":
// indicates that the finding was present and matched the filter at the start
// of compare_duration, but did not match the filter at read_time. If
// compare_duration is not specified, then the only possible state_change is
// "UNUSED", which will be the state_change set for all findings present at
// read_time.
func (c *ProjectsSourcesFindingsListCall) CompareDuration(compareDuration string) *ProjectsSourcesFindingsListCall {
	c.urlParams_.Set("compareDuration", compareDuration)
	return c
}

// FieldMask sets the optional parameter "fieldMask": A field mask to specify
// the Finding fields to be listed in the response. An empty field mask will
// list all fields.
func (c *ProjectsSourcesFindingsListCall) FieldMask(fieldMask string) *ProjectsSourcesFindingsListCall {
	c.urlParams_.Set("fieldMask", fieldMask)
	return c
}

// Filter sets the optional parameter "filter": Expression that defines the
// filter to apply across findings. The expression is a list of one or more
// restrictions combined via logical operators `AND` and `OR`. Parentheses are
// supported, and `OR` has higher precedence than `AND`. Restrictions have the
// form ` ` and may have a `-` character in front of them to indicate negation.
// Examples include: * name * source_properties.a_property *
// security_marks.marks.marka The supported operators are: * `=` for all value
// types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring
// matching, for strings. The supported value types are: * string literals in
// quotes. * integer literals without quotes. * boolean literals `true` and
// `false` without quotes. The following field and operator combinations are
// supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state:
// `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`,
// `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an
// RFC3339 string. Examples: `event_time = "2019-06-10T16:07:18-07:00"
// `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:`
// * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`,
// `>=`, `<=` For example, `source_properties.size = 100` is a valid filter
// string. Use a partial match on the empty string to filter based on a
// property existing: `source_properties.my_property : "" Use a negated
// partial match on the empty string to filter based on a property not
// existing: `-source_properties.my_property : "" * resource: * resource.name:
// `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name:
// `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name:
// `=`, `:` * resource.type: `=`, `:` * resource.folders.resource_folder: `=`,
// `:` * resource.display_name: `=`, `:`
func (c *ProjectsSourcesFindingsListCall) Filter(filter string) *ProjectsSourcesFindingsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Expression that defines what
// fields and order to use for sorting. The string value should follow SQL
// syntax: comma separated list of fields. For example:
// "name,resource_properties.a_property". The default sorting order is
// ascending. To specify descending order for a field, a suffix " desc" should
// be appended to the field name. For example: "name
// desc,source_properties.a_property". Redundant space characters in the syntax
// are insignificant. "name desc,source_properties.a_property" and " name desc
// , source_properties.a_property " are equivalent. The following fields are
// supported: name parent state category resource_name event_time
// source_properties security_marks.marks
func (c *ProjectsSourcesFindingsListCall) OrderBy(orderBy string) *ProjectsSourcesFindingsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return in a single response. Default is 10, minimum is 1, maximum
// is 1000.
func (c *ProjectsSourcesFindingsListCall) PageSize(pageSize int64) *ProjectsSourcesFindingsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The value returned by the
// last `ListFindingsResponse`; indicates that this is a continuation of a
// prior `ListFindings` call, and that the system should return the next page
// of data.
func (c *ProjectsSourcesFindingsListCall) PageToken(pageToken string) *ProjectsSourcesFindingsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReadTime sets the optional parameter "readTime": Time used as a reference
// point when filtering findings. The filter is limited to findings existing at
// the supplied time and their values are those at that specific time. Absence
// of this field will default to the API's version of NOW.
func (c *ProjectsSourcesFindingsListCall) ReadTime(readTime string) *ProjectsSourcesFindingsListCall {
	c.urlParams_.Set("readTime", readTime)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsSourcesFindingsListCall) Fields(s ...googleapi.Field) *ProjectsSourcesFindingsListCall {
	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 *ProjectsSourcesFindingsListCall) IfNoneMatch(entityTag string) *ProjectsSourcesFindingsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesFindingsListCall) Context(ctx context.Context) *ProjectsSourcesFindingsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesFindingsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesFindingsListCall) 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}/findings")
	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", "securitycenter.projects.sources.findings.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.findings.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListFindingsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsSourcesFindingsListCall) Do(opts ...googleapi.CallOption) (*ListFindingsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListFindingsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.findings.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 *ProjectsSourcesFindingsListCall) Pages(ctx context.Context, f func(*ListFindingsResponse) 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 ProjectsSourcesFindingsPatchCall struct {
	s          *Service
	name       string
	finding    *Finding
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Creates or updates a finding. The corresponding source must exist for
// a finding creation to succeed.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}"
//     , "folders/{folder_id}/sources/{source_id}/findings/{finding_id}",
//     "projects/{project_id}/sources/{source_id}/findings/{finding_id}".
func (r *ProjectsSourcesFindingsService) Patch(name string, finding *Finding) *ProjectsSourcesFindingsPatchCall {
	c := &ProjectsSourcesFindingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.finding = finding
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the finding resource. This field should not be specified when
// creating a finding. When updating a finding, an empty mask is treated as
// updating all mutable fields and replacing source_properties. Individual
// source_properties can be added/updated by using "source_properties." in the
// field mask.
func (c *ProjectsSourcesFindingsPatchCall) UpdateMask(updateMask string) *ProjectsSourcesFindingsPatchCall {
	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 *ProjectsSourcesFindingsPatchCall) Fields(s ...googleapi.Field) *ProjectsSourcesFindingsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesFindingsPatchCall) Context(ctx context.Context) *ProjectsSourcesFindingsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesFindingsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesFindingsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.finding)
	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", "securitycenter.projects.sources.findings.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.findings.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Finding.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSourcesFindingsPatchCall) Do(opts ...googleapi.CallOption) (*Finding, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Finding{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.findings.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSourcesFindingsSetMuteCall struct {
	s              *Service
	name           string
	setmuterequest *SetMuteRequest
	urlParams_     gensupport.URLParams
	ctx_           context.Context
	header_        http.Header
}

// SetMute: Updates the mute state of a finding.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`
//     , `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`,
//     `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.
func (r *ProjectsSourcesFindingsService) SetMute(name string, setmuterequest *SetMuteRequest) *ProjectsSourcesFindingsSetMuteCall {
	c := &ProjectsSourcesFindingsSetMuteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.setmuterequest = setmuterequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsSourcesFindingsSetMuteCall) Fields(s ...googleapi.Field) *ProjectsSourcesFindingsSetMuteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesFindingsSetMuteCall) Context(ctx context.Context) *ProjectsSourcesFindingsSetMuteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesFindingsSetMuteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesFindingsSetMuteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.setmuterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMute")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.sources.findings.setMute", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.findings.setMute" call.
// Any non-2xx status code is an error. Response headers are in either
// *Finding.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSourcesFindingsSetMuteCall) Do(opts ...googleapi.CallOption) (*Finding, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Finding{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.findings.setMute", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSourcesFindingsSetStateCall struct {
	s                      *Service
	name                   string
	setfindingstaterequest *SetFindingStateRequest
	urlParams_             gensupport.URLParams
	ctx_                   context.Context
	header_                http.Header
}

// SetState: Updates the state of a finding.
//
//   - name: The relative resource name
//     (https://cloud.google.com/apis/design/resource_names#relative_resource_name)
//     of the finding. Example:
//     `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`
//     , `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`,
//     `projects/{project_id}/sources/{source_id}/findings/{finding_id}`.
func (r *ProjectsSourcesFindingsService) SetState(name string, setfindingstaterequest *SetFindingStateRequest) *ProjectsSourcesFindingsSetStateCall {
	c := &ProjectsSourcesFindingsSetStateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.setfindingstaterequest = setfindingstaterequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsSourcesFindingsSetStateCall) Fields(s ...googleapi.Field) *ProjectsSourcesFindingsSetStateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesFindingsSetStateCall) Context(ctx context.Context) *ProjectsSourcesFindingsSetStateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesFindingsSetStateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesFindingsSetStateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.setfindingstaterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setState")
	urls += "?" + c.urlParams_.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", "securitycenter.projects.sources.findings.setState", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.findings.setState" call.
// Any non-2xx status code is an error. Response headers are in either
// *Finding.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSourcesFindingsSetStateCall) Do(opts ...googleapi.CallOption) (*Finding, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Finding{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.findings.setState", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSourcesFindingsUpdateSecurityMarksCall struct {
	s             *Service
	name          string
	securitymarks *SecurityMarks
	urlParams_    gensupport.URLParams
	ctx_          context.Context
	header_       http.Header
}

// UpdateSecurityMarks: Updates security marks.
//
//   - name: The relative resource name of the SecurityMarks. See:
//     https://cloud.google.com/apis/design/resource_names#relative_resource_name
//     Examples:
//     "organizations/{organization_id}/assets/{asset_id}/securityMarks"
//     "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/
//     securityMarks".
func (r *ProjectsSourcesFindingsService) UpdateSecurityMarks(name string, securitymarks *SecurityMarks) *ProjectsSourcesFindingsUpdateSecurityMarksCall {
	c := &ProjectsSourcesFindingsUpdateSecurityMarksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.securitymarks = securitymarks
	return c
}

// StartTime sets the optional parameter "startTime": The time at which the
// updated SecurityMarks take effect. If not set uses current server time.
// Updates will be applied to the SecurityMarks that are active immediately
// preceding this time. Must be earlier or equal to the server time.
func (c *ProjectsSourcesFindingsUpdateSecurityMarksCall) StartTime(startTime string) *ProjectsSourcesFindingsUpdateSecurityMarksCall {
	c.urlParams_.Set("startTime", startTime)
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the security marks resource. The field mask must not contain
// duplicate fields. If empty or set to "marks", all marks will be replaced.
// Individual marks can be updated using "marks.".
func (c *ProjectsSourcesFindingsUpdateSecurityMarksCall) UpdateMask(updateMask string) *ProjectsSourcesFindingsUpdateSecurityMarksCall {
	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 *ProjectsSourcesFindingsUpdateSecurityMarksCall) Fields(s ...googleapi.Field) *ProjectsSourcesFindingsUpdateSecurityMarksCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesFindingsUpdateSecurityMarksCall) Context(ctx context.Context) *ProjectsSourcesFindingsUpdateSecurityMarksCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesFindingsUpdateSecurityMarksCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesFindingsUpdateSecurityMarksCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitymarks)
	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", "securitycenter.projects.sources.findings.updateSecurityMarks", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.findings.updateSecurityMarks" call.
// Any non-2xx status code is an error. Response headers are in either
// *SecurityMarks.ServerResponse.Header or (if a response was returned at all)
// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsSourcesFindingsUpdateSecurityMarksCall) Do(opts ...googleapi.CallOption) (*SecurityMarks, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &SecurityMarks{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.findings.updateSecurityMarks", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsSourcesFindingsExternalSystemsPatchCall struct {
	s                                         *Service
	name                                      string
	googlecloudsecuritycenterv1externalsystem *GoogleCloudSecuritycenterV1ExternalSystem
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Patch: Updates external system. This is for a given finding.
//
//   - name: Full resource name of the external system, for example:
//     "organizations/1234/sources/5678/findings/123456/externalSystems/jira",
//     "folders/1234/sources/5678/findings/123456/externalSystems/jira",
//     "projects/1234/sources/5678/findings/123456/externalSystems/jira".
func (r *ProjectsSourcesFindingsExternalSystemsService) Patch(name string, googlecloudsecuritycenterv1externalsystem *GoogleCloudSecuritycenterV1ExternalSystem) *ProjectsSourcesFindingsExternalSystemsPatchCall {
	c := &ProjectsSourcesFindingsExternalSystemsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudsecuritycenterv1externalsystem = googlecloudsecuritycenterv1externalsystem
	return c
}

// UpdateMask sets the optional parameter "updateMask": The FieldMask to use
// when updating the external system resource. If empty all mutable fields will
// be updated.
func (c *ProjectsSourcesFindingsExternalSystemsPatchCall) UpdateMask(updateMask string) *ProjectsSourcesFindingsExternalSystemsPatchCall {
	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 *ProjectsSourcesFindingsExternalSystemsPatchCall) Fields(s ...googleapi.Field) *ProjectsSourcesFindingsExternalSystemsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsSourcesFindingsExternalSystemsPatchCall) Context(ctx context.Context) *ProjectsSourcesFindingsExternalSystemsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsSourcesFindingsExternalSystemsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsSourcesFindingsExternalSystemsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudsecuritycenterv1externalsystem)
	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", "securitycenter.projects.sources.findings.externalSystems.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "securitycenter.projects.sources.findings.externalSystems.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudSecuritycenterV1ExternalSystem.ServerResponse.Header or (if a
// response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsSourcesFindingsExternalSystemsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudSecuritycenterV1ExternalSystem, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudSecuritycenterV1ExternalSystem{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "securitycenter.projects.sources.findings.externalSystems.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}
