// 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 oracledatabase provides access to the Oracle Database@Google Cloud API.
//
// For product documentation, see: https://cloud.google.com/oracle/database/docs
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
//	import "google.golang.org/api/oracledatabase/v1"
//	...
//	ctx := context.Background()
//	oracledatabaseService, err := oracledatabase.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]:
//
//	oracledatabaseService, err := oracledatabase.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, ...)
//	oracledatabaseService, err := oracledatabase.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package oracledatabase // import "google.golang.org/api/oracledatabase/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 = "oracledatabase:v1"
const apiName = "oracledatabase"
const apiVersion = "v1"
const basePath = "https://oracledatabase.googleapis.com/"
const basePathTemplate = "https://oracledatabase.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://oracledatabase.mtls.googleapis.com/"

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

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/cloud-platform",
	)
	// NOTE: prepend, so we don't override user-specified scopes.
	opts = append([]option.ClientOption{scopesOption}, opts...)
	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
	opts = append(opts, internaloption.EnableNewAuthLibrary())
	client, endpoint, err := htransport.NewClient(ctx, opts...)
	if err != nil {
		return nil, err
	}
	s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)}
	s.Projects = NewProjectsService(s)
	if endpoint != "" {
		s.BasePath = endpoint
	}
	return s, nil
}

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

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

	Projects *ProjectsService
}

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

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

type ProjectsService struct {
	s *Service

	Locations *ProjectsLocationsService
}

func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
	rs := &ProjectsLocationsService{s: s}
	rs.AutonomousDatabaseBackups = NewProjectsLocationsAutonomousDatabaseBackupsService(s)
	rs.AutonomousDatabaseCharacterSets = NewProjectsLocationsAutonomousDatabaseCharacterSetsService(s)
	rs.AutonomousDatabases = NewProjectsLocationsAutonomousDatabasesService(s)
	rs.AutonomousDbVersions = NewProjectsLocationsAutonomousDbVersionsService(s)
	rs.CloudExadataInfrastructures = NewProjectsLocationsCloudExadataInfrastructuresService(s)
	rs.CloudVmClusters = NewProjectsLocationsCloudVmClustersService(s)
	rs.DbSystemShapes = NewProjectsLocationsDbSystemShapesService(s)
	rs.Entitlements = NewProjectsLocationsEntitlementsService(s)
	rs.GiVersions = NewProjectsLocationsGiVersionsService(s)
	rs.Operations = NewProjectsLocationsOperationsService(s)
	return rs
}

type ProjectsLocationsService struct {
	s *Service

	AutonomousDatabaseBackups *ProjectsLocationsAutonomousDatabaseBackupsService

	AutonomousDatabaseCharacterSets *ProjectsLocationsAutonomousDatabaseCharacterSetsService

	AutonomousDatabases *ProjectsLocationsAutonomousDatabasesService

	AutonomousDbVersions *ProjectsLocationsAutonomousDbVersionsService

	CloudExadataInfrastructures *ProjectsLocationsCloudExadataInfrastructuresService

	CloudVmClusters *ProjectsLocationsCloudVmClustersService

	DbSystemShapes *ProjectsLocationsDbSystemShapesService

	Entitlements *ProjectsLocationsEntitlementsService

	GiVersions *ProjectsLocationsGiVersionsService

	Operations *ProjectsLocationsOperationsService
}

func NewProjectsLocationsAutonomousDatabaseBackupsService(s *Service) *ProjectsLocationsAutonomousDatabaseBackupsService {
	rs := &ProjectsLocationsAutonomousDatabaseBackupsService{s: s}
	return rs
}

type ProjectsLocationsAutonomousDatabaseBackupsService struct {
	s *Service
}

func NewProjectsLocationsAutonomousDatabaseCharacterSetsService(s *Service) *ProjectsLocationsAutonomousDatabaseCharacterSetsService {
	rs := &ProjectsLocationsAutonomousDatabaseCharacterSetsService{s: s}
	return rs
}

type ProjectsLocationsAutonomousDatabaseCharacterSetsService struct {
	s *Service
}

func NewProjectsLocationsAutonomousDatabasesService(s *Service) *ProjectsLocationsAutonomousDatabasesService {
	rs := &ProjectsLocationsAutonomousDatabasesService{s: s}
	return rs
}

type ProjectsLocationsAutonomousDatabasesService struct {
	s *Service
}

func NewProjectsLocationsAutonomousDbVersionsService(s *Service) *ProjectsLocationsAutonomousDbVersionsService {
	rs := &ProjectsLocationsAutonomousDbVersionsService{s: s}
	return rs
}

type ProjectsLocationsAutonomousDbVersionsService struct {
	s *Service
}

func NewProjectsLocationsCloudExadataInfrastructuresService(s *Service) *ProjectsLocationsCloudExadataInfrastructuresService {
	rs := &ProjectsLocationsCloudExadataInfrastructuresService{s: s}
	rs.DbServers = NewProjectsLocationsCloudExadataInfrastructuresDbServersService(s)
	return rs
}

type ProjectsLocationsCloudExadataInfrastructuresService struct {
	s *Service

	DbServers *ProjectsLocationsCloudExadataInfrastructuresDbServersService
}

func NewProjectsLocationsCloudExadataInfrastructuresDbServersService(s *Service) *ProjectsLocationsCloudExadataInfrastructuresDbServersService {
	rs := &ProjectsLocationsCloudExadataInfrastructuresDbServersService{s: s}
	return rs
}

type ProjectsLocationsCloudExadataInfrastructuresDbServersService struct {
	s *Service
}

func NewProjectsLocationsCloudVmClustersService(s *Service) *ProjectsLocationsCloudVmClustersService {
	rs := &ProjectsLocationsCloudVmClustersService{s: s}
	rs.DbNodes = NewProjectsLocationsCloudVmClustersDbNodesService(s)
	return rs
}

type ProjectsLocationsCloudVmClustersService struct {
	s *Service

	DbNodes *ProjectsLocationsCloudVmClustersDbNodesService
}

func NewProjectsLocationsCloudVmClustersDbNodesService(s *Service) *ProjectsLocationsCloudVmClustersDbNodesService {
	rs := &ProjectsLocationsCloudVmClustersDbNodesService{s: s}
	return rs
}

type ProjectsLocationsCloudVmClustersDbNodesService struct {
	s *Service
}

func NewProjectsLocationsDbSystemShapesService(s *Service) *ProjectsLocationsDbSystemShapesService {
	rs := &ProjectsLocationsDbSystemShapesService{s: s}
	return rs
}

type ProjectsLocationsDbSystemShapesService struct {
	s *Service
}

func NewProjectsLocationsEntitlementsService(s *Service) *ProjectsLocationsEntitlementsService {
	rs := &ProjectsLocationsEntitlementsService{s: s}
	return rs
}

type ProjectsLocationsEntitlementsService struct {
	s *Service
}

func NewProjectsLocationsGiVersionsService(s *Service) *ProjectsLocationsGiVersionsService {
	rs := &ProjectsLocationsGiVersionsService{s: s}
	return rs
}

type ProjectsLocationsGiVersionsService struct {
	s *Service
}

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

type ProjectsLocationsOperationsService struct {
	s *Service
}

// AllConnectionStrings: A list of all connection strings that can be used to
// connect to the Autonomous Database.
type AllConnectionStrings struct {
	// High: Output only. The database service provides the highest level of
	// resources to each SQL statement.
	High string `json:"high,omitempty"`
	// Low: Output only. The database service provides the least level of resources
	// to each SQL statement.
	Low string `json:"low,omitempty"`
	// Medium: Output only. The database service provides a lower level of
	// resources to each SQL statement.
	Medium string `json:"medium,omitempty"`
	// ForceSendFields is a list of field names (e.g. "High") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "High") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AutonomousDatabase: Details of the Autonomous Database resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabase/
type AutonomousDatabase struct {
	// AdminPassword: Optional. The password for the default ADMIN user.
	AdminPassword string `json:"adminPassword,omitempty"`
	// Cidr: Optional. The subnet CIDR range for the Autonomous Database.
	Cidr string `json:"cidr,omitempty"`
	// CreateTime: Output only. The date and time that the Autonomous Database was
	// created.
	CreateTime string `json:"createTime,omitempty"`
	// Database: Optional. The name of the Autonomous Database. The database name
	// must be unique in the project. The name must begin with a letter and can
	// contain a maximum of 30 alphanumeric characters.
	Database string `json:"database,omitempty"`
	// DisasterRecoverySupportedLocations: Output only. List of supported GCP
	// region to clone the Autonomous Database for disaster recovery. Format:
	// `project/{project}/locations/{location}`.
	DisasterRecoverySupportedLocations []string `json:"disasterRecoverySupportedLocations,omitempty"`
	// DisplayName: Optional. The display name for the Autonomous Database. The
	// name does not have to be unique within your project.
	DisplayName string `json:"displayName,omitempty"`
	// EntitlementId: Output only. The ID of the subscription entitlement
	// associated with the Autonomous Database.
	EntitlementId string `json:"entitlementId,omitempty"`
	// Labels: Optional. The labels or tags associated with the Autonomous
	// Database.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Identifier. The name of the Autonomous Database resource in the
	// following format:
	// projects/{project}/locations/{region}/autonomousDatabases/{autonomous_databas
	// e}
	Name string `json:"name,omitempty"`
	// Network: Optional. The name of the VPC network used by the Autonomous
	// Database in the following format:
	// projects/{project}/global/networks/{network}
	Network string `json:"network,omitempty"`
	// PeerAutonomousDatabases: Output only. The peer Autonomous Database names of
	// the given Autonomous Database.
	PeerAutonomousDatabases []string `json:"peerAutonomousDatabases,omitempty"`
	// Properties: Optional. The properties of the Autonomous Database.
	Properties *AutonomousDatabaseProperties `json:"properties,omitempty"`
	// SourceConfig: Optional. The source Autonomous Database configuration for the
	// standby Autonomous Database. The source Autonomous Database is configured
	// while creating the Peer Autonomous Database and can't be updated after
	// creation.
	SourceConfig *SourceConfig `json:"sourceConfig,omitempty"`

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

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

// AutonomousDatabaseApex: Oracle APEX Application Development.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseApex
type AutonomousDatabaseApex struct {
	// ApexVersion: Output only. The Oracle APEX Application Development version.
	ApexVersion string `json:"apexVersion,omitempty"`
	// OrdsVersion: Output only. The Oracle REST Data Services (ORDS) version.
	OrdsVersion string `json:"ordsVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApexVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApexVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AutonomousDatabaseBackup: Details of the Autonomous Database Backup
// resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabaseBackup/
type AutonomousDatabaseBackup struct {
	// AutonomousDatabase: Required. The name of the Autonomous Database resource
	// for which the backup is being created. Format:
	// projects/{project}/locations/{region}/autonomousDatabases/{autonomous_databas
	// e}
	AutonomousDatabase string `json:"autonomousDatabase,omitempty"`
	// DisplayName: Optional. User friendly name for the Backup. The name does not
	// have to be unique.
	DisplayName string `json:"displayName,omitempty"`
	// Labels: Optional. labels or tags associated with the resource.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Identifier. The name of the Autonomous Database Backup resource with
	// the format:
	// projects/{project}/locations/{region}/autonomousDatabaseBackups/{autonomous_d
	// atabase_backup}
	Name string `json:"name,omitempty"`
	// Properties: Optional. Various properties of the backup.
	Properties *AutonomousDatabaseBackupProperties `json:"properties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutonomousDatabase") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutonomousDatabase") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AutonomousDatabaseBackupProperties: Properties of the Autonomous Database
// Backup resource.
type AutonomousDatabaseBackupProperties struct {
	// AvailableTillTime: Output only. Timestamp until when the backup will be
	// available.
	AvailableTillTime string `json:"availableTillTime,omitempty"`
	// CompartmentId: Output only. The OCID of the compartment.
	CompartmentId string `json:"compartmentId,omitempty"`
	// DatabaseSizeTb: Output only. The quantity of data in the database, in
	// terabytes.
	DatabaseSizeTb float64 `json:"databaseSizeTb,omitempty"`
	// DbVersion: Output only. A valid Oracle Database version for Autonomous
	// Database.
	DbVersion string `json:"dbVersion,omitempty"`
	// EndTime: Output only. The date and time the backup completed.
	EndTime string `json:"endTime,omitempty"`
	// IsAutomaticBackup: Output only. Indicates if the backup is automatic or user
	// initiated.
	IsAutomaticBackup bool `json:"isAutomaticBackup,omitempty"`
	// IsLongTermBackup: Output only. Indicates if the backup is long term backup.
	IsLongTermBackup bool `json:"isLongTermBackup,omitempty"`
	// IsRestorable: Output only. Indicates if the backup can be used to restore
	// the Autonomous Database.
	IsRestorable bool `json:"isRestorable,omitempty"`
	// KeyStoreId: Optional. The OCID of the key store of Oracle Vault.
	KeyStoreId string `json:"keyStoreId,omitempty"`
	// KeyStoreWallet: Optional. The wallet name for Oracle Key Vault.
	KeyStoreWallet string `json:"keyStoreWallet,omitempty"`
	// KmsKeyId: Optional. The OCID of the key container that is used as the master
	// encryption key in database transparent data encryption (TDE) operations.
	KmsKeyId string `json:"kmsKeyId,omitempty"`
	// KmsKeyVersionId: Optional. The OCID of the key container version that is
	// used in database transparent data encryption (TDE) operations KMS Key can
	// have multiple key versions. If none is specified, the current key version
	// (latest) of the Key Id is used for the operation. Autonomous Database
	// Serverless does not use key versions, hence is not applicable for Autonomous
	// Database Serverless instances.
	KmsKeyVersionId string `json:"kmsKeyVersionId,omitempty"`
	// LifecycleDetails: Output only. Additional information about the current
	// lifecycle state.
	LifecycleDetails string `json:"lifecycleDetails,omitempty"`
	// LifecycleState: Output only. The lifecycle state of the backup.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "CREATING" - Indicates that the resource is in creating state.
	//   "ACTIVE" - Indicates that the resource is in active state.
	//   "DELETING" - Indicates that the resource is in deleting state.
	//   "DELETED" - Indicates that the resource is in deleted state.
	//   "FAILED" - Indicates that the resource is in failed state.
	//   "UPDATING" - Indicates that the resource is in updating state.
	LifecycleState string `json:"lifecycleState,omitempty"`
	// Ocid: Output only. OCID of the Autonomous Database backup.
	// https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle
	Ocid string `json:"ocid,omitempty"`
	// RetentionPeriodDays: Optional. Retention period in days for the backup.
	RetentionPeriodDays int64 `json:"retentionPeriodDays,omitempty"`
	// SizeTb: Output only. The backup size in terabytes.
	SizeTb float64 `json:"sizeTb,omitempty"`
	// StartTime: Output only. The date and time the backup started.
	StartTime string `json:"startTime,omitempty"`
	// Type: Output only. The type of the backup.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Default unspecified value.
	//   "INCREMENTAL" - Incremental backups.
	//   "FULL" - Full backups.
	//   "LONG_TERM" - Long term backups.
	Type string `json:"type,omitempty"`
	// VaultId: Optional. The OCID of the vault.
	VaultId string `json:"vaultId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailableTillTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailableTillTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// AutonomousDatabaseCharacterSet: Details of the Autonomous Database character
// set resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabaseCharacterSets/
type AutonomousDatabaseCharacterSet struct {
	// CharacterSet: Output only. The character set name for the Autonomous
	// Database which is the ID in the resource name.
	CharacterSet string `json:"characterSet,omitempty"`
	// CharacterSetType: Output only. The character set type for the Autonomous
	// Database.
	//
	// Possible values:
	//   "CHARACTER_SET_TYPE_UNSPECIFIED" - Character set type is not specified.
	//   "DATABASE" - Character set type is set to database.
	//   "NATIONAL" - Character set type is set to national.
	CharacterSetType string `json:"characterSetType,omitempty"`
	// Name: Identifier. The name of the Autonomous Database Character Set resource
	// in the following format:
	// projects/{project}/locations/{region}/autonomousDatabaseCharacterSets/{autono
	// mous_database_character_set}
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CharacterSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CharacterSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AutonomousDatabaseConnectionStrings: The connection string used to connect
// to the Autonomous Database.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseConnectionStrings
type AutonomousDatabaseConnectionStrings struct {
	// AllConnectionStrings: Output only. Returns all connection strings that can
	// be used to connect to the Autonomous Database.
	AllConnectionStrings *AllConnectionStrings `json:"allConnectionStrings,omitempty"`
	// Dedicated: Output only. The database service provides the least level of
	// resources to each SQL statement, but supports the most number of concurrent
	// SQL statements.
	Dedicated string `json:"dedicated,omitempty"`
	// High: Output only. The database service provides the highest level of
	// resources to each SQL statement.
	High string `json:"high,omitempty"`
	// Low: Output only. The database service provides the least level of resources
	// to each SQL statement.
	Low string `json:"low,omitempty"`
	// Medium: Output only. The database service provides a lower level of
	// resources to each SQL statement.
	Medium string `json:"medium,omitempty"`
	// Profiles: Output only. A list of connection string profiles to allow clients
	// to group, filter, and select values based on the structured metadata.
	Profiles []*DatabaseConnectionStringProfile `json:"profiles,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllConnectionStrings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllConnectionStrings") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AutonomousDatabaseConnectionUrls: The URLs for accessing Oracle Application
// Express (APEX) and SQL Developer Web with a browser from a Compute instance.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseConnectionUrls
type AutonomousDatabaseConnectionUrls struct {
	// ApexUri: Output only. Oracle Application Express (APEX) URL.
	ApexUri string `json:"apexUri,omitempty"`
	// DatabaseTransformsUri: Output only. The URL of the Database Transforms for
	// the Autonomous Database.
	DatabaseTransformsUri string `json:"databaseTransformsUri,omitempty"`
	// GraphStudioUri: Output only. The URL of the Graph Studio for the Autonomous
	// Database.
	GraphStudioUri string `json:"graphStudioUri,omitempty"`
	// MachineLearningNotebookUri: Output only. The URL of the Oracle Machine
	// Learning (OML) Notebook for the Autonomous Database.
	MachineLearningNotebookUri string `json:"machineLearningNotebookUri,omitempty"`
	// MachineLearningUserManagementUri: Output only. The URL of Machine Learning
	// user management the Autonomous Database.
	MachineLearningUserManagementUri string `json:"machineLearningUserManagementUri,omitempty"`
	// MongoDbUri: Output only. The URL of the MongoDB API for the Autonomous
	// Database.
	MongoDbUri string `json:"mongoDbUri,omitempty"`
	// OrdsUri: Output only. The Oracle REST Data Services (ORDS) URL of the Web
	// Access for the Autonomous Database.
	OrdsUri string `json:"ordsUri,omitempty"`
	// SqlDevWebUri: Output only. The URL of the Oracle SQL Developer Web for the
	// Autonomous Database.
	SqlDevWebUri string `json:"sqlDevWebUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApexUri") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApexUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AutonomousDatabaseProperties: The properties of an Autonomous Database.
type AutonomousDatabaseProperties struct {
	// ActualUsedDataStorageSizeTb: Output only. The amount of storage currently
	// being used for user and system data, in terabytes.
	ActualUsedDataStorageSizeTb float64 `json:"actualUsedDataStorageSizeTb,omitempty"`
	// AllocatedStorageSizeTb: Output only. The amount of storage currently
	// allocated for the database tables and billed for, rounded up in terabytes.
	AllocatedStorageSizeTb float64 `json:"allocatedStorageSizeTb,omitempty"`
	// AllowlistedIps: Optional. The list of allowlisted IP addresses for the
	// Autonomous Database.
	AllowlistedIps []string `json:"allowlistedIps,omitempty"`
	// ApexDetails: Output only. The details for the Oracle APEX Application
	// Development.
	ApexDetails *AutonomousDatabaseApex `json:"apexDetails,omitempty"`
	// ArePrimaryAllowlistedIpsUsed: Output only. This field indicates the status
	// of Data Guard and Access control for the Autonomous Database. The field's
	// value is null if Data Guard is disabled or Access Control is disabled. The
	// field's value is TRUE if both Data Guard and Access Control are enabled, and
	// the Autonomous Database is using primary IP access control list (ACL) for
	// standby. The field's value is FALSE if both Data Guard and Access Control
	// are enabled, and the Autonomous Database is using a different IP access
	// control list (ACL) for standby compared to primary.
	ArePrimaryAllowlistedIpsUsed bool `json:"arePrimaryAllowlistedIpsUsed,omitempty"`
	// AutonomousContainerDatabaseId: Output only. The Autonomous Container
	// Database OCID.
	AutonomousContainerDatabaseId string `json:"autonomousContainerDatabaseId,omitempty"`
	// AvailableUpgradeVersions: Output only. The list of available Oracle Database
	// upgrade versions for an Autonomous Database.
	AvailableUpgradeVersions []string `json:"availableUpgradeVersions,omitempty"`
	// BackupRetentionPeriodDays: Optional. The retention period for the Autonomous
	// Database. This field is specified in days, can range from 1 day to 60 days,
	// and has a default value of 60 days.
	BackupRetentionPeriodDays int64 `json:"backupRetentionPeriodDays,omitempty"`
	// CharacterSet: Optional. The character set for the Autonomous Database. The
	// default is AL32UTF8.
	CharacterSet string `json:"characterSet,omitempty"`
	// ComputeCount: Optional. The number of compute servers for the Autonomous
	// Database.
	ComputeCount float64 `json:"computeCount,omitempty"`
	// ConnectionStrings: Output only. The connection strings used to connect to an
	// Autonomous Database.
	ConnectionStrings *AutonomousDatabaseConnectionStrings `json:"connectionStrings,omitempty"`
	// ConnectionUrls: Output only. The Oracle Connection URLs for an Autonomous
	// Database.
	ConnectionUrls *AutonomousDatabaseConnectionUrls `json:"connectionUrls,omitempty"`
	// CpuCoreCount: Optional. The number of CPU cores to be made available to the
	// database.
	CpuCoreCount int64 `json:"cpuCoreCount,omitempty"`
	// CustomerContacts: Optional. The list of customer contacts.
	CustomerContacts []*CustomerContact `json:"customerContacts,omitempty"`
	// DataGuardRoleChangedTime: Output only. The date and time the Autonomous Data
	// Guard role was changed for the standby Autonomous Database.
	DataGuardRoleChangedTime string `json:"dataGuardRoleChangedTime,omitempty"`
	// DataSafeState: Output only. The current state of the Data Safe registration
	// for the Autonomous Database.
	//
	// Possible values:
	//   "DATA_SAFE_STATE_UNSPECIFIED" - Default unspecified value.
	//   "REGISTERING" - Registering data safe state.
	//   "REGISTERED" - Registered data safe state.
	//   "DEREGISTERING" - Deregistering data safe state.
	//   "NOT_REGISTERED" - Not registered data safe state.
	//   "FAILED" - Failed data safe state.
	DataSafeState string `json:"dataSafeState,omitempty"`
	// DataStorageSizeGb: Optional. The size of the data stored in the database, in
	// gigabytes.
	DataStorageSizeGb int64 `json:"dataStorageSizeGb,omitempty"`
	// DataStorageSizeTb: Optional. The size of the data stored in the database, in
	// terabytes.
	DataStorageSizeTb int64 `json:"dataStorageSizeTb,omitempty"`
	// DatabaseManagementState: Output only. The current state of database
	// management for the Autonomous Database.
	//
	// Possible values:
	//   "DATABASE_MANAGEMENT_STATE_UNSPECIFIED" - Default unspecified value.
	//   "ENABLING" - Enabling Database Management state
	//   "ENABLED" - Enabled Database Management state
	//   "DISABLING" - Disabling Database Management state
	//   "NOT_ENABLED" - Not Enabled Database Management state
	//   "FAILED_ENABLING" - Failed enabling Database Management state
	//   "FAILED_DISABLING" - Failed disabling Database Management state
	DatabaseManagementState string `json:"databaseManagementState,omitempty"`
	// DbEdition: Optional. The edition of the Autonomous Databases.
	//
	// Possible values:
	//   "DATABASE_EDITION_UNSPECIFIED" - Default unspecified value.
	//   "STANDARD_EDITION" - Standard Database Edition
	//   "ENTERPRISE_EDITION" - Enterprise Database Edition
	DbEdition string `json:"dbEdition,omitempty"`
	// DbVersion: Optional. The Oracle Database version for the Autonomous
	// Database.
	DbVersion string `json:"dbVersion,omitempty"`
	// DbWorkload: Required. The workload type of the Autonomous Database.
	//
	// Possible values:
	//   "DB_WORKLOAD_UNSPECIFIED" - Default unspecified value.
	//   "OLTP" - Autonomous Transaction Processing database.
	//   "DW" - Autonomous Data Warehouse database.
	//   "AJD" - Autonomous JSON Database.
	//   "APEX" - Autonomous Database with the Oracle APEX Application Development
	// workload type.
	DbWorkload string `json:"dbWorkload,omitempty"`
	// DisasterRecoveryRoleChangedTime: Output only. The date and time the Disaster
	// Recovery role was changed for the standby Autonomous Database.
	DisasterRecoveryRoleChangedTime string `json:"disasterRecoveryRoleChangedTime,omitempty"`
	// FailedDataRecoveryDuration: Output only. This field indicates the number of
	// seconds of data loss during a Data Guard failover.
	FailedDataRecoveryDuration string `json:"failedDataRecoveryDuration,omitempty"`
	// IsAutoScalingEnabled: Optional. This field indicates if auto scaling is
	// enabled for the Autonomous Database CPU core count.
	IsAutoScalingEnabled bool `json:"isAutoScalingEnabled,omitempty"`
	// IsLocalDataGuardEnabled: Output only. This field indicates whether the
	// Autonomous Database has local (in-region) Data Guard enabled.
	IsLocalDataGuardEnabled bool `json:"isLocalDataGuardEnabled,omitempty"`
	// IsStorageAutoScalingEnabled: Optional. This field indicates if auto scaling
	// is enabled for the Autonomous Database storage.
	IsStorageAutoScalingEnabled bool `json:"isStorageAutoScalingEnabled,omitempty"`
	// LicenseType: Required. The license type used for the Autonomous Database.
	//
	// Possible values:
	//   "LICENSE_TYPE_UNSPECIFIED" - Unspecified
	//   "LICENSE_INCLUDED" - License included part of offer
	//   "BRING_YOUR_OWN_LICENSE" - Bring your own license
	LicenseType string `json:"licenseType,omitempty"`
	// LifecycleDetails: Output only. The details of the current lifestyle state of
	// the Autonomous Database.
	LifecycleDetails string `json:"lifecycleDetails,omitempty"`
	// LocalAdgAutoFailoverMaxDataLossLimit: Output only. This field indicates the
	// maximum data loss limit for an Autonomous Database, in seconds.
	LocalAdgAutoFailoverMaxDataLossLimit int64 `json:"localAdgAutoFailoverMaxDataLossLimit,omitempty"`
	// LocalDisasterRecoveryType: Output only. This field indicates the local
	// disaster recovery (DR) type of an Autonomous Database.
	//
	// Possible values:
	//   "LOCAL_DISASTER_RECOVERY_TYPE_UNSPECIFIED" - Default unspecified value.
	//   "ADG" - Autonomous Data Guard recovery.
	//   "BACKUP_BASED" - Backup based recovery.
	LocalDisasterRecoveryType string `json:"localDisasterRecoveryType,omitempty"`
	// LocalStandbyDb: Output only. The details of the Autonomous Data Guard
	// standby database.
	LocalStandbyDb *AutonomousDatabaseStandbySummary `json:"localStandbyDb,omitempty"`
	// MaintenanceBeginTime: Output only. The date and time when maintenance will
	// begin.
	MaintenanceBeginTime string `json:"maintenanceBeginTime,omitempty"`
	// MaintenanceEndTime: Output only. The date and time when maintenance will
	// end.
	MaintenanceEndTime string `json:"maintenanceEndTime,omitempty"`
	// MaintenanceScheduleType: Optional. The maintenance schedule of the
	// Autonomous Database.
	//
	// Possible values:
	//   "MAINTENANCE_SCHEDULE_TYPE_UNSPECIFIED" - Default unspecified value.
	//   "EARLY" - An EARLY maintenance schedule patches the database before the
	// regular scheduled maintenance.
	//   "REGULAR" - A REGULAR maintenance schedule follows the normal maintenance
	// cycle.
	MaintenanceScheduleType string `json:"maintenanceScheduleType,omitempty"`
	// MemoryPerOracleComputeUnitGbs: Output only. The amount of memory enabled per
	// ECPU, in gigabytes.
	MemoryPerOracleComputeUnitGbs int64 `json:"memoryPerOracleComputeUnitGbs,omitempty"`
	// MemoryTableGbs: Output only. The memory assigned to in-memory tables in an
	// Autonomous Database.
	MemoryTableGbs int64 `json:"memoryTableGbs,omitempty"`
	// MtlsConnectionRequired: Optional. This field specifies if the Autonomous
	// Database requires mTLS connections.
	MtlsConnectionRequired bool `json:"mtlsConnectionRequired,omitempty"`
	// NCharacterSet: Optional. The national character set for the Autonomous
	// Database. The default is AL16UTF16.
	NCharacterSet string `json:"nCharacterSet,omitempty"`
	// NextLongTermBackupTime: Output only. The long term backup schedule of the
	// Autonomous Database.
	NextLongTermBackupTime string `json:"nextLongTermBackupTime,omitempty"`
	// OciUrl: Output only. The Oracle Cloud Infrastructure link for the Autonomous
	// Database.
	OciUrl string `json:"ociUrl,omitempty"`
	// Ocid: Output only. OCID of the Autonomous Database.
	// https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle
	Ocid string `json:"ocid,omitempty"`
	// OpenMode: Output only. This field indicates the current mode of the
	// Autonomous Database.
	//
	// Possible values:
	//   "OPEN_MODE_UNSPECIFIED" - Default unspecified value.
	//   "READ_ONLY" - Read Only Mode
	//   "READ_WRITE" - Read Write Mode
	OpenMode string `json:"openMode,omitempty"`
	// OperationsInsightsState: Output only. This field indicates the state of
	// Operations Insights for the Autonomous Database.
	//
	// Possible values:
	//   "OPERATIONS_INSIGHTS_STATE_UNSPECIFIED" - Default unspecified value.
	//   "ENABLING" - Enabling status for operation insights.
	//   "ENABLED" - Enabled status for operation insights.
	//   "DISABLING" - Disabling status for operation insights.
	//   "NOT_ENABLED" - Not Enabled status for operation insights.
	//   "FAILED_ENABLING" - Failed enabling status for operation insights.
	//   "FAILED_DISABLING" - Failed disabling status for operation insights.
	OperationsInsightsState string `json:"operationsInsightsState,omitempty"`
	// PeerDbIds: Output only. The list of OCIDs of standby databases located in
	// Autonomous Data Guard remote regions that are associated with the source
	// database.
	PeerDbIds []string `json:"peerDbIds,omitempty"`
	// PermissionLevel: Output only. The permission level of the Autonomous
	// Database.
	//
	// Possible values:
	//   "PERMISSION_LEVEL_UNSPECIFIED" - Default unspecified value.
	//   "RESTRICTED" - Restricted mode allows access only by admin users.
	//   "UNRESTRICTED" - Normal access.
	PermissionLevel string `json:"permissionLevel,omitempty"`
	// PrivateEndpoint: Output only. The private endpoint for the Autonomous
	// Database.
	PrivateEndpoint string `json:"privateEndpoint,omitempty"`
	// PrivateEndpointIp: Optional. The private endpoint IP address for the
	// Autonomous Database.
	PrivateEndpointIp string `json:"privateEndpointIp,omitempty"`
	// PrivateEndpointLabel: Optional. The private endpoint label for the
	// Autonomous Database.
	PrivateEndpointLabel string `json:"privateEndpointLabel,omitempty"`
	// RefreshableMode: Output only. The refresh mode of the cloned Autonomous
	// Database.
	//
	// Possible values:
	//   "REFRESHABLE_MODE_UNSPECIFIED" - The default unspecified value.
	//   "AUTOMATIC" - AUTOMATIC indicates that the cloned database is
	// automatically refreshed with data from the source Autonomous Database.
	//   "MANUAL" - MANUAL indicates that the cloned database is manually refreshed
	// with data from the source Autonomous Database.
	RefreshableMode string `json:"refreshableMode,omitempty"`
	// RefreshableState: Output only. The refresh State of the clone.
	//
	// Possible values:
	//   "REFRESHABLE_STATE_UNSPECIFIED" - Default unspecified value.
	//   "REFRESHING" - Refreshing
	//   "NOT_REFRESHING" - Not refreshed
	RefreshableState string `json:"refreshableState,omitempty"`
	// Role: Output only. The Data Guard role of the Autonomous Database.
	//
	// Possible values:
	//   "ROLE_UNSPECIFIED" - Default unspecified value.
	//   "PRIMARY" - Primary role
	//   "STANDBY" - Standby role
	//   "DISABLED_STANDBY" - Disabled standby role
	//   "BACKUP_COPY" - Backup copy role
	//   "SNAPSHOT_STANDBY" - Snapshot standby role
	Role string `json:"role,omitempty"`
	// ScheduledOperationDetails: Output only. The list and details of the
	// scheduled operations of the Autonomous Database.
	ScheduledOperationDetails []*ScheduledOperationDetails `json:"scheduledOperationDetails,omitempty"`
	// SecretId: Optional. The ID of the Oracle Cloud Infrastructure vault secret.
	SecretId string `json:"secretId,omitempty"`
	// SqlWebDeveloperUrl: Output only. The SQL Web Developer URL for the
	// Autonomous Database.
	SqlWebDeveloperUrl string `json:"sqlWebDeveloperUrl,omitempty"`
	// State: Output only. The current lifecycle state of the Autonomous Database.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "PROVISIONING" - Indicates that the Autonomous Database is in provisioning
	// state.
	//   "AVAILABLE" - Indicates that the Autonomous Database is in available
	// state.
	//   "STOPPING" - Indicates that the Autonomous Database is in stopping state.
	//   "STOPPED" - Indicates that the Autonomous Database is in stopped state.
	//   "STARTING" - Indicates that the Autonomous Database is in starting state.
	//   "TERMINATING" - Indicates that the Autonomous Database is in terminating
	// state.
	//   "TERMINATED" - Indicates that the Autonomous Database is in terminated
	// state.
	//   "UNAVAILABLE" - Indicates that the Autonomous Database is in unavailable
	// state.
	//   "RESTORE_IN_PROGRESS" - Indicates that the Autonomous Database restore is
	// in progress.
	//   "RESTORE_FAILED" - Indicates that the Autonomous Database failed to
	// restore.
	//   "BACKUP_IN_PROGRESS" - Indicates that the Autonomous Database backup is in
	// progress.
	//   "SCALE_IN_PROGRESS" - Indicates that the Autonomous Database scale is in
	// progress.
	//   "AVAILABLE_NEEDS_ATTENTION" - Indicates that the Autonomous Database is
	// available but needs attention state.
	//   "UPDATING" - Indicates that the Autonomous Database is in updating state.
	//   "MAINTENANCE_IN_PROGRESS" - Indicates that the Autonomous Database's
	// maintenance is in progress state.
	//   "RESTARTING" - Indicates that the Autonomous Database is in restarting
	// state.
	//   "RECREATING" - Indicates that the Autonomous Database is in recreating
	// state.
	//   "ROLE_CHANGE_IN_PROGRESS" - Indicates that the Autonomous Database's role
	// change is in progress state.
	//   "UPGRADING" - Indicates that the Autonomous Database is in upgrading
	// state.
	//   "INACCESSIBLE" - Indicates that the Autonomous Database is in inaccessible
	// state.
	//   "STANDBY" - Indicates that the Autonomous Database is in standby state.
	State string `json:"state,omitempty"`
	// SupportedCloneRegions: Output only. The list of available regions that can
	// be used to create a clone for the Autonomous Database.
	SupportedCloneRegions []string `json:"supportedCloneRegions,omitempty"`
	// TotalAutoBackupStorageSizeGbs: Output only. The storage space used by
	// automatic backups of Autonomous Database, in gigabytes.
	TotalAutoBackupStorageSizeGbs float64 `json:"totalAutoBackupStorageSizeGbs,omitempty"`
	// UsedDataStorageSizeTbs: Output only. The storage space used by Autonomous
	// Database, in gigabytes.
	UsedDataStorageSizeTbs int64 `json:"usedDataStorageSizeTbs,omitempty"`
	// VaultId: Optional. The ID of the Oracle Cloud Infrastructure vault.
	VaultId string `json:"vaultId,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ActualUsedDataStorageSizeTb") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActualUsedDataStorageSizeTb") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *AutonomousDatabaseProperties) UnmarshalJSON(data []byte) error {
	type NoMethod AutonomousDatabaseProperties
	var s1 struct {
		ActualUsedDataStorageSizeTb   gensupport.JSONFloat64 `json:"actualUsedDataStorageSizeTb"`
		AllocatedStorageSizeTb        gensupport.JSONFloat64 `json:"allocatedStorageSizeTb"`
		ComputeCount                  gensupport.JSONFloat64 `json:"computeCount"`
		TotalAutoBackupStorageSizeGbs gensupport.JSONFloat64 `json:"totalAutoBackupStorageSizeGbs"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ActualUsedDataStorageSizeTb = float64(s1.ActualUsedDataStorageSizeTb)
	s.AllocatedStorageSizeTb = float64(s1.AllocatedStorageSizeTb)
	s.ComputeCount = float64(s1.ComputeCount)
	s.TotalAutoBackupStorageSizeGbs = float64(s1.TotalAutoBackupStorageSizeGbs)
	return nil
}

// AutonomousDatabaseStandbySummary: Autonomous Data Guard standby database
// details.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseStandbySummary
type AutonomousDatabaseStandbySummary struct {
	// DataGuardRoleChangedTime: Output only. The date and time the Autonomous Data
	// Guard role was switched for the standby Autonomous Database.
	DataGuardRoleChangedTime string `json:"dataGuardRoleChangedTime,omitempty"`
	// DisasterRecoveryRoleChangedTime: Output only. The date and time the Disaster
	// Recovery role was switched for the standby Autonomous Database.
	DisasterRecoveryRoleChangedTime string `json:"disasterRecoveryRoleChangedTime,omitempty"`
	// LagTimeDuration: Output only. The amount of time, in seconds, that the data
	// of the standby database lags in comparison to the data of the primary
	// database.
	LagTimeDuration string `json:"lagTimeDuration,omitempty"`
	// LifecycleDetails: Output only. The additional details about the current
	// lifecycle state of the Autonomous Database.
	LifecycleDetails string `json:"lifecycleDetails,omitempty"`
	// State: Output only. The current lifecycle state of the Autonomous Database.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "PROVISIONING" - Indicates that the Autonomous Database is in provisioning
	// state.
	//   "AVAILABLE" - Indicates that the Autonomous Database is in available
	// state.
	//   "STOPPING" - Indicates that the Autonomous Database is in stopping state.
	//   "STOPPED" - Indicates that the Autonomous Database is in stopped state.
	//   "STARTING" - Indicates that the Autonomous Database is in starting state.
	//   "TERMINATING" - Indicates that the Autonomous Database is in terminating
	// state.
	//   "TERMINATED" - Indicates that the Autonomous Database is in terminated
	// state.
	//   "UNAVAILABLE" - Indicates that the Autonomous Database is in unavailable
	// state.
	//   "RESTORE_IN_PROGRESS" - Indicates that the Autonomous Database restore is
	// in progress.
	//   "RESTORE_FAILED" - Indicates that the Autonomous Database failed to
	// restore.
	//   "BACKUP_IN_PROGRESS" - Indicates that the Autonomous Database backup is in
	// progress.
	//   "SCALE_IN_PROGRESS" - Indicates that the Autonomous Database scale is in
	// progress.
	//   "AVAILABLE_NEEDS_ATTENTION" - Indicates that the Autonomous Database is
	// available but needs attention state.
	//   "UPDATING" - Indicates that the Autonomous Database is in updating state.
	//   "MAINTENANCE_IN_PROGRESS" - Indicates that the Autonomous Database's
	// maintenance is in progress state.
	//   "RESTARTING" - Indicates that the Autonomous Database is in restarting
	// state.
	//   "RECREATING" - Indicates that the Autonomous Database is in recreating
	// state.
	//   "ROLE_CHANGE_IN_PROGRESS" - Indicates that the Autonomous Database's role
	// change is in progress state.
	//   "UPGRADING" - Indicates that the Autonomous Database is in upgrading
	// state.
	//   "INACCESSIBLE" - Indicates that the Autonomous Database is in inaccessible
	// state.
	//   "STANDBY" - Indicates that the Autonomous Database is in standby state.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataGuardRoleChangedTime")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataGuardRoleChangedTime") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AutonomousDbVersion: Details of the Autonomous Database version.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDbVersionSummary/
type AutonomousDbVersion struct {
	// DbWorkload: Output only. The Autonomous Database workload type.
	//
	// Possible values:
	//   "DB_WORKLOAD_UNSPECIFIED" - Default unspecified value.
	//   "OLTP" - Autonomous Transaction Processing database.
	//   "DW" - Autonomous Data Warehouse database.
	//   "AJD" - Autonomous JSON Database.
	//   "APEX" - Autonomous Database with the Oracle APEX Application Development
	// workload type.
	DbWorkload string `json:"dbWorkload,omitempty"`
	// Name: Identifier. The name of the Autonomous Database Version resource with
	// the format:
	// projects/{project}/locations/{region}/autonomousDbVersions/{autonomous_db_ver
	// sion}
	Name string `json:"name,omitempty"`
	// Version: Output only. An Oracle Database version for Autonomous Database.
	Version string `json:"version,omitempty"`
	// WorkloadUri: Output only. A URL that points to a detailed description of the
	// Autonomous Database version.
	WorkloadUri string `json:"workloadUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DbWorkload") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DbWorkload") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// CloudAccountDetails: Details of the OCI Cloud Account.
type CloudAccountDetails struct {
	// AccountCreationUri: Output only. URL to create a new account and link.
	AccountCreationUri string `json:"accountCreationUri,omitempty"`
	// CloudAccount: Output only. OCI account name.
	CloudAccount string `json:"cloudAccount,omitempty"`
	// CloudAccountHomeRegion: Output only. OCI account home region.
	CloudAccountHomeRegion string `json:"cloudAccountHomeRegion,omitempty"`
	// LinkExistingAccountUri: Output only. URL to link an existing account.
	LinkExistingAccountUri string `json:"linkExistingAccountUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountCreationUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountCreationUri") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CloudExadataInfrastructure: Represents CloudExadataInfrastructure resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/CloudExadataInfrastructure/
type CloudExadataInfrastructure struct {
	// CreateTime: Output only. The date and time that the Exadata Infrastructure
	// was created.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Optional. User friendly name for this resource.
	DisplayName string `json:"displayName,omitempty"`
	// EntitlementId: Output only. Entitlement ID of the private offer against
	// which this infrastructure resource is provisioned.
	EntitlementId string `json:"entitlementId,omitempty"`
	// GcpOracleZone: Optional. Google Cloud Platform location where Oracle Exadata
	// is hosted.
	GcpOracleZone string `json:"gcpOracleZone,omitempty"`
	// Labels: Optional. Labels or tags associated with the resource.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Identifier. The name of the Exadata Infrastructure resource with the
	// format:
	// projects/{project}/locations/{region}/cloudExadataInfrastructures/{cloud_exad
	// ata_infrastructure}
	Name string `json:"name,omitempty"`
	// Properties: Optional. Various properties of the infra.
	Properties *CloudExadataInfrastructureProperties `json:"properties,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 CloudExadataInfrastructure) MarshalJSON() ([]byte, error) {
	type NoMethod CloudExadataInfrastructure
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CloudExadataInfrastructureProperties: Various properties of Exadata
// Infrastructure.
type CloudExadataInfrastructureProperties struct {
	// ActivatedStorageCount: Output only. The requested number of additional
	// storage servers activated for the Exadata Infrastructure.
	ActivatedStorageCount int64 `json:"activatedStorageCount,omitempty"`
	// AdditionalStorageCount: Output only. The requested number of additional
	// storage servers for the Exadata Infrastructure.
	AdditionalStorageCount int64 `json:"additionalStorageCount,omitempty"`
	// AvailableStorageSizeGb: Output only. The available storage can be allocated
	// to the Exadata Infrastructure resource, in gigabytes (GB).
	AvailableStorageSizeGb int64 `json:"availableStorageSizeGb,omitempty"`
	// ComputeCount: Optional. The number of compute servers for the Exadata
	// Infrastructure.
	ComputeCount int64 `json:"computeCount,omitempty"`
	// ComputeModel: Output only. The compute model of the Exadata Infrastructure.
	//
	// Possible values:
	//   "COMPUTE_MODEL_UNSPECIFIED" - Unspecified compute model.
	//   "COMPUTE_MODEL_ECPU" - Abstract measure of compute resources. ECPUs are
	// based on the number of cores elastically allocated from a pool of compute
	// and storage servers.
	//   "COMPUTE_MODEL_OCPU" - Physical measure of compute resources. OCPUs are
	// based on the physical core of a processor.
	ComputeModel string `json:"computeModel,omitempty"`
	// CpuCount: Output only. The number of enabled CPU cores.
	CpuCount int64 `json:"cpuCount,omitempty"`
	// CustomerContacts: Optional. The list of customer contacts.
	CustomerContacts []*CustomerContact `json:"customerContacts,omitempty"`
	// DataStorageSizeTb: Output only. Size, in terabytes, of the DATA disk group.
	DataStorageSizeTb float64 `json:"dataStorageSizeTb,omitempty"`
	// DatabaseServerType: Output only. The database server type of the Exadata
	// Infrastructure.
	DatabaseServerType string `json:"databaseServerType,omitempty"`
	// DbNodeStorageSizeGb: Output only. The local node storage allocated in GBs.
	DbNodeStorageSizeGb int64 `json:"dbNodeStorageSizeGb,omitempty"`
	// DbServerVersion: Output only. The software version of the database servers
	// (dom0) in the Exadata Infrastructure.
	DbServerVersion string `json:"dbServerVersion,omitempty"`
	// MaintenanceWindow: Optional. Maintenance window for repair.
	MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"`
	// MaxCpuCount: Output only. The total number of CPU cores available.
	MaxCpuCount int64 `json:"maxCpuCount,omitempty"`
	// MaxDataStorageTb: Output only. The total available DATA disk group size.
	MaxDataStorageTb float64 `json:"maxDataStorageTb,omitempty"`
	// MaxDbNodeStorageSizeGb: Output only. The total local node storage available
	// in GBs.
	MaxDbNodeStorageSizeGb int64 `json:"maxDbNodeStorageSizeGb,omitempty"`
	// MaxMemoryGb: Output only. The total memory available in GBs.
	MaxMemoryGb int64 `json:"maxMemoryGb,omitempty"`
	// MemorySizeGb: Output only. The memory allocated in GBs.
	MemorySizeGb int64 `json:"memorySizeGb,omitempty"`
	// MonthlyDbServerVersion: Output only. The monthly software version of the
	// database servers (dom0) in the Exadata Infrastructure. Example: 20.1.15
	MonthlyDbServerVersion string `json:"monthlyDbServerVersion,omitempty"`
	// MonthlyStorageServerVersion: Output only. The monthly software version of
	// the storage servers (cells) in the Exadata Infrastructure. Example: 20.1.15
	MonthlyStorageServerVersion string `json:"monthlyStorageServerVersion,omitempty"`
	// NextMaintenanceRunId: Output only. The OCID of the next maintenance run.
	NextMaintenanceRunId string `json:"nextMaintenanceRunId,omitempty"`
	// NextMaintenanceRunTime: Output only. The time when the next maintenance run
	// will occur.
	NextMaintenanceRunTime string `json:"nextMaintenanceRunTime,omitempty"`
	// NextSecurityMaintenanceRunTime: Output only. The time when the next security
	// maintenance run will occur.
	NextSecurityMaintenanceRunTime string `json:"nextSecurityMaintenanceRunTime,omitempty"`
	// OciUrl: Output only. Deep link to the OCI console to view this resource.
	OciUrl string `json:"ociUrl,omitempty"`
	// Ocid: Output only. OCID of created infra.
	// https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle
	Ocid string `json:"ocid,omitempty"`
	// Shape: Required. The shape of the Exadata Infrastructure. The shape
	// determines the amount of CPU, storage, and memory resources allocated to the
	// instance.
	Shape string `json:"shape,omitempty"`
	// State: Output only. The current lifecycle state of the Exadata
	// Infrastructure.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "PROVISIONING" - The Exadata Infrastructure is being provisioned.
	//   "AVAILABLE" - The Exadata Infrastructure is available for use.
	//   "UPDATING" - The Exadata Infrastructure is being updated.
	//   "TERMINATING" - The Exadata Infrastructure is being terminated.
	//   "TERMINATED" - The Exadata Infrastructure is terminated.
	//   "FAILED" - The Exadata Infrastructure is in failed state.
	//   "MAINTENANCE_IN_PROGRESS" - The Exadata Infrastructure is in maintenance.
	State string `json:"state,omitempty"`
	// StorageCount: Optional. The number of Cloud Exadata storage servers for the
	// Exadata Infrastructure.
	StorageCount int64 `json:"storageCount,omitempty"`
	// StorageServerType: Output only. The storage server type of the Exadata
	// Infrastructure.
	StorageServerType string `json:"storageServerType,omitempty"`
	// StorageServerVersion: Output only. The software version of the storage
	// servers (cells) in the Exadata Infrastructure.
	StorageServerVersion string `json:"storageServerVersion,omitempty"`
	// TotalStorageSizeGb: Optional. The total storage allocated to the Exadata
	// Infrastructure resource, in gigabytes (GB).
	TotalStorageSizeGb int64 `json:"totalStorageSizeGb,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActivatedStorageCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActivatedStorageCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// CloudVmCluster: Details of the Cloud VM Cluster resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/CloudVmCluster/
type CloudVmCluster struct {
	// BackupSubnetCidr: Optional. CIDR range of the backup subnet.
	BackupSubnetCidr string `json:"backupSubnetCidr,omitempty"`
	// Cidr: Optional. Network settings. CIDR to use for cluster IP allocation.
	Cidr string `json:"cidr,omitempty"`
	// CreateTime: Output only. The date and time that the VM cluster was created.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Optional. User friendly name for this resource.
	DisplayName string `json:"displayName,omitempty"`
	// ExadataInfrastructure: Required. The name of the Exadata Infrastructure
	// resource on which VM cluster resource is created, in the following format:
	// projects/{project}/locations/{region}/cloudExadataInfrastuctures/{cloud_extra
	// data_infrastructure}
	ExadataInfrastructure string `json:"exadataInfrastructure,omitempty"`
	// GcpOracleZone: Output only. Google Cloud Platform location where Oracle
	// Exadata is hosted. It is same as Google Cloud Platform Oracle zone of
	// Exadata infrastructure.
	GcpOracleZone string `json:"gcpOracleZone,omitempty"`
	// Labels: Optional. Labels or tags associated with the VM Cluster.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Identifier. The name of the VM Cluster resource with the format:
	// projects/{project}/locations/{region}/cloudVmClusters/{cloud_vm_cluster}
	Name string `json:"name,omitempty"`
	// Network: Optional. The name of the VPC network. Format:
	// projects/{project}/global/networks/{network}
	Network string `json:"network,omitempty"`
	// Properties: Optional. Various properties of the VM Cluster.
	Properties *CloudVmClusterProperties `json:"properties,omitempty"`

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

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

// CloudVmClusterProperties: Various properties and settings associated with
// Exadata VM cluster.
type CloudVmClusterProperties struct {
	// ClusterName: Optional. OCI Cluster name.
	ClusterName string `json:"clusterName,omitempty"`
	// CompartmentId: Output only. Compartment ID of cluster.
	CompartmentId string `json:"compartmentId,omitempty"`
	// ComputeModel: Output only. The compute model of the VM Cluster.
	//
	// Possible values:
	//   "COMPUTE_MODEL_UNSPECIFIED" - Unspecified compute model.
	//   "COMPUTE_MODEL_ECPU" - Abstract measure of compute resources. ECPUs are
	// based on the number of cores elastically allocated from a pool of compute
	// and storage servers.
	//   "COMPUTE_MODEL_OCPU" - Physical measure of compute resources. OCPUs are
	// based on the physical core of a processor.
	ComputeModel string `json:"computeModel,omitempty"`
	// CpuCoreCount: Required. Number of enabled CPU cores.
	CpuCoreCount int64 `json:"cpuCoreCount,omitempty"`
	// DataStorageSizeTb: Optional. The data disk group size to be allocated in
	// TBs.
	DataStorageSizeTb float64 `json:"dataStorageSizeTb,omitempty"`
	// DbNodeStorageSizeGb: Optional. Local storage per VM.
	DbNodeStorageSizeGb int64 `json:"dbNodeStorageSizeGb,omitempty"`
	// DbServerOcids: Optional. OCID of database servers.
	DbServerOcids []string `json:"dbServerOcids,omitempty"`
	// DiagnosticsDataCollectionOptions: Optional. Data collection options for
	// diagnostics.
	DiagnosticsDataCollectionOptions *DataCollectionOptions `json:"diagnosticsDataCollectionOptions,omitempty"`
	// DiskRedundancy: Optional. The type of redundancy.
	//
	// Possible values:
	//   "DISK_REDUNDANCY_UNSPECIFIED" - Unspecified.
	//   "HIGH" - High - 3 way mirror.
	//   "NORMAL" - Normal - 2 way mirror.
	DiskRedundancy string `json:"diskRedundancy,omitempty"`
	// DnsListenerIp: Output only. DNS listener IP.
	DnsListenerIp string `json:"dnsListenerIp,omitempty"`
	// Domain: Output only. Parent DNS domain where SCAN DNS and hosts names are
	// qualified. ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
	Domain string `json:"domain,omitempty"`
	// GiVersion: Optional. Grid Infrastructure Version.
	GiVersion string `json:"giVersion,omitempty"`
	// Hostname: Output only. host name without domain. format: "-" with some
	// suffix. ex: sp2-yi0xq where "sp2" is the hostname_prefix.
	Hostname string `json:"hostname,omitempty"`
	// HostnamePrefix: Optional. Prefix for VM cluster host names.
	HostnamePrefix string `json:"hostnamePrefix,omitempty"`
	// LicenseType: Required. License type of VM Cluster.
	//
	// Possible values:
	//   "LICENSE_TYPE_UNSPECIFIED" - Unspecified
	//   "LICENSE_INCLUDED" - License included part of offer
	//   "BRING_YOUR_OWN_LICENSE" - Bring your own license
	LicenseType string `json:"licenseType,omitempty"`
	// LocalBackupEnabled: Optional. Use local backup.
	LocalBackupEnabled bool `json:"localBackupEnabled,omitempty"`
	// MemorySizeGb: Optional. Memory allocated in GBs.
	MemorySizeGb int64 `json:"memorySizeGb,omitempty"`
	// NodeCount: Optional. Number of database servers.
	NodeCount int64 `json:"nodeCount,omitempty"`
	// OciUrl: Output only. Deep link to the OCI console to view this resource.
	OciUrl string `json:"ociUrl,omitempty"`
	// Ocid: Output only. Oracle Cloud Infrastructure ID of VM Cluster.
	Ocid string `json:"ocid,omitempty"`
	// OcpuCount: Optional. OCPU count per VM. Minimum is 0.1.
	OcpuCount float64 `json:"ocpuCount,omitempty"`
	// ScanDns: Output only. SCAN DNS name. ex:
	// sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
	ScanDns string `json:"scanDns,omitempty"`
	// ScanDnsRecordId: Output only. OCID of scan DNS record.
	ScanDnsRecordId string `json:"scanDnsRecordId,omitempty"`
	// ScanIpIds: Output only. OCIDs of scan IPs.
	ScanIpIds []string `json:"scanIpIds,omitempty"`
	// ScanListenerPortTcp: Output only. SCAN listener port - TCP
	ScanListenerPortTcp int64 `json:"scanListenerPortTcp,omitempty"`
	// ScanListenerPortTcpSsl: Output only. SCAN listener port - TLS
	ScanListenerPortTcpSsl int64 `json:"scanListenerPortTcpSsl,omitempty"`
	// Shape: Output only. Shape of VM Cluster.
	Shape string `json:"shape,omitempty"`
	// SparseDiskgroupEnabled: Optional. Use exadata sparse snapshots.
	SparseDiskgroupEnabled bool `json:"sparseDiskgroupEnabled,omitempty"`
	// SshPublicKeys: Optional. SSH public keys to be stored with cluster.
	SshPublicKeys []string `json:"sshPublicKeys,omitempty"`
	// State: Output only. State of the cluster.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "PROVISIONING" - Indicates that the resource is in provisioning state.
	//   "AVAILABLE" - Indicates that the resource is in available state.
	//   "UPDATING" - Indicates that the resource is in updating state.
	//   "TERMINATING" - Indicates that the resource is in terminating state.
	//   "TERMINATED" - Indicates that the resource is in terminated state.
	//   "FAILED" - Indicates that the resource is in failed state.
	//   "MAINTENANCE_IN_PROGRESS" - Indicates that the resource is in maintenance
	// in progress state.
	State string `json:"state,omitempty"`
	// StorageSizeGb: Output only. The storage allocation for the disk group, in
	// gigabytes (GB).
	StorageSizeGb int64 `json:"storageSizeGb,omitempty"`
	// SystemVersion: Optional. Operating system version of the image.
	SystemVersion string `json:"systemVersion,omitempty"`
	// TimeZone: Optional. Time zone of VM Cluster to set. Defaults to UTC if not
	// specified.
	TimeZone *TimeZone `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClusterName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClusterName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// CustomerContact: The CustomerContact reference as defined by Oracle.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/CustomerContact
type CustomerContact struct {
	// Email: Required. The email address used by Oracle to send notifications
	// regarding databases and infrastructure.
	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 CustomerContact) MarshalJSON() ([]byte, error) {
	type NoMethod CustomerContact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DataCollectionOptions: Data collection options for diagnostics.
type DataCollectionOptions struct {
	// DiagnosticsEventsEnabled: Optional. Indicates whether diagnostic collection
	// is enabled for the VM cluster
	DiagnosticsEventsEnabled bool `json:"diagnosticsEventsEnabled,omitempty"`
	// HealthMonitoringEnabled: Optional. Indicates whether health monitoring is
	// enabled for the VM cluster
	HealthMonitoringEnabled bool `json:"healthMonitoringEnabled,omitempty"`
	// IncidentLogsEnabled: Optional. Indicates whether incident logs and trace
	// collection are enabled for the VM cluster
	IncidentLogsEnabled bool `json:"incidentLogsEnabled,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiagnosticsEventsEnabled")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiagnosticsEventsEnabled") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DatabaseConnectionStringProfile: The connection string profile to allow
// clients to group.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/DatabaseConnectionStringProfile
type DatabaseConnectionStringProfile struct {
	// ConsumerGroup: Output only. The current consumer group being used by the
	// connection.
	//
	// Possible values:
	//   "CONSUMER_GROUP_UNSPECIFIED" - Default unspecified value.
	//   "HIGH" - High consumer group.
	//   "MEDIUM" - Medium consumer group.
	//   "LOW" - Low consumer group.
	//   "TP" - TP consumer group.
	//   "TPURGENT" - TPURGENT consumer group.
	ConsumerGroup string `json:"consumerGroup,omitempty"`
	// DisplayName: Output only. The display name for the database connection.
	DisplayName string `json:"displayName,omitempty"`
	// HostFormat: Output only. The host name format being currently used in
	// connection string.
	//
	// Possible values:
	//   "HOST_FORMAT_UNSPECIFIED" - Default unspecified value.
	//   "FQDN" - FQDN
	//   "IP" - IP
	HostFormat string `json:"hostFormat,omitempty"`
	// IsRegional: Output only. This field indicates if the connection string is
	// regional and is only applicable for cross-region Data Guard.
	IsRegional bool `json:"isRegional,omitempty"`
	// Protocol: Output only. The protocol being used by the connection.
	//
	// Possible values:
	//   "PROTOCOL_UNSPECIFIED" - Default unspecified value.
	//   "TCP" - Tcp
	//   "TCPS" - Tcps
	Protocol string `json:"protocol,omitempty"`
	// SessionMode: Output only. The current session mode of the connection.
	//
	// Possible values:
	//   "SESSION_MODE_UNSPECIFIED" - Default unspecified value.
	//   "DIRECT" - Direct
	//   "INDIRECT" - Indirect
	SessionMode string `json:"sessionMode,omitempty"`
	// SyntaxFormat: Output only. The syntax of the connection string.
	//
	// Possible values:
	//   "SYNTAX_FORMAT_UNSPECIFIED" - Default unspecified value.
	//   "LONG" - Long
	//   "EZCONNECT" - Ezconnect
	//   "EZCONNECTPLUS" - Ezconnectplus
	SyntaxFormat string `json:"syntaxFormat,omitempty"`
	// TlsAuthentication: Output only. This field indicates the TLS authentication
	// type of the connection.
	//
	// Possible values:
	//   "TLS_AUTHENTICATION_UNSPECIFIED" - Default unspecified value.
	//   "SERVER" - Server
	//   "MUTUAL" - Mutual
	TlsAuthentication string `json:"tlsAuthentication,omitempty"`
	// Value: Output only. The value of the connection string.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsumerGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsumerGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DbNode: Details of the database node resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbNode/
type DbNode struct {
	// Name: Identifier. The name of the database node resource in the following
	// format:
	// projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}/db
	// Nodes/{db_node}
	Name string `json:"name,omitempty"`
	// Properties: Optional. Various properties of the database node.
	Properties *DbNodeProperties `json:"properties,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 DbNode) MarshalJSON() ([]byte, error) {
	type NoMethod DbNode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DbNodeProperties: Various properties and settings associated with Db node.
type DbNodeProperties struct {
	// DbNodeStorageSizeGb: Optional. Local storage per database node.
	DbNodeStorageSizeGb int64 `json:"dbNodeStorageSizeGb,omitempty"`
	// DbServerOcid: Optional. Database server OCID.
	DbServerOcid string `json:"dbServerOcid,omitempty"`
	// Hostname: Optional. DNS
	Hostname string `json:"hostname,omitempty"`
	// MemorySizeGb: Memory allocated in GBs.
	MemorySizeGb int64 `json:"memorySizeGb,omitempty"`
	// Ocid: Output only. OCID of database node.
	Ocid string `json:"ocid,omitempty"`
	// OcpuCount: Optional. OCPU count per database node.
	OcpuCount int64 `json:"ocpuCount,omitempty"`
	// State: Output only. State of the database node.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "PROVISIONING" - Indicates that the resource is in provisioning state.
	//   "AVAILABLE" - Indicates that the resource is in available state.
	//   "UPDATING" - Indicates that the resource is in updating state.
	//   "STOPPING" - Indicates that the resource is in stopping state.
	//   "STOPPED" - Indicates that the resource is in stopped state.
	//   "STARTING" - Indicates that the resource is in starting state.
	//   "TERMINATING" - Indicates that the resource is in terminating state.
	//   "TERMINATED" - Indicates that the resource is in terminated state.
	//   "FAILED" - Indicates that the resource is in failed state.
	State string `json:"state,omitempty"`
	// TotalCpuCoreCount: Total CPU core count of the database node.
	TotalCpuCoreCount int64 `json:"totalCpuCoreCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DbNodeStorageSizeGb") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DbNodeStorageSizeGb") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DbServer: Details of the database server resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbServer/
type DbServer struct {
	// DisplayName: Optional. User friendly name for this resource.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Identifier. The name of the database server resource with the format:
	// projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_ex
	// adata_infrastructure}/dbServers/{db_server}
	Name string `json:"name,omitempty"`
	// Properties: Optional. Various properties of the database server.
	Properties *DbServerProperties `json:"properties,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 DbServer) MarshalJSON() ([]byte, error) {
	type NoMethod DbServer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DbServerProperties: Various properties and settings associated with Exadata
// database server.
type DbServerProperties struct {
	// DbNodeIds: Output only. OCID of database nodes associated with the database
	// server.
	DbNodeIds []string `json:"dbNodeIds,omitempty"`
	// DbNodeStorageSizeGb: Optional. Local storage per VM.
	DbNodeStorageSizeGb int64 `json:"dbNodeStorageSizeGb,omitempty"`
	// MaxDbNodeStorageSizeGb: Optional. Maximum local storage per VM.
	MaxDbNodeStorageSizeGb int64 `json:"maxDbNodeStorageSizeGb,omitempty"`
	// MaxMemorySizeGb: Optional. Maximum memory allocated in GBs.
	MaxMemorySizeGb int64 `json:"maxMemorySizeGb,omitempty"`
	// MaxOcpuCount: Optional. Maximum OCPU count per database.
	MaxOcpuCount int64 `json:"maxOcpuCount,omitempty"`
	// MemorySizeGb: Optional. Memory allocated in GBs.
	MemorySizeGb int64 `json:"memorySizeGb,omitempty"`
	// Ocid: Output only. OCID of database server.
	Ocid string `json:"ocid,omitempty"`
	// OcpuCount: Optional. OCPU count per database.
	OcpuCount int64 `json:"ocpuCount,omitempty"`
	// State: Output only. State of the database server.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "CREATING" - Indicates that the resource is in creating state.
	//   "AVAILABLE" - Indicates that the resource is in available state.
	//   "UNAVAILABLE" - Indicates that the resource is in unavailable state.
	//   "DELETING" - Indicates that the resource is in deleting state.
	//   "DELETED" - Indicates that the resource is in deleted state.
	State string `json:"state,omitempty"`
	// VmCount: Optional. Vm count per database.
	VmCount int64 `json:"vmCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DbNodeIds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DbNodeIds") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DbSystemShape: Details of the Database System Shapes resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbSystemShapeSummary/
type DbSystemShape struct {
	// AvailableCoreCountPerNode: Optional. Number of cores per node.
	AvailableCoreCountPerNode int64 `json:"availableCoreCountPerNode,omitempty"`
	// AvailableDataStorageTb: Optional. Storage per storage server in terabytes.
	AvailableDataStorageTb int64 `json:"availableDataStorageTb,omitempty"`
	// AvailableMemoryPerNodeGb: Optional. Memory per database server node in
	// gigabytes.
	AvailableMemoryPerNodeGb int64 `json:"availableMemoryPerNodeGb,omitempty"`
	// MaxNodeCount: Optional. Maximum number of database servers.
	MaxNodeCount int64 `json:"maxNodeCount,omitempty"`
	// MaxStorageCount: Optional. Maximum number of storage servers.
	MaxStorageCount int64 `json:"maxStorageCount,omitempty"`
	// MinCoreCountPerNode: Optional. Minimum core count per node.
	MinCoreCountPerNode int64 `json:"minCoreCountPerNode,omitempty"`
	// MinDbNodeStoragePerNodeGb: Optional. Minimum node storage per database
	// server in gigabytes.
	MinDbNodeStoragePerNodeGb int64 `json:"minDbNodeStoragePerNodeGb,omitempty"`
	// MinMemoryPerNodeGb: Optional. Minimum memory per node in gigabytes.
	MinMemoryPerNodeGb int64 `json:"minMemoryPerNodeGb,omitempty"`
	// MinNodeCount: Optional. Minimum number of database servers.
	MinNodeCount int64 `json:"minNodeCount,omitempty"`
	// MinStorageCount: Optional. Minimum number of storage servers.
	MinStorageCount int64 `json:"minStorageCount,omitempty"`
	// Name: Identifier. The name of the Database System Shape resource with the
	// format:
	// projects/{project}/locations/{region}/dbSystemShapes/{db_system_shape}
	Name string `json:"name,omitempty"`
	// Shape: Optional. shape
	Shape string `json:"shape,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailableCoreCountPerNode")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailableCoreCountPerNode") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Entitlement: Details of the Entitlement resource.
type Entitlement struct {
	// CloudAccountDetails: Details of the OCI Cloud Account.
	CloudAccountDetails *CloudAccountDetails `json:"cloudAccountDetails,omitempty"`
	// EntitlementId: Output only. Google Cloud Marketplace order ID (aka
	// entitlement ID)
	EntitlementId string `json:"entitlementId,omitempty"`
	// Name: Identifier. The name of the Entitlement resource with the format:
	// projects/{project}/locations/{region}/entitlements/{entitlement}
	Name string `json:"name,omitempty"`
	// State: Output only. Entitlement State.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default unspecified value.
	//   "ACCOUNT_NOT_LINKED" - Account not linked.
	//   "ACCOUNT_NOT_ACTIVE" - Account is linked but not active.
	//   "ACTIVE" - Entitlement and Account are active.
	//   "ACCOUNT_SUSPENDED" - Account is suspended.
	//   "NOT_APPROVED_IN_PRIVATE_MARKETPLACE" - Entitlement is not approved in
	// private marketplace.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudAccountDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudAccountDetails") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAutonomousDatabaseWalletRequest: The request for
// `AutonomousDatabase.GenerateWallet`.
type GenerateAutonomousDatabaseWalletRequest struct {
	// IsRegional: Optional. True when requesting regional connection strings in
	// PDB connect info, applicable to cross-region Data Guard only.
	IsRegional bool `json:"isRegional,omitempty"`
	// Password: Required. The password used to encrypt the keys inside the wallet.
	// The password must be a minimum of 8 characters.
	Password string `json:"password,omitempty"`
	// Type: Optional. The type of wallet generation for the Autonomous Database.
	// The default value is SINGLE.
	//
	// Possible values:
	//   "GENERATE_TYPE_UNSPECIFIED" - Default unspecified value.
	//   "ALL" - Used to generate wallet for all databases in the region.
	//   "SINGLE" - Used to generate wallet for a single database.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IsRegional") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IsRegional") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAutonomousDatabaseWalletResponse: The response for
// `AutonomousDatabase.GenerateWallet`.
type GenerateAutonomousDatabaseWalletResponse struct {
	// ArchiveContent: Output only. The base64 encoded wallet files.
	ArchiveContent string `json:"archiveContent,omitempty"`

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

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

// GiVersion: Details of the Oracle Grid Infrastructure (GI) version resource.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/GiVersionSummary/
type GiVersion struct {
	// Name: Identifier. The name of the Oracle Grid Infrastructure (GI) version
	// resource with the format:
	// projects/{project}/locations/{region}/giVersions/{gi_versions}
	Name string `json:"name,omitempty"`
	// Version: Optional. version
	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 GiVersion) MarshalJSON() ([]byte, error) {
	type NoMethod GiVersion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

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

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

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

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

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

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

// ListCloudExadataInfrastructuresResponse: The response for
// `CloudExadataInfrastructures.list`.
type ListCloudExadataInfrastructuresResponse struct {
	// CloudExadataInfrastructures: The list of Exadata Infrastructures.
	CloudExadataInfrastructures []*CloudExadataInfrastructure `json:"cloudExadataInfrastructures,omitempty"`
	// NextPageToken: A token for fetching next page of response.
	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.
	// "CloudExadataInfrastructures") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudExadataInfrastructures") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListCloudVmClustersResponse: The response for `CloudVmCluster.List`.
type ListCloudVmClustersResponse struct {
	// CloudVmClusters: The list of VM Clusters.
	CloudVmClusters []*CloudVmCluster `json:"cloudVmClusters,omitempty"`
	// NextPageToken: A token to fetch the next page of results.
	NextPageToken string `json:"nextPageToken,omitempty"`

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

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

// ListDbNodesResponse: The response for `DbNode.List`.
type ListDbNodesResponse struct {
	// DbNodes: The list of DB Nodes
	DbNodes []*DbNode `json:"dbNodes,omitempty"`
	// NextPageToken: A token identifying a page of results the node should return.
	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. "DbNodes") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DbNodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

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

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

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

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

// ListGiVersionsResponse: The response for `GiVersion.List`.
type ListGiVersionsResponse struct {
	// GiVersions: The list of Oracle Grid Infrastructure (GI) versions.
	GiVersions []*GiVersion `json:"giVersions,omitempty"`
	// NextPageToken: A token identifying a page of results the server should
	// return.
	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. "GiVersions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GiVersions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListLocationsResponse: The response message for Locations.ListLocations.
type ListLocationsResponse struct {
	// Locations: A list of locations that matches the specified filter in the
	// request.
	Locations []*Location `json:"locations,omitempty"`
	// NextPageToken: The standard List next-page token.
	NextPageToken string `json:"nextPageToken,omitempty"`

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

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

// ListOperationsResponse: The response message for Operations.ListOperations.
type ListOperationsResponse struct {
	// NextPageToken: The standard List next-page token.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Operations: A list of operations that matches the specified filter in the
	// request.
	Operations []*Operation `json:"operations,omitempty"`

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

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

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

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

// LocationMetadata: Metadata for a given Location.
type LocationMetadata struct {
	// GcpOracleZones: Output only. Google Cloud Platform Oracle zones in a
	// location.
	GcpOracleZones []string `json:"gcpOracleZones,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcpOracleZones") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcpOracleZones") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// MaintenanceWindow: Maintenance window as defined by Oracle.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/MaintenanceWindow
type MaintenanceWindow struct {
	// CustomActionTimeoutMins: Optional. Determines the amount of time the system
	// will wait before the start of each database server patching operation.
	// Custom action timeout is in minutes and valid value is between 15 to 120
	// (inclusive).
	CustomActionTimeoutMins int64 `json:"customActionTimeoutMins,omitempty"`
	// DaysOfWeek: Optional. Days during the week when maintenance should be
	// performed.
	//
	// Possible values:
	//   "DAY_OF_WEEK_UNSPECIFIED" - The day of the week is unspecified.
	//   "MONDAY" - Monday
	//   "TUESDAY" - Tuesday
	//   "WEDNESDAY" - Wednesday
	//   "THURSDAY" - Thursday
	//   "FRIDAY" - Friday
	//   "SATURDAY" - Saturday
	//   "SUNDAY" - Sunday
	DaysOfWeek []string `json:"daysOfWeek,omitempty"`
	// HoursOfDay: Optional. The window of hours during the day when maintenance
	// should be performed. The window is a 4 hour slot. Valid values are: 0 -
	// represents time slot 0:00 - 3:59 UTC 4 - represents time slot 4:00 - 7:59
	// UTC 8 - represents time slot 8:00 - 11:59 UTC 12 - represents time slot
	// 12:00 - 15:59 UTC 16 - represents time slot 16:00 - 19:59 UTC 20 -
	// represents time slot 20:00 - 23:59 UTC
	HoursOfDay []int64 `json:"hoursOfDay,omitempty"`
	// IsCustomActionTimeoutEnabled: Optional. If true, enables the configuration
	// of a custom action timeout (waiting period) between database server patching
	// operations.
	IsCustomActionTimeoutEnabled bool `json:"isCustomActionTimeoutEnabled,omitempty"`
	// LeadTimeWeek: Optional. Lead time window allows user to set a lead time to
	// prepare for a down time. The lead time is in weeks and valid value is
	// between 1 to 4.
	LeadTimeWeek int64 `json:"leadTimeWeek,omitempty"`
	// Months: Optional. Months during the year when maintenance should be
	// performed.
	//
	// Possible values:
	//   "MONTH_UNSPECIFIED" - The unspecified month.
	//   "JANUARY" - The month of January.
	//   "FEBRUARY" - The month of February.
	//   "MARCH" - The month of March.
	//   "APRIL" - The month of April.
	//   "MAY" - The month of May.
	//   "JUNE" - The month of June.
	//   "JULY" - The month of July.
	//   "AUGUST" - The month of August.
	//   "SEPTEMBER" - The month of September.
	//   "OCTOBER" - The month of October.
	//   "NOVEMBER" - The month of November.
	//   "DECEMBER" - The month of December.
	Months []string `json:"months,omitempty"`
	// PatchingMode: Optional. Cloud CloudExadataInfrastructure node patching
	// method, either "ROLLING" or "NONROLLING". Default value is ROLLING.
	//
	// Possible values:
	//   "PATCHING_MODE_UNSPECIFIED" - Default unspecified value.
	//   "ROLLING" - Updates the Cloud Exadata database server hosts in a rolling
	// fashion.
	//   "NON_ROLLING" - The non-rolling maintenance method first updates your
	// storage servers at the same time, then your database servers at the same
	// time.
	PatchingMode string `json:"patchingMode,omitempty"`
	// Preference: Optional. The maintenance window scheduling preference.
	//
	// Possible values:
	//   "MAINTENANCE_WINDOW_PREFERENCE_UNSPECIFIED" - Default unspecified value.
	//   "CUSTOM_PREFERENCE" - Custom preference.
	//   "NO_PREFERENCE" - No preference.
	Preference string `json:"preference,omitempty"`
	// WeeksOfMonth: Optional. Weeks during the month when maintenance should be
	// performed. Weeks start on the 1st, 8th, 15th, and 22nd days of the month,
	// and have a duration of 7 days. Weeks start and end based on calendar dates,
	// not days of the week.
	WeeksOfMonth []int64 `json:"weeksOfMonth,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomActionTimeoutMins") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomActionTimeoutMins") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

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

// OperationMetadata: Represents the metadata of the long-running operation.
type OperationMetadata struct {
	// ApiVersion: Output only. API version used to start the operation.
	ApiVersion string `json:"apiVersion,omitempty"`
	// CreateTime: Output only. The time the operation was created.
	CreateTime string `json:"createTime,omitempty"`
	// EndTime: Output only. The time the operation finished running.
	EndTime string `json:"endTime,omitempty"`
	// PercentComplete: Output only. An estimated percentage of the operation that
	// has been completed at a given moment of time, between 0 and 100.
	PercentComplete float64 `json:"percentComplete,omitempty"`
	// RequestedCancellation: Output only. Identifies whether the user has
	// requested cancellation of the operation. Operations that have been cancelled
	// successfully have Operation.error value with a google.rpc.Status.code of 1,
	// corresponding to `Code.CANCELLED`.
	RequestedCancellation bool `json:"requestedCancellation,omitempty"`
	// StatusMessage: Output only. The status of the operation.
	StatusMessage string `json:"statusMessage,omitempty"`
	// Target: Output only. Server-defined resource path for the target of the
	// operation.
	Target string `json:"target,omitempty"`
	// Verb: Output only. Name of the verb executed by the operation.
	Verb string `json:"verb,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// RestartAutonomousDatabaseRequest: The request for
// `AutonomousDatabase.Restart`.
type RestartAutonomousDatabaseRequest struct {
}

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

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

// ScheduledOperationDetails: Details of scheduled operation.
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/ScheduledOperationDetails
type ScheduledOperationDetails struct {
	// DayOfWeek: Output only. Day of week.
	//
	// Possible values:
	//   "DAY_OF_WEEK_UNSPECIFIED" - The day of the week is unspecified.
	//   "MONDAY" - Monday
	//   "TUESDAY" - Tuesday
	//   "WEDNESDAY" - Wednesday
	//   "THURSDAY" - Thursday
	//   "FRIDAY" - Friday
	//   "SATURDAY" - Saturday
	//   "SUNDAY" - Sunday
	DayOfWeek string `json:"dayOfWeek,omitempty"`
	// StartTime: Output only. Auto start time.
	StartTime *TimeOfDay `json:"startTime,omitempty"`
	// StopTime: Output only. Auto stop time.
	StopTime *TimeOfDay `json:"stopTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DayOfWeek") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DayOfWeek") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SourceConfig: The source configuration for the standby Autonomous Database.
type SourceConfig struct {
	// AutomaticBackupsReplicationEnabled: Optional. This field specifies if the
	// replication of automatic backups is enabled when creating a Data Guard.
	AutomaticBackupsReplicationEnabled bool `json:"automaticBackupsReplicationEnabled,omitempty"`
	// AutonomousDatabase: Optional. The name of the primary Autonomous Database
	// that is used to create a Peer Autonomous Database from a source.
	AutonomousDatabase string `json:"autonomousDatabase,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AutomaticBackupsReplicationEnabled") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "AutomaticBackupsReplicationEnabled") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// StartAutonomousDatabaseRequest: The request for `AutonomousDatabase.Start`.
type StartAutonomousDatabaseRequest struct {
}

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

// StopAutonomousDatabaseRequest: The request for `AutonomousDatabase.Stop`.
type StopAutonomousDatabaseRequest struct {
}

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

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

// TimeOfDay: Represents a time of day. The date and time zone are either not
// significant or are specified elsewhere. An API may choose to allow leap
// seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
type TimeOfDay struct {
	// Hours: Hours of a day in 24 hour format. Must be greater than or equal to 0
	// and typically must be less than or equal to 23. An API may choose to allow
	// the value "24:00:00" for scenarios like business closing time.
	Hours int64 `json:"hours,omitempty"`
	// Minutes: Minutes of an hour. Must be greater than or equal to 0 and less
	// than or equal to 59.
	Minutes int64 `json:"minutes,omitempty"`
	// Nanos: Fractions of seconds, in nanoseconds. Must be greater than or equal
	// to 0 and less than or equal to 999,999,999.
	Nanos int64 `json:"nanos,omitempty"`
	// Seconds: Seconds of a minute. Must be greater than or equal to 0 and
	// typically must be less than or equal to 59. An API may allow the value 60 if
	// it allows leap-seconds.
	Seconds int64 `json:"seconds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Hours") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Hours") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TimeZone: Represents a time zone from the IANA Time Zone Database
// (https://www.iana.org/time-zones).
type TimeZone struct {
	// Id: IANA Time Zone Database time zone. For example "America/New_York".
	Id string `json:"id,omitempty"`
	// Version: Optional. IANA Time Zone Database version number. For example
	// "2019a".
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// Get: Gets information about a location.
//
// - name: Resource name for the location.
func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
	c := &ProjectsLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

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

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

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

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

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

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

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

// List: Lists information about the supported locations for this service.
//
// - name: The resource that owns the locations collection, if applicable.
func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
	c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// ExtraLocationTypes sets the optional parameter "extraLocationTypes": A list
// of extra location types that should be used as conditions for controlling
// the visibility of the locations.
func (c *ProjectsLocationsListCall) ExtraLocationTypes(extraLocationTypes ...string) *ProjectsLocationsListCall {
	c.urlParams_.SetMulti("extraLocationTypes", append([]string{}, extraLocationTypes...))
	return c
}

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

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

// PageToken sets the optional parameter "pageToken": A page token received
// from the `next_page_token` field in the response. Send that page token to
// receive the subsequent page.
func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

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

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

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

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

func (c *ProjectsLocationsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/locations")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "oracledatabase.projects.locations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocationsResponse) error) error {
	c.ctx_ = ctx
	defer c.PageToken(c.urlParams_.Get("pageToken"))
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.PageToken(x.NextPageToken)
	}
}

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

// List: Lists the long-term and automatic backups of an Autonomous Database.
//
//   - parent: The parent value for ListAutonomousDatabaseBackups in the
//     following format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsAutonomousDatabaseBackupsService) List(parent string) *ProjectsLocationsAutonomousDatabaseBackupsListCall {
	c := &ProjectsLocationsAutonomousDatabaseBackupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": An expression for filtering the
// results of the request. Only the **autonomous_database_id** field is
// supported in the following format:
// `autonomous_database_id="{autonomous_database_id}". The accepted values
// must be a valid Autonomous Database ID, limited to the naming restrictions
// of the ID: ^a-z ([a-z0-9-]{0,61}[a-z0-9])?$). The ID must start with a
// letter, end with a letter or a number, and be a maximum of 63 characters.
func (c *ProjectsLocationsAutonomousDatabaseBackupsListCall) Filter(filter string) *ProjectsLocationsAutonomousDatabaseBackupsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, at most 50 Autonomous DB Backups will be
// returned. The maximum value is 1000; values above 1000 will be coerced to
// 1000.
func (c *ProjectsLocationsAutonomousDatabaseBackupsListCall) PageSize(pageSize int64) *ProjectsLocationsAutonomousDatabaseBackupsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsAutonomousDatabaseBackupsListCall) PageToken(pageToken string) *ProjectsLocationsAutonomousDatabaseBackupsListCall {
	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 *ProjectsLocationsAutonomousDatabaseBackupsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAutonomousDatabaseBackupsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsAutonomousDatabaseBackupsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/autonomousDatabaseBackups")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.autonomousDatabaseBackups.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists Autonomous Database Character Sets in a given project and
// location.
//
//   - parent: The parent value for the Autonomous Database in the following
//     format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsAutonomousDatabaseCharacterSetsService) List(parent string) *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall {
	c := &ProjectsLocationsAutonomousDatabaseCharacterSetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": An expression for filtering the
// results of the request. Only the **character_set_type** field is supported
// in the following format: `character_set_type="{characterSetType}". Accepted
// values include `DATABASE` and `NATIONAL`.
func (c *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall) Filter(filter string) *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, at most 50 Autonomous DB Character Sets will be
// returned. The maximum value is 1000; values above 1000 will be coerced to
// 1000.
func (c *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall) PageSize(pageSize int64) *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall) PageToken(pageToken string) *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall {
	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 *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsAutonomousDatabaseCharacterSetsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/autonomousDatabaseCharacterSets")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.autonomousDatabaseCharacterSets.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Create: Creates a new Autonomous Database in a given project and location.
//
//   - parent: The name of the parent in the following format:
//     projects/{project}/locations/{location}.
func (r *ProjectsLocationsAutonomousDatabasesService) Create(parent string, autonomousdatabase *AutonomousDatabase) *ProjectsLocationsAutonomousDatabasesCreateCall {
	c := &ProjectsLocationsAutonomousDatabasesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.autonomousdatabase = autonomousdatabase
	return c
}

// AutonomousDatabaseId sets the optional parameter "autonomousDatabaseId":
// Required. The ID of the Autonomous Database to create. This value is
// restricted to (^a-z ([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of 63
// characters in length. The value must start with a letter and end with a
// letter or a number.
func (c *ProjectsLocationsAutonomousDatabasesCreateCall) AutonomousDatabaseId(autonomousDatabaseId string) *ProjectsLocationsAutonomousDatabasesCreateCall {
	c.urlParams_.Set("autonomousDatabaseId", autonomousDatabaseId)
	return c
}

// RequestId sets the optional parameter "requestId": An optional ID to
// identify the request. This value is used to identify duplicate requests. If
// you make a request with the same request ID and the original request is
// still in progress or completed, the server ignores the second request. This
// prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsAutonomousDatabasesCreateCall) RequestId(requestId string) *ProjectsLocationsAutonomousDatabasesCreateCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.autonomousDatabases.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAutonomousDatabasesCreateCall) 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", "oracledatabase.projects.locations.autonomousDatabases.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes a single Autonomous Database.
//
//   - name: The name of the resource in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) Delete(name string) *ProjectsLocationsAutonomousDatabasesDeleteCall {
	c := &ProjectsLocationsAutonomousDatabasesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// RequestId sets the optional parameter "requestId": An optional ID to
// identify the request. This value is used to identify duplicate requests. If
// you make a request with the same request ID and the original request is
// still in progress or completed, the server ignores the second request. This
// prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsAutonomousDatabasesDeleteCall) RequestId(requestId string) *ProjectsLocationsAutonomousDatabasesDeleteCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

func (c *ProjectsLocationsAutonomousDatabasesDeleteCall) 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", "oracledatabase.projects.locations.autonomousDatabases.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "oracledatabase.projects.locations.autonomousDatabases.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAutonomousDatabasesDeleteCall) 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", "oracledatabase.projects.locations.autonomousDatabases.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// GenerateWallet: Generates a wallet for an Autonomous Database.
//
//   - name: The name of the Autonomous Database in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) GenerateWallet(name string, generateautonomousdatabasewalletrequest *GenerateAutonomousDatabaseWalletRequest) *ProjectsLocationsAutonomousDatabasesGenerateWalletCall {
	c := &ProjectsLocationsAutonomousDatabasesGenerateWalletCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.generateautonomousdatabasewalletrequest = generateautonomousdatabasewalletrequest
	return c
}

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

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

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

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

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

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

// Get: Gets the details of a single Autonomous Database.
//
//   - name: The name of the Autonomous Database in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) Get(name string) *ProjectsLocationsAutonomousDatabasesGetCall {
	c := &ProjectsLocationsAutonomousDatabasesGetCall{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 *ProjectsLocationsAutonomousDatabasesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAutonomousDatabasesGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsAutonomousDatabasesGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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", "oracledatabase.projects.locations.autonomousDatabases.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists the Autonomous Databases in a given project and location.
//
//   - parent: The parent value for the Autonomous Database in the following
//     format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsAutonomousDatabasesService) List(parent string) *ProjectsLocationsAutonomousDatabasesListCall {
	c := &ProjectsLocationsAutonomousDatabasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": An expression for filtering the
// results of the request.
func (c *ProjectsLocationsAutonomousDatabasesListCall) Filter(filter string) *ProjectsLocationsAutonomousDatabasesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": An expression for ordering
// the results of the request.
func (c *ProjectsLocationsAutonomousDatabasesListCall) OrderBy(orderBy string) *ProjectsLocationsAutonomousDatabasesListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, at most 50 Autonomous Database will be returned.
// The maximum value is 1000; values above 1000 will be coerced to 1000.
func (c *ProjectsLocationsAutonomousDatabasesListCall) PageSize(pageSize int64) *ProjectsLocationsAutonomousDatabasesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsAutonomousDatabasesListCall) PageToken(pageToken string) *ProjectsLocationsAutonomousDatabasesListCall {
	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 *ProjectsLocationsAutonomousDatabasesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAutonomousDatabasesListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsAutonomousDatabasesListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/autonomousDatabases")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.autonomousDatabases.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Restart: Restarts an Autonomous Database.
//
//   - name: The name of the Autonomous Database in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) Restart(name string, restartautonomousdatabaserequest *RestartAutonomousDatabaseRequest) *ProjectsLocationsAutonomousDatabasesRestartCall {
	c := &ProjectsLocationsAutonomousDatabasesRestartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.restartautonomousdatabaserequest = restartautonomousdatabaserequest
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.autonomousDatabases.restart" 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 *ProjectsLocationsAutonomousDatabasesRestartCall) 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", "oracledatabase.projects.locations.autonomousDatabases.restart", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Restore: Restores a single Autonomous Database.
//
//   - name: The name of the Autonomous Database in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) Restore(name string, restoreautonomousdatabaserequest *RestoreAutonomousDatabaseRequest) *ProjectsLocationsAutonomousDatabasesRestoreCall {
	c := &ProjectsLocationsAutonomousDatabasesRestoreCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.restoreautonomousdatabaserequest = restoreautonomousdatabaserequest
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.autonomousDatabases.restore" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAutonomousDatabasesRestoreCall) 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", "oracledatabase.projects.locations.autonomousDatabases.restore", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Start: Starts an Autonomous Database.
//
//   - name: The name of the Autonomous Database in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) Start(name string, startautonomousdatabaserequest *StartAutonomousDatabaseRequest) *ProjectsLocationsAutonomousDatabasesStartCall {
	c := &ProjectsLocationsAutonomousDatabasesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.startautonomousdatabaserequest = startautonomousdatabaserequest
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.autonomousDatabases.start" 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 *ProjectsLocationsAutonomousDatabasesStartCall) 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", "oracledatabase.projects.locations.autonomousDatabases.start", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Stop: Stops an Autonomous Database.
//
//   - name: The name of the Autonomous Database in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) Stop(name string, stopautonomousdatabaserequest *StopAutonomousDatabaseRequest) *ProjectsLocationsAutonomousDatabasesStopCall {
	c := &ProjectsLocationsAutonomousDatabasesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.stopautonomousdatabaserequest = stopautonomousdatabaserequest
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.autonomousDatabases.stop" 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 *ProjectsLocationsAutonomousDatabasesStopCall) 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", "oracledatabase.projects.locations.autonomousDatabases.stop", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Switchover: Initiates a switchover of specified autonomous database to the
// associated peer database.
//
//   - name: The name of the Autonomous Database in the following format:
//     projects/{project}/locations/{location}/autonomousDatabases/{autonomous_dat
//     abase}.
func (r *ProjectsLocationsAutonomousDatabasesService) Switchover(name string, switchoverautonomousdatabaserequest *SwitchoverAutonomousDatabaseRequest) *ProjectsLocationsAutonomousDatabasesSwitchoverCall {
	c := &ProjectsLocationsAutonomousDatabasesSwitchoverCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.switchoverautonomousdatabaserequest = switchoverautonomousdatabaserequest
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.autonomousDatabases.switchover" 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 *ProjectsLocationsAutonomousDatabasesSwitchoverCall) 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", "oracledatabase.projects.locations.autonomousDatabases.switchover", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// List: Lists all the available Autonomous Database versions for a project and
// location.
//
//   - parent: The parent value for the Autonomous Database in the following
//     format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsAutonomousDbVersionsService) List(parent string) *ProjectsLocationsAutonomousDbVersionsListCall {
	c := &ProjectsLocationsAutonomousDbVersionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, at most 50 Autonomous DB Versions will be
// returned. The maximum value is 1000; values above 1000 will be coerced to
// 1000.
func (c *ProjectsLocationsAutonomousDbVersionsListCall) PageSize(pageSize int64) *ProjectsLocationsAutonomousDbVersionsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsAutonomousDbVersionsListCall) PageToken(pageToken string) *ProjectsLocationsAutonomousDbVersionsListCall {
	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 *ProjectsLocationsAutonomousDbVersionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAutonomousDbVersionsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsAutonomousDbVersionsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/autonomousDbVersions")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.autonomousDbVersions.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Create: Creates a new Exadata Infrastructure in a given project and
// location.
//
//   - parent: The parent value for CloudExadataInfrastructure in the following
//     format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsCloudExadataInfrastructuresService) Create(parent string, cloudexadatainfrastructure *CloudExadataInfrastructure) *ProjectsLocationsCloudExadataInfrastructuresCreateCall {
	c := &ProjectsLocationsCloudExadataInfrastructuresCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.cloudexadatainfrastructure = cloudexadatainfrastructure
	return c
}

// CloudExadataInfrastructureId sets the optional parameter
// "cloudExadataInfrastructureId": Required. The ID of the Exadata
// Infrastructure to create. This value is restricted to (^a-z
// ([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of 63 characters in
// length. The value must start with a letter and end with a letter or a
// number.
func (c *ProjectsLocationsCloudExadataInfrastructuresCreateCall) CloudExadataInfrastructureId(cloudExadataInfrastructureId string) *ProjectsLocationsCloudExadataInfrastructuresCreateCall {
	c.urlParams_.Set("cloudExadataInfrastructureId", cloudExadataInfrastructureId)
	return c
}

// RequestId sets the optional parameter "requestId": An optional ID to
// identify the request. This value is used to identify duplicate requests. If
// you make a request with the same request ID and the original request is
// still in progress or completed, the server ignores the second request. This
// prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsCloudExadataInfrastructuresCreateCall) RequestId(requestId string) *ProjectsLocationsCloudExadataInfrastructuresCreateCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.cloudExadataInfrastructures.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsCloudExadataInfrastructuresCreateCall) 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", "oracledatabase.projects.locations.cloudExadataInfrastructures.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes a single Exadata Infrastructure.
//
//   - name: The name of the Cloud Exadata Infrastructure in the following
//     format:
//     projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_
//     exadata_infrastructure}.
func (r *ProjectsLocationsCloudExadataInfrastructuresService) Delete(name string) *ProjectsLocationsCloudExadataInfrastructuresDeleteCall {
	c := &ProjectsLocationsCloudExadataInfrastructuresDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Force sets the optional parameter "force": If set to true, all VM clusters
// for this Exadata Infrastructure will be deleted. An Exadata Infrastructure
// can only be deleted once all its VM clusters have been deleted.
func (c *ProjectsLocationsCloudExadataInfrastructuresDeleteCall) Force(force bool) *ProjectsLocationsCloudExadataInfrastructuresDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// RequestId sets the optional parameter "requestId": An optional ID to
// identify the request. This value is used to identify duplicate requests. If
// you make a request with the same request ID and the original request is
// still in progress or completed, the server ignores the second request. This
// prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsCloudExadataInfrastructuresDeleteCall) RequestId(requestId string) *ProjectsLocationsCloudExadataInfrastructuresDeleteCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

func (c *ProjectsLocationsCloudExadataInfrastructuresDeleteCall) 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", "oracledatabase.projects.locations.cloudExadataInfrastructures.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "oracledatabase.projects.locations.cloudExadataInfrastructures.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsCloudExadataInfrastructuresDeleteCall) 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", "oracledatabase.projects.locations.cloudExadataInfrastructures.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets details of a single Exadata Infrastructure.
//
//   - name: The name of the Cloud Exadata Infrastructure in the following
//     format:
//     projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_
//     exadata_infrastructure}.
func (r *ProjectsLocationsCloudExadataInfrastructuresService) Get(name string) *ProjectsLocationsCloudExadataInfrastructuresGetCall {
	c := &ProjectsLocationsCloudExadataInfrastructuresGetCall{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 *ProjectsLocationsCloudExadataInfrastructuresGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCloudExadataInfrastructuresGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsCloudExadataInfrastructuresGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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", "oracledatabase.projects.locations.cloudExadataInfrastructures.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists Exadata Infrastructures in a given project and location.
//
//   - parent: The parent value for CloudExadataInfrastructure in the following
//     format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsCloudExadataInfrastructuresService) List(parent string) *ProjectsLocationsCloudExadataInfrastructuresListCall {
	c := &ProjectsLocationsCloudExadataInfrastructuresListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, at most 50 Exadata infrastructures will be
// returned. The maximum value is 1000; values above 1000 will be coerced to
// 1000.
func (c *ProjectsLocationsCloudExadataInfrastructuresListCall) PageSize(pageSize int64) *ProjectsLocationsCloudExadataInfrastructuresListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsCloudExadataInfrastructuresListCall) PageToken(pageToken string) *ProjectsLocationsCloudExadataInfrastructuresListCall {
	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 *ProjectsLocationsCloudExadataInfrastructuresListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCloudExadataInfrastructuresListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsCloudExadataInfrastructuresListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/cloudExadataInfrastructures")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.cloudExadataInfrastructures.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists the database servers of an Exadata Infrastructure instance.
//
//   - parent: The parent value for database server in the following format:
//     projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloudE
//     xadataInfrastructure}.
func (r *ProjectsLocationsCloudExadataInfrastructuresDbServersService) List(parent string) *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall {
	c := &ProjectsLocationsCloudExadataInfrastructuresDbServersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, a maximum of 50 db servers will be returned. The
// maximum value is 1000; values above 1000 will be reset to 1000.
func (c *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall) PageSize(pageSize int64) *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall) PageToken(pageToken string) *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall {
	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 *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsCloudExadataInfrastructuresDbServersListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/dbServers")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.cloudExadataInfrastructures.dbServers.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Create: Creates a new VM Cluster in a given project and location.
//
//   - parent: The name of the parent in the following format:
//     projects/{project}/locations/{location}.
func (r *ProjectsLocationsCloudVmClustersService) Create(parent string, cloudvmcluster *CloudVmCluster) *ProjectsLocationsCloudVmClustersCreateCall {
	c := &ProjectsLocationsCloudVmClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.cloudvmcluster = cloudvmcluster
	return c
}

// CloudVmClusterId sets the optional parameter "cloudVmClusterId": Required.
// The ID of the VM Cluster to create. This value is restricted to (^a-z
// ([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of 63 characters in
// length. The value must start with a letter and end with a letter or a
// number.
func (c *ProjectsLocationsCloudVmClustersCreateCall) CloudVmClusterId(cloudVmClusterId string) *ProjectsLocationsCloudVmClustersCreateCall {
	c.urlParams_.Set("cloudVmClusterId", cloudVmClusterId)
	return c
}

// RequestId sets the optional parameter "requestId": An optional ID to
// identify the request. This value is used to identify duplicate requests. If
// you make a request with the same request ID and the original request is
// still in progress or completed, the server ignores the second request. This
// prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsCloudVmClustersCreateCall) RequestId(requestId string) *ProjectsLocationsCloudVmClustersCreateCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

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

// Do executes the "oracledatabase.projects.locations.cloudVmClusters.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsCloudVmClustersCreateCall) 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", "oracledatabase.projects.locations.cloudVmClusters.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Delete: Deletes a single VM Cluster.
//
//   - name: The name of the Cloud VM Cluster in the following format:
//     projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}.
func (r *ProjectsLocationsCloudVmClustersService) Delete(name string) *ProjectsLocationsCloudVmClustersDeleteCall {
	c := &ProjectsLocationsCloudVmClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Force sets the optional parameter "force": If set to true, all child
// resources for the VM Cluster will be deleted. A VM Cluster can only be
// deleted once all its child resources have been deleted.
func (c *ProjectsLocationsCloudVmClustersDeleteCall) Force(force bool) *ProjectsLocationsCloudVmClustersDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// RequestId sets the optional parameter "requestId": An optional ID to
// identify the request. This value is used to identify duplicate requests. If
// you make a request with the same request ID and the original request is
// still in progress or completed, the server ignores the second request. This
// prevents clients from accidentally creating duplicate commitments. The
// request ID must be a valid UUID with the exception that zero UUID is not
// supported (00000000-0000-0000-0000-000000000000).
func (c *ProjectsLocationsCloudVmClustersDeleteCall) RequestId(requestId string) *ProjectsLocationsCloudVmClustersDeleteCall {
	c.urlParams_.Set("requestId", requestId)
	return c
}

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

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

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

func (c *ProjectsLocationsCloudVmClustersDeleteCall) 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", "oracledatabase.projects.locations.cloudVmClusters.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "oracledatabase.projects.locations.cloudVmClusters.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsCloudVmClustersDeleteCall) 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", "oracledatabase.projects.locations.cloudVmClusters.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

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

// Get: Gets details of a single VM Cluster.
//
//   - name: The name of the Cloud VM Cluster in the following format:
//     projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}.
func (r *ProjectsLocationsCloudVmClustersService) Get(name string) *ProjectsLocationsCloudVmClustersGetCall {
	c := &ProjectsLocationsCloudVmClustersGetCall{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 *ProjectsLocationsCloudVmClustersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCloudVmClustersGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsCloudVmClustersGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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", "oracledatabase.projects.locations.cloudVmClusters.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists the VM Clusters in a given project and location.
//
//   - parent: The name of the parent in the following format:
//     projects/{project}/locations/{location}.
func (r *ProjectsLocationsCloudVmClustersService) List(parent string) *ProjectsLocationsCloudVmClustersListCall {
	c := &ProjectsLocationsCloudVmClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": An expression for filtering the
// results of the request.
func (c *ProjectsLocationsCloudVmClustersListCall) Filter(filter string) *ProjectsLocationsCloudVmClustersListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The number of VM clusters
// to return. If unspecified, at most 50 VM clusters will be returned. The
// maximum value is 1,000.
func (c *ProjectsLocationsCloudVmClustersListCall) PageSize(pageSize int64) *ProjectsLocationsCloudVmClustersListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying the
// page of results the server returns.
func (c *ProjectsLocationsCloudVmClustersListCall) PageToken(pageToken string) *ProjectsLocationsCloudVmClustersListCall {
	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 *ProjectsLocationsCloudVmClustersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCloudVmClustersListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsCloudVmClustersListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/cloudVmClusters")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.cloudVmClusters.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists the database nodes of a VM Cluster.
//
//   - parent: The parent value for database node in the following format:
//     projects/{project}/locations/{location}/cloudVmClusters/{cloudVmCluster}.
//     .
func (r *ProjectsLocationsCloudVmClustersDbNodesService) List(parent string) *ProjectsLocationsCloudVmClustersDbNodesListCall {
	c := &ProjectsLocationsCloudVmClustersDbNodesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, at most 50 db nodes will be returned. The maximum
// value is 1000; values above 1000 will be coerced to 1000.
func (c *ProjectsLocationsCloudVmClustersDbNodesListCall) PageSize(pageSize int64) *ProjectsLocationsCloudVmClustersDbNodesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the node should return.
func (c *ProjectsLocationsCloudVmClustersDbNodesListCall) PageToken(pageToken string) *ProjectsLocationsCloudVmClustersDbNodesListCall {
	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 *ProjectsLocationsCloudVmClustersDbNodesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCloudVmClustersDbNodesListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsCloudVmClustersDbNodesListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/dbNodes")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.cloudVmClusters.dbNodes.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists the database system shapes available for the project and
// location.
//
//   - parent: The parent value for Database System Shapes in the following
//     format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsDbSystemShapesService) List(parent string) *ProjectsLocationsDbSystemShapesListCall {
	c := &ProjectsLocationsDbSystemShapesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, at most 50 database system shapes will be
// returned. The maximum value is 1000; values above 1000 will be coerced to
// 1000.
func (c *ProjectsLocationsDbSystemShapesListCall) PageSize(pageSize int64) *ProjectsLocationsDbSystemShapesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsDbSystemShapesListCall) PageToken(pageToken string) *ProjectsLocationsDbSystemShapesListCall {
	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 *ProjectsLocationsDbSystemShapesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDbSystemShapesListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsDbSystemShapesListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/dbSystemShapes")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.dbSystemShapes.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists the entitlements in a given project.
//
//   - parent: The parent value for the entitlement in the following format:
//     projects/{project}/locations/{location}.
func (r *ProjectsLocationsEntitlementsService) List(parent string) *ProjectsLocationsEntitlementsListCall {
	c := &ProjectsLocationsEntitlementsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, a maximum of 50 entitlements will be returned.
// The maximum value is 1000.
func (c *ProjectsLocationsEntitlementsListCall) PageSize(pageSize int64) *ProjectsLocationsEntitlementsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsEntitlementsListCall) PageToken(pageToken string) *ProjectsLocationsEntitlementsListCall {
	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 *ProjectsLocationsEntitlementsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsEntitlementsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsEntitlementsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/entitlements")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.entitlements.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// List: Lists all the valid Oracle Grid Infrastructure (GI) versions for the
// given project and location.
//
//   - parent: The parent value for Grid Infrastructure Version in the following
//     format: Format: projects/{project}/locations/{location}.
func (r *ProjectsLocationsGiVersionsService) List(parent string) *ProjectsLocationsGiVersionsListCall {
	c := &ProjectsLocationsGiVersionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": An expression for filtering the
// results of the request. Only the shape and gi_version fields are supported
// in this format: `shape="{shape}".
func (c *ProjectsLocationsGiVersionsListCall) Filter(filter string) *ProjectsLocationsGiVersionsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of items
// to return. If unspecified, a maximum of 50 Oracle Grid Infrastructure (GI)
// versions will be returned. The maximum value is 1000; values above 1000 will
// be reset to 1000.
func (c *ProjectsLocationsGiVersionsListCall) PageSize(pageSize int64) *ProjectsLocationsGiVersionsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A token identifying a
// page of results the server should return.
func (c *ProjectsLocationsGiVersionsListCall) PageToken(pageToken string) *ProjectsLocationsGiVersionsListCall {
	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 *ProjectsLocationsGiVersionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsGiVersionsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

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

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

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

func (c *ProjectsLocationsGiVersionsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.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}/giVersions")
	urls += "?" + c.urlParams_.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", "oracledatabase.projects.locations.giVersions.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Cancel: Starts asynchronous cancellation on a long-running operation. The
// server makes a best effort to cancel the operation, but success is not
// guaranteed. If the server doesn't support this method, it returns
// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or
// other methods to check whether the cancellation succeeded or whether the
// operation completed despite cancellation. On successful cancellation, the
// operation is not deleted; instead, it becomes an operation with an
// Operation.error value with a google.rpc.Status.code of `1`, corresponding to
// `Code.CANCELLED`.
//
// - name: The name of the operation resource to be cancelled.
func (r *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.canceloperationrequest = canceloperationrequest
	return c
}

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

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

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

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

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

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

// Delete: Deletes a long-running operation. This method indicates that the
// client is no longer interested in the operation result. It does not cancel
// the operation. If the server doesn't support this method, it returns
// `google.rpc.Code.UNIMPLEMENTED`.
//
// - name: The name of the operation resource to be deleted.
func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
	c := &ProjectsLocationsOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

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

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

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

func (c *ProjectsLocationsOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "oracledatabase.projects.locations.operations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

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

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

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

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

func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "oracledatabase.projects.locations.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

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

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

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

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

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

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

func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "oracledatabase.projects.locations.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

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

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
	c.ctx_ = ctx
	defer c.PageToken(c.urlParams_.Get("pageToken"))
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.PageToken(x.NextPageToken)
	}
}
