api

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package api provides primitives to interact with the openapi HTTP API.

Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.0 DO NOT EDIT.

Package api contains the API server implementation.

Index

Constants

View Source
const (
	BearerAuthScopes = "BearerAuth.Scopes"
)

Variables

This section is empty.

Functions

func GetSwagger

func GetSwagger() (swagger *openapi3.T, err error)

GetSwagger returns the Swagger specification corresponding to the generated code in this file. The external references of Swagger specification are resolved. The logic of resolving external references is tightly connected to "import-mapping" feature. Externally referenced files must be embedded in the corresponding golang packages. Urls can be supported but this task was out of the scope.

func PathToRawSpec

func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error)

Constructs a synthetic filesystem for resolving external references when loading openapi specifications.

func RegisterHandlers

func RegisterHandlers(router EchoRouter, si ServerInterface)

RegisterHandlers adds each server route to the EchoRouter.

func RegisterHandlersWithBaseURL

func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string)

Registers handlers, and prepends BaseURL to the paths, so that the paths can be served under a prefix.

Types

type ApproveUpgradePlanJSONRequestBody added in v1.1.0

type ApproveUpgradePlanJSONRequestBody = UpgradePlanApproval

ApproveUpgradePlanJSONRequestBody defines body for ApproveUpgradePlan for application/json ContentType.

type BackupStorage

type BackupStorage struct {
	// AllowedNamespaces List of namespaces allowed to use this backup storage
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllowedNamespaces *[]string         `json:"allowedNamespaces,omitempty"`
	BucketName        string            `json:"bucketName"`
	Description       *string           `json:"description,omitempty"`
	ForcePathStyle    *bool             `json:"forcePathStyle,omitempty"`
	Name              string            `json:"name"`
	Namespace         string            `json:"namespace,omitempty"`
	Region            string            `json:"region,omitempty"`
	Type              BackupStorageType `json:"type"`
	Url               *string           `json:"url,omitempty"`
	VerifyTLS         *bool             `json:"verifyTLS,omitempty"`
}

BackupStorage Backup storage information

func (*BackupStorage) FromCR added in v1.5.0

func (out *BackupStorage) FromCR(in *v1alpha1.BackupStorage)

type BackupStorageType

type BackupStorageType string

BackupStorageType defines model for BackupStorage.Type.

const (
	BackupStorageTypeAzure BackupStorageType = "azure"
	BackupStorageTypeS3    BackupStorageType = "s3"
)

Defines values for BackupStorageType.

type BackupStoragesList

type BackupStoragesList = []BackupStorage

BackupStoragesList defines model for BackupStoragesList.

type CreateBackupStorageJSONRequestBody

type CreateBackupStorageJSONRequestBody = CreateBackupStorageParams

CreateBackupStorageJSONRequestBody defines body for CreateBackupStorage for application/json ContentType.

type CreateBackupStorageParams

type CreateBackupStorageParams struct {
	AccessKey string `json:"accessKey"`

	// AllowedNamespaces List of namespaces allowed to use this backup storage
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllowedNamespaces *[]string `json:"allowedNamespaces,omitempty"`

	// BucketName The cloud storage bucket/container name
	BucketName     string  `json:"bucketName"`
	Description    *string `json:"description,omitempty"`
	ForcePathStyle *bool   `json:"forcePathStyle,omitempty"`

	// Name A user defined string name of the storage in the DNS name format https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
	Name      string                        `json:"name"`
	Region    string                        `json:"region,omitempty"`
	SecretKey string                        `json:"secretKey"`
	Type      CreateBackupStorageParamsType `json:"type"`
	Url       *string                       `json:"url,omitempty"`
	VerifyTLS *bool                         `json:"verifyTLS,omitempty"`
}

CreateBackupStorageParams Backup storage parameters

type CreateBackupStorageParamsType

type CreateBackupStorageParamsType string

CreateBackupStorageParamsType defines model for CreateBackupStorageParams.Type.

const (
	CreateBackupStorageParamsTypeAzure CreateBackupStorageParamsType = "azure"
	CreateBackupStorageParamsTypeS3    CreateBackupStorageParamsType = "s3"
)

Defines values for CreateBackupStorageParamsType.

type CreateDatabaseClusterBackupJSONRequestBody

type CreateDatabaseClusterBackupJSONRequestBody = DatabaseClusterBackup

CreateDatabaseClusterBackupJSONRequestBody defines body for CreateDatabaseClusterBackup for application/json ContentType.

type CreateDatabaseClusterJSONRequestBody

type CreateDatabaseClusterJSONRequestBody = DatabaseCluster

CreateDatabaseClusterJSONRequestBody defines body for CreateDatabaseCluster for application/json ContentType.

type CreateDatabaseClusterRestoreJSONRequestBody

type CreateDatabaseClusterRestoreJSONRequestBody = DatabaseClusterRestore

CreateDatabaseClusterRestoreJSONRequestBody defines body for CreateDatabaseClusterRestore for application/json ContentType.

type CreateDatabaseClusterSecretJSONRequestBody added in v1.8.0

type CreateDatabaseClusterSecretJSONRequestBody = Secret

CreateDatabaseClusterSecretJSONRequestBody defines body for CreateDatabaseClusterSecret for application/json ContentType.

type CreateDatabaseClusterSecretParams added in v1.8.0

type CreateDatabaseClusterSecretParams struct {
	// SecretName Optional name of the secret to be created. If not provided, a random name will be generated.
	SecretName *string `form:"secretName,omitempty" json:"secretName,omitempty"`
}

CreateDatabaseClusterSecretParams defines parameters for CreateDatabaseClusterSecret.

type CreateLoadBalancerConfigJSONRequestBody added in v1.9.0

type CreateLoadBalancerConfigJSONRequestBody = LoadBalancerConfig

CreateLoadBalancerConfigJSONRequestBody defines body for CreateLoadBalancerConfig for application/json ContentType.

type CreateMonitoringInstanceJSONRequestBody

type CreateMonitoringInstanceJSONRequestBody = MonitoringInstanceCreateParams

CreateMonitoringInstanceJSONRequestBody defines body for CreateMonitoringInstance for application/json ContentType.

type CreatePodSchedulingPolicyJSONRequestBody added in v1.7.0

type CreatePodSchedulingPolicyJSONRequestBody = PodSchedulingPolicy

CreatePodSchedulingPolicyJSONRequestBody defines body for CreatePodSchedulingPolicy for application/json ContentType.

type CreateSessionJSONRequestBody added in v1.0.0

type CreateSessionJSONRequestBody = UserCredentials

CreateSessionJSONRequestBody defines body for CreateSession for application/json ContentType.

type CreateSplitHorizonDNSConfigJSONRequestBody added in v1.10.0

type CreateSplitHorizonDNSConfigJSONRequestBody = SplitHorizonDNSConfig

CreateSplitHorizonDNSConfigJSONRequestBody defines body for CreateSplitHorizonDNSConfig for application/json ContentType.

type DataImportJob added in v1.8.0

type DataImportJob struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
	Spec     *struct {
		// Config Config defines the configuration for the data import job.
		// These options are specific to the DataImporter being used and must conform to
		// the schema defined in the DataImporter's .spec.config.openAPIV3Schema.
		Config *map[string]interface{} `json:"config,omitempty"`

		// DataImporterName DataImporterName is the data importer to use for the import.
		DataImporterName string `json:"dataImporterName"`

		// Source Source is the source of the data to import.
		Source struct {
			// Path Path is the path to the directory to import the data from.
			// This may be a path to a file or a directory, depending on the data importer.
			Path *string `json:"path,omitempty"`

			// S3 S3 contains the S3 information for the data import.
			S3 *struct {
				// AccessKeyId AccessKeyID allows specifying the S3 access key ID inline.
				// It is provided as a write-only input field for convenience.
				// When this field is set, a webhook writes this value in the Secret specified by `credentialsSecretName`
				// and empties this field.
				// This field is not stored in the API.
				AccessKeyId *string `json:"accessKeyId,omitempty"`

				// Bucket Bucket is the name of the S3 bucket.
				Bucket *string `json:"bucket,omitempty"`

				// CredentialsSecretName CredentialsSecreName is the reference to the secret containing the S3 credentials.
				// The Secret must contain the keys `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
				CredentialsSecretName string `json:"credentialsSecretName"`

				// EndpointURL EndpointURL is an endpoint URL of backup storage.
				EndpointURL *string `json:"endpointURL,omitempty"`

				// ForcePathStyle ForcePathStyle is set to use path-style URLs.
				// If unspecified, the default value is false.
				ForcePathStyle *bool `json:"forcePathStyle,omitempty"`

				// Region Region is the region of the S3 bucket.
				Region *string `json:"region,omitempty"`

				// SecretAccessKey SecretAccessKey allows specifying the S3 secret access key inline.
				// It is provided as a write-only input field for convenience.
				// When this field is set, a webhook writes this value in the Secret specified by `credentialsSecretName`
				// and empties this field.
				// This field is not stored in the API.
				SecretAccessKey *string `json:"secretAccessKey,omitempty"`

				// VerifyTLS VerifyTLS is set to ensure TLS/SSL verification.
				// If unspecified, the default value is true.
				VerifyTLS *bool `json:"verifyTLS,omitempty"`
			} `json:"s3,omitempty"`
		} `json:"source"`

		// TargetClusterName TargetClusterName is the reference to the target cluster.
		TargetClusterName string `json:"targetClusterName"`
	} `json:"spec,omitempty"`
	Status *struct {
		// CompletedAt CompletedAt is the time when the data import job completed successfully.
		CompletedAt *time.Time `json:"completedAt,omitempty"`

		// JobName JobName is the reference to the job that is running the data import.
		JobName *string `json:"jobName,omitempty"`

		// LastObservedGeneration LastObservedGeneration is the last observed generation of the data import job.
		LastObservedGeneration *int64 `json:"lastObservedGeneration,omitempty"`

		// Message Message is the message of the data import job.
		Message *string `json:"message,omitempty"`

		// StartedAt StartedAt is the time when the data import job started.
		StartedAt *time.Time `json:"startedAt,omitempty"`

		// State State is the current state of the data import job.
		State *string `json:"state,omitempty"`
	} `json:"status,omitempty"`
}

DataImportJob DataImportJob is the schema for the dataimportjobs API.

type DataImportJobList added in v1.8.0

type DataImportJobList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string          `json:"apiVersion,omitempty"`
	Items      *[]DataImportJob `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

DataImportJobList DataImportJobList is an object that contains the list of the existing data import jobs.

type DataImporter added in v1.8.0

type DataImporter struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec DataImporterSpec defines the specification of a DataImporter.
	Spec *struct {
		// ClusterPermissions ClusterPermissions defines the cluster-wide permissions required by the data importer.
		// These permissions are used to generate a ClusterRole for the data importer job.
		ClusterPermissions *[]struct {
			// ApiGroups APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of
			// the enumerated resources in any API group will be allowed. "" represents the core API group and "*" represents all API groups.
			ApiGroups *[]string `json:"apiGroups,omitempty"`

			// NonResourceURLs NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path
			// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.
			// Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"),  but not both.
			NonResourceURLs *[]string `json:"nonResourceURLs,omitempty"`

			// ResourceNames ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.
			ResourceNames *[]string `json:"resourceNames,omitempty"`

			// Resources Resources is a list of resources this rule applies to. '*' represents all resources.
			Resources *[]string `json:"resources,omitempty"`

			// Verbs Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.
			Verbs []string `json:"verbs"`
		} `json:"clusterPermissions,omitempty"`

		// Config Config contains additional configuration defined for the data importer.
		Config *struct {
			// OpenAPIV3Schema OpenAPIV3Schema is the OpenAPI v3 schema of the data importer.
			OpenAPIV3Schema interface{} `json:"openAPIV3Schema,omitempty"`
		} `json:"config,omitempty"`

		// DatabaseClusterConstraints DatabaseClusterConstraints defines compatibility requirements and prerequisites that must be satisfied
		// by a DatabaseCluster before this data importer can be used with it. This allows the data importer to
		// express specific requirements about the database configuration needed for successful import operations,
		// such as required database fields, specific engine configurations, or other database properties.
		// When a DatabaseCluster references this data importer, the operator will validate the DatabaseCluster
		// against these constraints before proceeding with the import operation.
		DatabaseClusterConstraints *struct {
			// RequiredFields RequiredFields contains a list of fields that must be set in the DatabaseCluster spec.
			// Each key is a JSON path expressions that points to a field in the DatabaseCluster spec.
			// For example, ".spec.engine.type" or ".spec.dataSource.dataImport.config.someField".
			RequiredFields *[]string `json:"requiredFields,omitempty"`
		} `json:"databaseClusterConstraints,omitempty"`

		// Description Description is the description of the data importer.
		Description *string `json:"description,omitempty"`

		// DisplayName DisplayName is a human-readable name for the data importer.
		DisplayName *string `json:"displayName,omitempty"`

		// JobSpec JobSpec is the specification of the data importer job.
		JobSpec *struct {
			// Command Command is the command to run the data importer.
			Command *[]string `json:"command,omitempty"`

			// Image Image is the image of the data importer.
			Image *string `json:"image,omitempty"`
		} `json:"jobSpec,omitempty"`

		// Permissions Permissions defines the permissions required by the data importer.
		// These permissions are used to generate a Role for the data importer job.
		Permissions *[]struct {
			// ApiGroups APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of
			// the enumerated resources in any API group will be allowed. "" represents the core API group and "*" represents all API groups.
			ApiGroups *[]string `json:"apiGroups,omitempty"`

			// NonResourceURLs NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path
			// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.
			// Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"),  but not both.
			NonResourceURLs *[]string `json:"nonResourceURLs,omitempty"`

			// ResourceNames ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.
			ResourceNames *[]string `json:"resourceNames,omitempty"`

			// Resources Resources is a list of resources this rule applies to. '*' represents all resources.
			Resources *[]string `json:"resources,omitempty"`

			// Verbs Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.
			Verbs []string `json:"verbs"`
		} `json:"permissions,omitempty"`

		// SupportedEngines SupportedEngines is the list of engines that the data importer supports.
		SupportedEngines *[]string `json:"supportedEngines,omitempty"`
	} `json:"spec,omitempty"`
	Status *map[string]interface{} `json:"status,omitempty"`
}

DataImporter DataImporter defines a reusable strategy for importing data into a DatabaseCluster.

type DataImporterList added in v1.8.0

type DataImporterList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string         `json:"apiVersion,omitempty"`
	Items      *[]DataImporter `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

DataImporterList DataImporterList is an object that contains the list of the existing data importers.

type DatabaseCluster

type DatabaseCluster struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec DatabaseClusterSpec defines the desired state of DatabaseCluster.
	Spec *struct {
		// AllowUnsafeConfiguration AllowUnsafeConfiguration field used to ensure that the user can create configurations unfit for production use.
		//
		// Deprecated: AllowUnsafeConfiguration will not be supported in the future releases.
		AllowUnsafeConfiguration *bool `json:"allowUnsafeConfiguration,omitempty"`

		// Backup Backup is the backup specification
		Backup *struct {
			// Enabled Enabled is a flag to enable backups
			// Deprecated. Please use db.spec.backup.schedules[].enabled to control each schedule separately and db.spec.backup.pitr.enabled to control PITR.
			Enabled *bool `json:"enabled,omitempty"`

			// Pitr PITR is the configuration of the point in time recovery
			Pitr *struct {
				// BackupStorageName BackupStorageName is the name of the BackupStorage where the PITR is enabled
				// The BackupStorage must be created in the same namespace as the DatabaseCluster.
				BackupStorageName *string `json:"backupStorageName,omitempty"`

				// Enabled Enabled is a flag to enable PITR
				Enabled bool `json:"enabled"`

				// UploadIntervalSec UploadIntervalSec number of seconds between the binlogs uploads
				UploadIntervalSec *int `json:"uploadIntervalSec,omitempty"`
			} `json:"pitr,omitempty"`

			// Schedules Schedules is a list of backup schedules
			Schedules *[]struct {
				// BackupStorageName BackupStorageName is the name of the BackupStorage CR that defines the
				// storage location.
				// The BackupStorage must be created in the same namespace as the DatabaseCluster.
				BackupStorageName string `json:"backupStorageName"`

				// Enabled Enabled is a flag to enable the schedule
				Enabled bool `json:"enabled"`

				// Name Name is the name of the schedule
				Name string `json:"name"`

				// RetentionCopies RetentionCopies is the number of backup copies to retain
				RetentionCopies *int32 `json:"retentionCopies,omitempty"`

				// Schedule Schedule is the cron schedule
				Schedule string `json:"schedule"`
			} `json:"schedules,omitempty"`
		} `json:"backup,omitempty"`

		// DataSource DataSource defines a data source for bootstraping a new cluster
		DataSource *struct {
			// BackupSource BackupSource is the backup source to restore from
			BackupSource *struct {
				// BackupStorageName BackupStorageName is the name of the BackupStorage used for backups.
				// The BackupStorage must be created in the same namespace as the DatabaseCluster.
				BackupStorageName string `json:"backupStorageName"`

				// Path Path is the path to the backup file/directory.
				Path string `json:"path"`
			} `json:"backupSource,omitempty"`

			// DataImport DataImport allows importing data from an external backup source.
			DataImport *struct {
				// Config Config defines the configuration for the data import job.
				// These options are specific to the DataImporter being used and must conform to
				// the schema defined in the DataImporter's .spec.config.openAPIV3Schema.
				Config *map[string]interface{} `json:"config,omitempty"`

				// DataImporterName DataImporterName is the data importer to use for the import.
				DataImporterName string `json:"dataImporterName"`

				// Source Source is the source of the data to import.
				Source struct {
					// Path Path is the path to the directory to import the data from.
					// This may be a path to a file or a directory, depending on the data importer.
					// Only absolute file paths are allowed. Leading and trailing '/' are optional.
					Path string `json:"path"`

					// S3 S3 contains the S3 information for the data import.
					S3 *struct {
						// AccessKeyId AccessKeyID allows specifying the S3 access key ID inline.
						// It is provided as a write-only input field for convenience.
						// When this field is set, a webhook writes this value in the Secret specified by `credentialsSecretName`
						// and empties this field.
						// This field is not stored in the API.
						AccessKeyId *string `json:"accessKeyId,omitempty"`

						// Bucket Bucket is the name of the S3 bucket.
						Bucket string `json:"bucket"`

						// CredentialsSecretName CredentialsSecreName is the reference to the secret containing the S3 credentials.
						// The Secret must contain the keys `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
						CredentialsSecretName string `json:"credentialsSecretName"`

						// EndpointURL EndpointURL is an endpoint URL of backup storage.
						EndpointURL string `json:"endpointURL"`

						// ForcePathStyle ForcePathStyle is set to use path-style URLs.
						// If unspecified, the default value is false.
						ForcePathStyle *bool `json:"forcePathStyle,omitempty"`

						// Region Region is the region of the S3 bucket.
						Region string `json:"region"`

						// SecretAccessKey SecretAccessKey allows specifying the S3 secret access key inline.
						// It is provided as a write-only input field for convenience.
						// When this field is set, a webhook writes this value in the Secret specified by `credentialsSecretName`
						// and empties this field.
						// This field is not stored in the API.
						SecretAccessKey *string `json:"secretAccessKey,omitempty"`

						// VerifyTLS VerifyTLS is set to ensure TLS/SSL verification.
						// If unspecified, the default value is true.
						VerifyTLS *bool `json:"verifyTLS,omitempty"`
					} `json:"s3,omitempty"`
				} `json:"source"`
			} `json:"dataImport,omitempty"`

			// DbClusterBackupName DBClusterBackupName is the name of the DB cluster backup to restore from
			DbClusterBackupName *string `json:"dbClusterBackupName,omitempty"`

			// Pitr PITR is the point-in-time recovery configuration
			Pitr *struct {
				// Date Date is the UTC date to recover to. The accepted format: "2006-01-02T15:04:05Z".
				Date *string `json:"date,omitempty"`

				// Type Type is the type of recovery.
				Type *DatabaseClusterSpecDataSourcePitrType `json:"type,omitempty"`
			} `json:"pitr,omitempty"`
		} `json:"dataSource,omitempty"`

		// Engine Engine is the database engine specification
		Engine struct {
			// Config Config is the engine configuration
			Config *string `json:"config,omitempty"`

			// CrVersion CRVersion is the desired version of the CR to use with the
			// underlying operator.
			// If unspecified, everest-operator will use the same version as the operator.
			//
			// NOTE: Updating this property post installation may lead to a restart of the cluster.
			CrVersion *string `json:"crVersion,omitempty"`

			// Replicas Replicas is the number of engine replicas
			Replicas *int32 `json:"replicas,omitempty"`

			// Resources Resources are the resource limits for each engine replica.
			// If not set, resource limits are not imposed
			Resources *struct {
				// Cpu CPU is the CPU resource requirements
				Cpu *DatabaseCluster_Spec_Engine_Resources_Cpu `json:"cpu,omitempty"`

				// Memory Memory is the memory resource requirements
				Memory *DatabaseCluster_Spec_Engine_Resources_Memory `json:"memory,omitempty"`
			} `json:"resources,omitempty"`

			// Storage Storage is the engine storage configuration
			Storage struct {
				// Class Class is the storage class to use for the persistent volume claim
				Class *string `json:"class,omitempty"`

				// Size Size is the size of the persistent volume claim
				Size DatabaseCluster_Spec_Engine_Storage_Size `json:"size"`
			} `json:"storage"`

			// Type Type is the engine type
			Type DatabaseClusterSpecEngineType `json:"type"`

			// UserSecretsName UserSecretsName is the name of the secret containing the user secrets
			UserSecretsName *string `json:"userSecretsName,omitempty"`

			// Version Version is the engine version
			Version *string `json:"version,omitempty"`
		} `json:"engine"`

		// EngineFeatures EngineFeatures represents configuration of additional features for the database engine.
		EngineFeatures *struct {
			// Psmdb PSMDB represents additional features for the PSMDB engine.
			Psmdb *struct {
				// SplitHorizonDnsConfigName SplitHorizonDNSConfigName is the name of a SplitHorizonDNSConfig CR.
				// The SplitHorizonDNSConfig must be created in the same namespace as the DatabaseCluster.
				SplitHorizonDnsConfigName *string `json:"splitHorizonDnsConfigName,omitempty"`
			} `json:"psmdb,omitempty"`
		} `json:"engineFeatures,omitempty"`

		// Monitoring Monitoring is the monitoring configuration
		Monitoring *struct {
			// MonitoringConfigName MonitoringConfigName is the name of a monitoringConfig CR.
			// The MonitoringConfig must be created in the same namespace as the DatabaseCluster.
			MonitoringConfigName *string `json:"monitoringConfigName,omitempty"`

			// Resources Resources defines resource limitations for the monitoring.
			Resources *struct {
				// Claims Claims lists the names of resources, defined in spec.resourceClaims,
				// that are used by this container.
				//
				// This is an alpha field and requires enabling the
				// DynamicResourceAllocation feature gate.
				//
				// This field is immutable. It can only be set for containers.
				Claims *[]struct {
					// Name Name must match the name of one entry in pod.spec.resourceClaims of
					// the Pod where this field is used. It makes that resource available
					// inside a container.
					Name string `json:"name"`

					// Request Request is the name chosen for a request in the referenced claim.
					// If empty, everything from the claim is made available, otherwise
					// only the result of this request.
					Request *string `json:"request,omitempty"`
				} `json:"claims,omitempty"`

				// Limits Limits describes the maximum amount of compute resources allowed.
				// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
				Limits *map[string]DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties `json:"limits,omitempty"`

				// Requests Requests describes the minimum amount of compute resources required.
				// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
				// otherwise to an implementation-defined value. Requests cannot exceed Limits.
				// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
				Requests *map[string]DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties `json:"requests,omitempty"`
			} `json:"resources,omitempty"`
		} `json:"monitoring,omitempty"`

		// Paused Paused is a flag to stop the cluster
		Paused *bool `json:"paused,omitempty"`

		// PodSchedulingPolicyName PodSchedulingPolicyName is the name of the PodSchedulingPolicy CR that defines rules for DB cluster pods allocation across the cluster.
		PodSchedulingPolicyName *string `json:"podSchedulingPolicyName,omitempty"`

		// Proxy Proxy is the proxy specification. If not set, an appropriate
		// proxy specification will be applied for the given engine. A
		// common use case for setting this field is to control the
		// external access to the database cluster.
		Proxy *struct {
			// Config Config is the proxy configuration
			Config *string `json:"config,omitempty"`

			// Expose Expose is the proxy expose configuration
			Expose *struct {
				// IpSourceRanges IPSourceRanges is the list of IP source ranges (CIDR notation)
				// to allow access from. If not set, there is no limitations
				IpSourceRanges *[]string `json:"ipSourceRanges,omitempty"`

				// LoadBalancerConfigName LoadBalancerConfigName is the name of load balancer config if applied
				LoadBalancerConfigName *string `json:"loadBalancerConfigName,omitempty"`

				// Type Type is the expose type, can be internal or external
				Type *DatabaseClusterSpecProxyExposeType `json:"type,omitempty"`
			} `json:"expose,omitempty"`

			// Replicas Replicas is the number of proxy replicas
			Replicas *int32 `json:"replicas,omitempty"`

			// Resources Resources are the resource limits for each proxy replica.
			// If not set, resource limits are not imposed
			Resources *struct {
				// Cpu CPU is the CPU resource requirements
				Cpu *DatabaseCluster_Spec_Proxy_Resources_Cpu `json:"cpu,omitempty"`

				// Memory Memory is the memory resource requirements
				Memory *DatabaseCluster_Spec_Proxy_Resources_Memory `json:"memory,omitempty"`
			} `json:"resources,omitempty"`

			// Type Type is the proxy type
			Type *DatabaseClusterSpecProxyType `json:"type,omitempty"`
		} `json:"proxy,omitempty"`

		// Sharding Sharding is the sharding configuration. PSMDB-only
		Sharding *struct {
			// ConfigServer ConfigServer represents the sharding configuration server settings
			ConfigServer struct {
				// Replicas Replicas is the amount of configServers
				Replicas int32 `json:"replicas"`
			} `json:"configServer"`

			// Enabled Enabled defines if the sharding is enabled
			Enabled bool `json:"enabled"`

			// Shards Shards defines the number of shards
			Shards int32 `json:"shards"`
		} `json:"sharding,omitempty"`
	} `json:"spec,omitempty"`

	// Status DatabaseClusterStatus defines the observed state of DatabaseCluster.
	Status *struct {
		// ActiveStorage ActiveStorage is the storage used in cluster (psmdb only)
		ActiveStorage *string `json:"activeStorage,omitempty"`

		// Conditions Conditions contains the observed conditions of the DatabaseCluster.
		Conditions *[]struct {
			// LastTransitionTime lastTransitionTime is the last time the condition transitioned from one status to another.
			// This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
			LastTransitionTime time.Time `json:"lastTransitionTime"`

			// Message message is a human readable message indicating details about the transition.
			// This may be an empty string.
			Message string `json:"message"`

			// ObservedGeneration observedGeneration represents the .metadata.generation that the condition was set based upon.
			// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
			// with respect to the current state of the instance.
			ObservedGeneration *int64 `json:"observedGeneration,omitempty"`

			// Reason reason contains a programmatic identifier indicating the reason for the condition's last transition.
			// Producers of specific condition types may define expected values and meanings for this field,
			// and whether the values are considered a guaranteed API.
			// The value should be a CamelCase string.
			// This field may not be empty.
			Reason string `json:"reason"`

			// Status status of the condition, one of True, False, Unknown.
			Status DatabaseClusterStatusConditionsStatus `json:"status"`

			// Type type of condition in CamelCase or in foo.example.com/CamelCase.
			Type string `json:"type"`
		} `json:"conditions,omitempty"`

		// CrVersion CRVersion is the observed version of the CR used with the underlying operator.
		CrVersion *string `json:"crVersion,omitempty"`

		// DataImportJobName DataImportJobName refers to the DataImportJob that is used to import data into the cluster.
		// This is set only when .spec.dataSource.dataImport is set.
		DataImportJobName *string `json:"dataImportJobName,omitempty"`

		// Details Details provides full status of the upstream cluster as a plain text.
		Details *string `json:"details,omitempty"`

		// EngineFeatures EngineFeaturesStatus represents additional features statuses for the database engine.
		EngineFeatures *struct {
			// Psmdb PSMDB represents additional features statuses for the PSMDB engine.
			Psmdb *struct {
				// SplitHorizon SplitHorizon status of SplitHorizon feature.
				SplitHorizon *struct {
					// Domains SplitHorizon status of SplitHorizon feature.
					Domains *[]struct {
						// Domain Domain is the SplitHorizon domain name.
						Domain *string `json:"domain,omitempty"`

						// PrivateIP PrivateIP is the private IP address for the domain.
						PrivateIP *string `json:"privateIP,omitempty"`

						// PublicIP PublicIP is the public IP address for the domain.
						PublicIP *string `json:"publicIP,omitempty"`
					} `json:"domains,omitempty"`

					// Host ConnectionURL is the connection URL using SplitHorizon domains.
					Host *string `json:"host,omitempty"`
				} `json:"splitHorizon,omitempty"`
			} `json:"psmdb,omitempty"`
		} `json:"engineFeatures,omitempty"`

		// Hostname Hostname is the hostname where the cluster can be reached
		Hostname *string `json:"hostname,omitempty"`

		// Message Message is extra information about the cluster
		Message *string `json:"message,omitempty"`

		// ObservedGeneration ObservedGeneration is the most recent generation observed for this DatabaseCluster.
		ObservedGeneration *int64 `json:"observedGeneration,omitempty"`

		// Port Port is the port where the cluster can be reached
		Port *int32 `json:"port,omitempty"`

		// Ready Ready is the number of ready pods
		Ready *int32 `json:"ready,omitempty"`

		// RecommendedCRVersion RecommendedCRVersion indicates the target version that the underlying CR should be updated to.
		// When this field is set, it means the CR is running an outdated version and requires an update.
		// The following restrictions apply until the CR is updated to the recommended version:
		// - The operator cannot be upgraded
		// - The database engine version (.spec.engine.version) cannot be modified
		// This field is unset when the CR is already running at the latest recommended version.
		RecommendedCRVersion *string `json:"recommendedCRVersion,omitempty"`

		// Size Size is the total number of pods
		Size *int32 `json:"size,omitempty"`

		// Status Status is the status of the cluster
		Status *string `json:"status,omitempty"`
	} `json:"status,omitempty"`
}

DatabaseCluster DatabaseCluster is the Schema for the databaseclusters API.

type DatabaseClusterBackup

type DatabaseClusterBackup struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec DatabaseClusterBackupSpec defines the desired state of DatabaseClusterBackup.
	Spec *struct {
		// BackupStorageName BackupStorageName is the name of the BackupStorage used for backups.
		BackupStorageName string `json:"backupStorageName"`

		// DbClusterName DBClusterName is the original database cluster name.
		DbClusterName string `json:"dbClusterName"`
	} `json:"spec,omitempty"`

	// Status DatabaseClusterBackupStatus defines the observed state of DatabaseClusterBackup.
	Status *struct {
		// Completed Completed is the time when the job was completed.
		Completed *time.Time `json:"completed,omitempty"`

		// Created Created is the timestamp of the upstream backup's creation.
		Created *time.Time `json:"created,omitempty"`

		// Destination Destination is the full path to the backup.
		Destination *string `json:"destination,omitempty"`

		// Gaps Gaps identifies if there are gaps detected in the PITR logs
		Gaps bool `json:"gaps"`

		// LatestRestorableTime LatestRestorableTime is the latest time that can be used for PITR restore
		LatestRestorableTime *time.Time `json:"latestRestorableTime,omitempty"`

		// State State is the DatabaseBackup state.
		State *string `json:"state,omitempty"`
	} `json:"status,omitempty"`
}

DatabaseClusterBackup DatabaseClusterBackup is the Schema for the databaseclusterbackups API.

type DatabaseClusterBackupList

type DatabaseClusterBackupList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string                  `json:"apiVersion,omitempty"`
	Items      *[]DatabaseClusterBackup `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

DatabaseClusterBackupList DatabaseClusterBackupList is an object that contains the list of the existing database cluster backups.

type DatabaseClusterComponent added in v1.0.0

type DatabaseClusterComponent struct {
	Containers *[]DatabaseClusterComponentContainer `json:"containers,omitempty"`
	Name       *string                              `json:"name,omitempty"`
	Ready      *string                              `json:"ready,omitempty"`
	Restarts   *int                                 `json:"restarts,omitempty"`
	Started    *string                              `json:"started,omitempty"`
	Status     *string                              `json:"status,omitempty"`
	Type       *string                              `json:"type,omitempty"`
}

DatabaseClusterComponent defines model for .

type DatabaseClusterComponentContainer added in v1.0.0

type DatabaseClusterComponentContainer struct {
	Name     *string `json:"name,omitempty"`
	Ready    *bool   `json:"ready,omitempty"`
	Restarts *int    `json:"restarts,omitempty"`
	Started  *string `json:"started,omitempty"`
	Status   *string `json:"status,omitempty"`
}

DatabaseClusterComponentContainer defines model for DatabaseClusterComponentContainer.

type DatabaseClusterComponents added in v1.0.0

type DatabaseClusterComponents = []DatabaseClusterComponent

DatabaseClusterComponents components related data

type DatabaseClusterCredential

type DatabaseClusterCredential struct {
	ConnectionUrl *string `json:"connectionUrl,omitempty"`
	Password      *string `json:"password,omitempty"`
	Username      *string `json:"username,omitempty"`
}

DatabaseClusterCredential kubernetes object

type DatabaseClusterList

type DatabaseClusterList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string            `json:"apiVersion,omitempty"`
	Items      *[]DatabaseCluster `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

DatabaseClusterList DatabaseClusterList is an object that contains the list of the existing database clusters.

type DatabaseClusterPitr

type DatabaseClusterPitr struct {
	EarliestDate *time.Time `json:"earliestDate,omitempty"`

	// Gaps indicates if there are pitr logs gaps detected after this backup was taken
	Gaps             *bool      `json:"gaps,omitempty"`
	LatestBackupName *string    `json:"latestBackupName,omitempty"`
	LatestDate       *time.Time `json:"latestDate,omitempty"`
}

DatabaseClusterPitr point-in-time recovery related data

type DatabaseClusterRestore

type DatabaseClusterRestore struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec DatabaseClusterRestoreSpec defines the desired state of DatabaseClusterRestore.
	Spec *struct {
		// DataSource DataSource defines a data source for restoration.
		DataSource struct {
			// BackupSource BackupSource is the backup source to restore from
			BackupSource *struct {
				// BackupStorageName BackupStorageName is the name of the BackupStorage used for backups.
				BackupStorageName string `json:"backupStorageName"`

				// Path Path is the path to the backup file/directory.
				Path string `json:"path"`
			} `json:"backupSource,omitempty"`

			// DbClusterBackupName DBClusterBackupName is the name of the DB cluster backup to restore from
			DbClusterBackupName *string `json:"dbClusterBackupName,omitempty"`

			// Pitr PITR is the point-in-time recovery configuration
			Pitr *struct {
				// Date Date is the UTC date to recover to. The accepted format: "2006-01-02T15:04:05Z".
				Date *string `json:"date,omitempty"`

				// Type Type is the type of recovery.
				Type *DatabaseClusterRestoreSpecDataSourcePitrType `json:"type,omitempty"`
			} `json:"pitr,omitempty"`
		} `json:"dataSource"`

		// DbClusterName DBClusterName defines the cluster name to restore.
		DbClusterName string `json:"dbClusterName"`
	} `json:"spec,omitempty"`

	// Status DatabaseClusterRestoreStatus defines the observed state of DatabaseClusterRestore.
	Status *struct {
		Completed *time.Time `json:"completed,omitempty"`
		Message   *string    `json:"message,omitempty"`

		// State RestoreState represents state of restoration.
		State *string `json:"state,omitempty"`
	} `json:"status,omitempty"`
}

DatabaseClusterRestore DatabaseClusterRestore is the Schema for the databaseclusterrestores API.

type DatabaseClusterRestoreList

type DatabaseClusterRestoreList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string                   `json:"apiVersion,omitempty"`
	Items      *[]DatabaseClusterRestore `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

DatabaseClusterRestoreList DatabaseClusterRestoreList is an object that contains the list of the existing database cluster restores.

type DatabaseClusterRestoreSpecDataSourcePitrType

type DatabaseClusterRestoreSpecDataSourcePitrType string

DatabaseClusterRestoreSpecDataSourcePitrType Type is the type of recovery.

const (
	DatabaseClusterRestoreSpecDataSourcePitrTypeDate   DatabaseClusterRestoreSpecDataSourcePitrType = "date"
	DatabaseClusterRestoreSpecDataSourcePitrTypeLatest DatabaseClusterRestoreSpecDataSourcePitrType = "latest"
)

Defines values for DatabaseClusterRestoreSpecDataSourcePitrType.

type DatabaseClusterSpecDataSourcePitrType

type DatabaseClusterSpecDataSourcePitrType string

DatabaseClusterSpecDataSourcePitrType Type is the type of recovery.

const (
	DatabaseClusterSpecDataSourcePitrTypeDate   DatabaseClusterSpecDataSourcePitrType = "date"
	DatabaseClusterSpecDataSourcePitrTypeLatest DatabaseClusterSpecDataSourcePitrType = "latest"
)

Defines values for DatabaseClusterSpecDataSourcePitrType.

type DatabaseClusterSpecEngineResourcesCpu0

type DatabaseClusterSpecEngineResourcesCpu0 = int

DatabaseClusterSpecEngineResourcesCpu0 defines model for .

type DatabaseClusterSpecEngineResourcesCpu1

type DatabaseClusterSpecEngineResourcesCpu1 = string

DatabaseClusterSpecEngineResourcesCpu1 defines model for .

type DatabaseClusterSpecEngineResourcesMemory0

type DatabaseClusterSpecEngineResourcesMemory0 = int

DatabaseClusterSpecEngineResourcesMemory0 defines model for .

type DatabaseClusterSpecEngineResourcesMemory1

type DatabaseClusterSpecEngineResourcesMemory1 = string

DatabaseClusterSpecEngineResourcesMemory1 defines model for .

type DatabaseClusterSpecEngineStorageSize0

type DatabaseClusterSpecEngineStorageSize0 = int

DatabaseClusterSpecEngineStorageSize0 defines model for .

type DatabaseClusterSpecEngineStorageSize1

type DatabaseClusterSpecEngineStorageSize1 = string

DatabaseClusterSpecEngineStorageSize1 defines model for .

type DatabaseClusterSpecEngineType

type DatabaseClusterSpecEngineType string

DatabaseClusterSpecEngineType Type is the engine type

const (
	DatabaseClusterSpecEngineTypePostgresql DatabaseClusterSpecEngineType = "postgresql"
	DatabaseClusterSpecEngineTypePsmdb      DatabaseClusterSpecEngineType = "psmdb"
	DatabaseClusterSpecEngineTypePxc        DatabaseClusterSpecEngineType = "pxc"
)

Defines values for DatabaseClusterSpecEngineType.

type DatabaseClusterSpecMonitoringResourcesLimits0

type DatabaseClusterSpecMonitoringResourcesLimits0 = int

DatabaseClusterSpecMonitoringResourcesLimits0 defines model for .

type DatabaseClusterSpecMonitoringResourcesLimits1

type DatabaseClusterSpecMonitoringResourcesLimits1 = string

DatabaseClusterSpecMonitoringResourcesLimits1 defines model for .

type DatabaseClusterSpecMonitoringResourcesRequests0

type DatabaseClusterSpecMonitoringResourcesRequests0 = int

DatabaseClusterSpecMonitoringResourcesRequests0 defines model for .

type DatabaseClusterSpecMonitoringResourcesRequests1

type DatabaseClusterSpecMonitoringResourcesRequests1 = string

DatabaseClusterSpecMonitoringResourcesRequests1 defines model for .

type DatabaseClusterSpecProxyExposeType

type DatabaseClusterSpecProxyExposeType string

DatabaseClusterSpecProxyExposeType Type is the expose type, can be internal or external

const (
	External DatabaseClusterSpecProxyExposeType = "external"
	Internal DatabaseClusterSpecProxyExposeType = "internal"
)

Defines values for DatabaseClusterSpecProxyExposeType.

type DatabaseClusterSpecProxyResourcesCpu0

type DatabaseClusterSpecProxyResourcesCpu0 = int

DatabaseClusterSpecProxyResourcesCpu0 defines model for .

type DatabaseClusterSpecProxyResourcesCpu1

type DatabaseClusterSpecProxyResourcesCpu1 = string

DatabaseClusterSpecProxyResourcesCpu1 defines model for .

type DatabaseClusterSpecProxyResourcesMemory0

type DatabaseClusterSpecProxyResourcesMemory0 = int

DatabaseClusterSpecProxyResourcesMemory0 defines model for .

type DatabaseClusterSpecProxyResourcesMemory1

type DatabaseClusterSpecProxyResourcesMemory1 = string

DatabaseClusterSpecProxyResourcesMemory1 defines model for .

type DatabaseClusterSpecProxyType

type DatabaseClusterSpecProxyType string

DatabaseClusterSpecProxyType Type is the proxy type

const (
	Haproxy   DatabaseClusterSpecProxyType = "haproxy"
	Mongos    DatabaseClusterSpecProxyType = "mongos"
	Pgbouncer DatabaseClusterSpecProxyType = "pgbouncer"
	Proxysql  DatabaseClusterSpecProxyType = "proxysql"
)

Defines values for DatabaseClusterSpecProxyType.

type DatabaseClusterStatusConditionsStatus added in v1.6.0

type DatabaseClusterStatusConditionsStatus string

DatabaseClusterStatusConditionsStatus status of the condition, one of True, False, Unknown.

Defines values for DatabaseClusterStatusConditionsStatus.

type DatabaseCluster_Spec_Engine_Resources_Cpu

type DatabaseCluster_Spec_Engine_Resources_Cpu struct {
	// contains filtered or unexported fields
}

DatabaseCluster_Spec_Engine_Resources_Cpu CPU is the CPU resource requirements

func (DatabaseCluster_Spec_Engine_Resources_Cpu) AsDatabaseClusterSpecEngineResourcesCpu0

func (t DatabaseCluster_Spec_Engine_Resources_Cpu) AsDatabaseClusterSpecEngineResourcesCpu0() (DatabaseClusterSpecEngineResourcesCpu0, error)

AsDatabaseClusterSpecEngineResourcesCpu0 returns the union data inside the DatabaseCluster_Spec_Engine_Resources_Cpu as a DatabaseClusterSpecEngineResourcesCpu0

func (DatabaseCluster_Spec_Engine_Resources_Cpu) AsDatabaseClusterSpecEngineResourcesCpu1

func (t DatabaseCluster_Spec_Engine_Resources_Cpu) AsDatabaseClusterSpecEngineResourcesCpu1() (DatabaseClusterSpecEngineResourcesCpu1, error)

AsDatabaseClusterSpecEngineResourcesCpu1 returns the union data inside the DatabaseCluster_Spec_Engine_Resources_Cpu as a DatabaseClusterSpecEngineResourcesCpu1

func (*DatabaseCluster_Spec_Engine_Resources_Cpu) FromDatabaseClusterSpecEngineResourcesCpu0

func (t *DatabaseCluster_Spec_Engine_Resources_Cpu) FromDatabaseClusterSpecEngineResourcesCpu0(v DatabaseClusterSpecEngineResourcesCpu0) error

FromDatabaseClusterSpecEngineResourcesCpu0 overwrites any union data inside the DatabaseCluster_Spec_Engine_Resources_Cpu as the provided DatabaseClusterSpecEngineResourcesCpu0

func (*DatabaseCluster_Spec_Engine_Resources_Cpu) FromDatabaseClusterSpecEngineResourcesCpu1

func (t *DatabaseCluster_Spec_Engine_Resources_Cpu) FromDatabaseClusterSpecEngineResourcesCpu1(v DatabaseClusterSpecEngineResourcesCpu1) error

FromDatabaseClusterSpecEngineResourcesCpu1 overwrites any union data inside the DatabaseCluster_Spec_Engine_Resources_Cpu as the provided DatabaseClusterSpecEngineResourcesCpu1

func (DatabaseCluster_Spec_Engine_Resources_Cpu) MarshalJSON

func (*DatabaseCluster_Spec_Engine_Resources_Cpu) MergeDatabaseClusterSpecEngineResourcesCpu0

func (t *DatabaseCluster_Spec_Engine_Resources_Cpu) MergeDatabaseClusterSpecEngineResourcesCpu0(v DatabaseClusterSpecEngineResourcesCpu0) error

MergeDatabaseClusterSpecEngineResourcesCpu0 performs a merge with any union data inside the DatabaseCluster_Spec_Engine_Resources_Cpu, using the provided DatabaseClusterSpecEngineResourcesCpu0

func (*DatabaseCluster_Spec_Engine_Resources_Cpu) MergeDatabaseClusterSpecEngineResourcesCpu1

func (t *DatabaseCluster_Spec_Engine_Resources_Cpu) MergeDatabaseClusterSpecEngineResourcesCpu1(v DatabaseClusterSpecEngineResourcesCpu1) error

MergeDatabaseClusterSpecEngineResourcesCpu1 performs a merge with any union data inside the DatabaseCluster_Spec_Engine_Resources_Cpu, using the provided DatabaseClusterSpecEngineResourcesCpu1

func (*DatabaseCluster_Spec_Engine_Resources_Cpu) UnmarshalJSON

type DatabaseCluster_Spec_Engine_Resources_Memory

type DatabaseCluster_Spec_Engine_Resources_Memory struct {
	// contains filtered or unexported fields
}

DatabaseCluster_Spec_Engine_Resources_Memory Memory is the memory resource requirements

func (DatabaseCluster_Spec_Engine_Resources_Memory) AsDatabaseClusterSpecEngineResourcesMemory0

func (t DatabaseCluster_Spec_Engine_Resources_Memory) AsDatabaseClusterSpecEngineResourcesMemory0() (DatabaseClusterSpecEngineResourcesMemory0, error)

AsDatabaseClusterSpecEngineResourcesMemory0 returns the union data inside the DatabaseCluster_Spec_Engine_Resources_Memory as a DatabaseClusterSpecEngineResourcesMemory0

func (DatabaseCluster_Spec_Engine_Resources_Memory) AsDatabaseClusterSpecEngineResourcesMemory1

func (t DatabaseCluster_Spec_Engine_Resources_Memory) AsDatabaseClusterSpecEngineResourcesMemory1() (DatabaseClusterSpecEngineResourcesMemory1, error)

AsDatabaseClusterSpecEngineResourcesMemory1 returns the union data inside the DatabaseCluster_Spec_Engine_Resources_Memory as a DatabaseClusterSpecEngineResourcesMemory1

func (*DatabaseCluster_Spec_Engine_Resources_Memory) FromDatabaseClusterSpecEngineResourcesMemory0

func (t *DatabaseCluster_Spec_Engine_Resources_Memory) FromDatabaseClusterSpecEngineResourcesMemory0(v DatabaseClusterSpecEngineResourcesMemory0) error

FromDatabaseClusterSpecEngineResourcesMemory0 overwrites any union data inside the DatabaseCluster_Spec_Engine_Resources_Memory as the provided DatabaseClusterSpecEngineResourcesMemory0

func (*DatabaseCluster_Spec_Engine_Resources_Memory) FromDatabaseClusterSpecEngineResourcesMemory1

func (t *DatabaseCluster_Spec_Engine_Resources_Memory) FromDatabaseClusterSpecEngineResourcesMemory1(v DatabaseClusterSpecEngineResourcesMemory1) error

FromDatabaseClusterSpecEngineResourcesMemory1 overwrites any union data inside the DatabaseCluster_Spec_Engine_Resources_Memory as the provided DatabaseClusterSpecEngineResourcesMemory1

func (DatabaseCluster_Spec_Engine_Resources_Memory) MarshalJSON

func (*DatabaseCluster_Spec_Engine_Resources_Memory) MergeDatabaseClusterSpecEngineResourcesMemory0

func (t *DatabaseCluster_Spec_Engine_Resources_Memory) MergeDatabaseClusterSpecEngineResourcesMemory0(v DatabaseClusterSpecEngineResourcesMemory0) error

MergeDatabaseClusterSpecEngineResourcesMemory0 performs a merge with any union data inside the DatabaseCluster_Spec_Engine_Resources_Memory, using the provided DatabaseClusterSpecEngineResourcesMemory0

func (*DatabaseCluster_Spec_Engine_Resources_Memory) MergeDatabaseClusterSpecEngineResourcesMemory1

func (t *DatabaseCluster_Spec_Engine_Resources_Memory) MergeDatabaseClusterSpecEngineResourcesMemory1(v DatabaseClusterSpecEngineResourcesMemory1) error

MergeDatabaseClusterSpecEngineResourcesMemory1 performs a merge with any union data inside the DatabaseCluster_Spec_Engine_Resources_Memory, using the provided DatabaseClusterSpecEngineResourcesMemory1

func (*DatabaseCluster_Spec_Engine_Resources_Memory) UnmarshalJSON

type DatabaseCluster_Spec_Engine_Storage_Size

type DatabaseCluster_Spec_Engine_Storage_Size struct {
	// contains filtered or unexported fields
}

DatabaseCluster_Spec_Engine_Storage_Size Size is the size of the persistent volume claim

func (DatabaseCluster_Spec_Engine_Storage_Size) AsDatabaseClusterSpecEngineStorageSize0

func (t DatabaseCluster_Spec_Engine_Storage_Size) AsDatabaseClusterSpecEngineStorageSize0() (DatabaseClusterSpecEngineStorageSize0, error)

AsDatabaseClusterSpecEngineStorageSize0 returns the union data inside the DatabaseCluster_Spec_Engine_Storage_Size as a DatabaseClusterSpecEngineStorageSize0

func (DatabaseCluster_Spec_Engine_Storage_Size) AsDatabaseClusterSpecEngineStorageSize1

func (t DatabaseCluster_Spec_Engine_Storage_Size) AsDatabaseClusterSpecEngineStorageSize1() (DatabaseClusterSpecEngineStorageSize1, error)

AsDatabaseClusterSpecEngineStorageSize1 returns the union data inside the DatabaseCluster_Spec_Engine_Storage_Size as a DatabaseClusterSpecEngineStorageSize1

func (*DatabaseCluster_Spec_Engine_Storage_Size) FromDatabaseClusterSpecEngineStorageSize0

func (t *DatabaseCluster_Spec_Engine_Storage_Size) FromDatabaseClusterSpecEngineStorageSize0(v DatabaseClusterSpecEngineStorageSize0) error

FromDatabaseClusterSpecEngineStorageSize0 overwrites any union data inside the DatabaseCluster_Spec_Engine_Storage_Size as the provided DatabaseClusterSpecEngineStorageSize0

func (*DatabaseCluster_Spec_Engine_Storage_Size) FromDatabaseClusterSpecEngineStorageSize1

func (t *DatabaseCluster_Spec_Engine_Storage_Size) FromDatabaseClusterSpecEngineStorageSize1(v DatabaseClusterSpecEngineStorageSize1) error

FromDatabaseClusterSpecEngineStorageSize1 overwrites any union data inside the DatabaseCluster_Spec_Engine_Storage_Size as the provided DatabaseClusterSpecEngineStorageSize1

func (DatabaseCluster_Spec_Engine_Storage_Size) MarshalJSON

func (*DatabaseCluster_Spec_Engine_Storage_Size) MergeDatabaseClusterSpecEngineStorageSize0

func (t *DatabaseCluster_Spec_Engine_Storage_Size) MergeDatabaseClusterSpecEngineStorageSize0(v DatabaseClusterSpecEngineStorageSize0) error

MergeDatabaseClusterSpecEngineStorageSize0 performs a merge with any union data inside the DatabaseCluster_Spec_Engine_Storage_Size, using the provided DatabaseClusterSpecEngineStorageSize0

func (*DatabaseCluster_Spec_Engine_Storage_Size) MergeDatabaseClusterSpecEngineStorageSize1

func (t *DatabaseCluster_Spec_Engine_Storage_Size) MergeDatabaseClusterSpecEngineStorageSize1(v DatabaseClusterSpecEngineStorageSize1) error

MergeDatabaseClusterSpecEngineStorageSize1 performs a merge with any union data inside the DatabaseCluster_Spec_Engine_Storage_Size, using the provided DatabaseClusterSpecEngineStorageSize1

func (*DatabaseCluster_Spec_Engine_Storage_Size) UnmarshalJSON

func (t *DatabaseCluster_Spec_Engine_Storage_Size) UnmarshalJSON(b []byte) error

type DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties

type DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties struct {
	// contains filtered or unexported fields
}

DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties defines model for DatabaseCluster.Spec.Monitoring.Resources.Limits.AdditionalProperties.

func (DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) AsDatabaseClusterSpecMonitoringResourcesLimits0

AsDatabaseClusterSpecMonitoringResourcesLimits0 returns the union data inside the DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties as a DatabaseClusterSpecMonitoringResourcesLimits0

func (DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) AsDatabaseClusterSpecMonitoringResourcesLimits1

AsDatabaseClusterSpecMonitoringResourcesLimits1 returns the union data inside the DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties as a DatabaseClusterSpecMonitoringResourcesLimits1

func (*DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) FromDatabaseClusterSpecMonitoringResourcesLimits0

FromDatabaseClusterSpecMonitoringResourcesLimits0 overwrites any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties as the provided DatabaseClusterSpecMonitoringResourcesLimits0

func (*DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) FromDatabaseClusterSpecMonitoringResourcesLimits1

FromDatabaseClusterSpecMonitoringResourcesLimits1 overwrites any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties as the provided DatabaseClusterSpecMonitoringResourcesLimits1

func (DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) MarshalJSON

func (*DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) MergeDatabaseClusterSpecMonitoringResourcesLimits0

MergeDatabaseClusterSpecMonitoringResourcesLimits0 performs a merge with any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties, using the provided DatabaseClusterSpecMonitoringResourcesLimits0

func (*DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) MergeDatabaseClusterSpecMonitoringResourcesLimits1

MergeDatabaseClusterSpecMonitoringResourcesLimits1 performs a merge with any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties, using the provided DatabaseClusterSpecMonitoringResourcesLimits1

func (*DatabaseCluster_Spec_Monitoring_Resources_Limits_AdditionalProperties) UnmarshalJSON

type DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties

type DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties struct {
	// contains filtered or unexported fields
}

DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties defines model for DatabaseCluster.Spec.Monitoring.Resources.Requests.AdditionalProperties.

func (DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) AsDatabaseClusterSpecMonitoringResourcesRequests0

AsDatabaseClusterSpecMonitoringResourcesRequests0 returns the union data inside the DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties as a DatabaseClusterSpecMonitoringResourcesRequests0

func (DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) AsDatabaseClusterSpecMonitoringResourcesRequests1

AsDatabaseClusterSpecMonitoringResourcesRequests1 returns the union data inside the DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties as a DatabaseClusterSpecMonitoringResourcesRequests1

func (*DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) FromDatabaseClusterSpecMonitoringResourcesRequests0

FromDatabaseClusterSpecMonitoringResourcesRequests0 overwrites any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties as the provided DatabaseClusterSpecMonitoringResourcesRequests0

func (*DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) FromDatabaseClusterSpecMonitoringResourcesRequests1

FromDatabaseClusterSpecMonitoringResourcesRequests1 overwrites any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties as the provided DatabaseClusterSpecMonitoringResourcesRequests1

func (DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) MarshalJSON

func (*DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) MergeDatabaseClusterSpecMonitoringResourcesRequests0

MergeDatabaseClusterSpecMonitoringResourcesRequests0 performs a merge with any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties, using the provided DatabaseClusterSpecMonitoringResourcesRequests0

func (*DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) MergeDatabaseClusterSpecMonitoringResourcesRequests1

MergeDatabaseClusterSpecMonitoringResourcesRequests1 performs a merge with any union data inside the DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties, using the provided DatabaseClusterSpecMonitoringResourcesRequests1

func (*DatabaseCluster_Spec_Monitoring_Resources_Requests_AdditionalProperties) UnmarshalJSON

type DatabaseCluster_Spec_Proxy_Resources_Cpu

type DatabaseCluster_Spec_Proxy_Resources_Cpu struct {
	// contains filtered or unexported fields
}

DatabaseCluster_Spec_Proxy_Resources_Cpu CPU is the CPU resource requirements

func (DatabaseCluster_Spec_Proxy_Resources_Cpu) AsDatabaseClusterSpecProxyResourcesCpu0

func (t DatabaseCluster_Spec_Proxy_Resources_Cpu) AsDatabaseClusterSpecProxyResourcesCpu0() (DatabaseClusterSpecProxyResourcesCpu0, error)

AsDatabaseClusterSpecProxyResourcesCpu0 returns the union data inside the DatabaseCluster_Spec_Proxy_Resources_Cpu as a DatabaseClusterSpecProxyResourcesCpu0

func (DatabaseCluster_Spec_Proxy_Resources_Cpu) AsDatabaseClusterSpecProxyResourcesCpu1

func (t DatabaseCluster_Spec_Proxy_Resources_Cpu) AsDatabaseClusterSpecProxyResourcesCpu1() (DatabaseClusterSpecProxyResourcesCpu1, error)

AsDatabaseClusterSpecProxyResourcesCpu1 returns the union data inside the DatabaseCluster_Spec_Proxy_Resources_Cpu as a DatabaseClusterSpecProxyResourcesCpu1

func (*DatabaseCluster_Spec_Proxy_Resources_Cpu) FromDatabaseClusterSpecProxyResourcesCpu0

func (t *DatabaseCluster_Spec_Proxy_Resources_Cpu) FromDatabaseClusterSpecProxyResourcesCpu0(v DatabaseClusterSpecProxyResourcesCpu0) error

FromDatabaseClusterSpecProxyResourcesCpu0 overwrites any union data inside the DatabaseCluster_Spec_Proxy_Resources_Cpu as the provided DatabaseClusterSpecProxyResourcesCpu0

func (*DatabaseCluster_Spec_Proxy_Resources_Cpu) FromDatabaseClusterSpecProxyResourcesCpu1

func (t *DatabaseCluster_Spec_Proxy_Resources_Cpu) FromDatabaseClusterSpecProxyResourcesCpu1(v DatabaseClusterSpecProxyResourcesCpu1) error

FromDatabaseClusterSpecProxyResourcesCpu1 overwrites any union data inside the DatabaseCluster_Spec_Proxy_Resources_Cpu as the provided DatabaseClusterSpecProxyResourcesCpu1

func (DatabaseCluster_Spec_Proxy_Resources_Cpu) MarshalJSON

func (*DatabaseCluster_Spec_Proxy_Resources_Cpu) MergeDatabaseClusterSpecProxyResourcesCpu0

func (t *DatabaseCluster_Spec_Proxy_Resources_Cpu) MergeDatabaseClusterSpecProxyResourcesCpu0(v DatabaseClusterSpecProxyResourcesCpu0) error

MergeDatabaseClusterSpecProxyResourcesCpu0 performs a merge with any union data inside the DatabaseCluster_Spec_Proxy_Resources_Cpu, using the provided DatabaseClusterSpecProxyResourcesCpu0

func (*DatabaseCluster_Spec_Proxy_Resources_Cpu) MergeDatabaseClusterSpecProxyResourcesCpu1

func (t *DatabaseCluster_Spec_Proxy_Resources_Cpu) MergeDatabaseClusterSpecProxyResourcesCpu1(v DatabaseClusterSpecProxyResourcesCpu1) error

MergeDatabaseClusterSpecProxyResourcesCpu1 performs a merge with any union data inside the DatabaseCluster_Spec_Proxy_Resources_Cpu, using the provided DatabaseClusterSpecProxyResourcesCpu1

func (*DatabaseCluster_Spec_Proxy_Resources_Cpu) UnmarshalJSON

func (t *DatabaseCluster_Spec_Proxy_Resources_Cpu) UnmarshalJSON(b []byte) error

type DatabaseCluster_Spec_Proxy_Resources_Memory

type DatabaseCluster_Spec_Proxy_Resources_Memory struct {
	// contains filtered or unexported fields
}

DatabaseCluster_Spec_Proxy_Resources_Memory Memory is the memory resource requirements

func (DatabaseCluster_Spec_Proxy_Resources_Memory) AsDatabaseClusterSpecProxyResourcesMemory0

func (t DatabaseCluster_Spec_Proxy_Resources_Memory) AsDatabaseClusterSpecProxyResourcesMemory0() (DatabaseClusterSpecProxyResourcesMemory0, error)

AsDatabaseClusterSpecProxyResourcesMemory0 returns the union data inside the DatabaseCluster_Spec_Proxy_Resources_Memory as a DatabaseClusterSpecProxyResourcesMemory0

func (DatabaseCluster_Spec_Proxy_Resources_Memory) AsDatabaseClusterSpecProxyResourcesMemory1

func (t DatabaseCluster_Spec_Proxy_Resources_Memory) AsDatabaseClusterSpecProxyResourcesMemory1() (DatabaseClusterSpecProxyResourcesMemory1, error)

AsDatabaseClusterSpecProxyResourcesMemory1 returns the union data inside the DatabaseCluster_Spec_Proxy_Resources_Memory as a DatabaseClusterSpecProxyResourcesMemory1

func (*DatabaseCluster_Spec_Proxy_Resources_Memory) FromDatabaseClusterSpecProxyResourcesMemory0

func (t *DatabaseCluster_Spec_Proxy_Resources_Memory) FromDatabaseClusterSpecProxyResourcesMemory0(v DatabaseClusterSpecProxyResourcesMemory0) error

FromDatabaseClusterSpecProxyResourcesMemory0 overwrites any union data inside the DatabaseCluster_Spec_Proxy_Resources_Memory as the provided DatabaseClusterSpecProxyResourcesMemory0

func (*DatabaseCluster_Spec_Proxy_Resources_Memory) FromDatabaseClusterSpecProxyResourcesMemory1

func (t *DatabaseCluster_Spec_Proxy_Resources_Memory) FromDatabaseClusterSpecProxyResourcesMemory1(v DatabaseClusterSpecProxyResourcesMemory1) error

FromDatabaseClusterSpecProxyResourcesMemory1 overwrites any union data inside the DatabaseCluster_Spec_Proxy_Resources_Memory as the provided DatabaseClusterSpecProxyResourcesMemory1

func (DatabaseCluster_Spec_Proxy_Resources_Memory) MarshalJSON

func (*DatabaseCluster_Spec_Proxy_Resources_Memory) MergeDatabaseClusterSpecProxyResourcesMemory0

func (t *DatabaseCluster_Spec_Proxy_Resources_Memory) MergeDatabaseClusterSpecProxyResourcesMemory0(v DatabaseClusterSpecProxyResourcesMemory0) error

MergeDatabaseClusterSpecProxyResourcesMemory0 performs a merge with any union data inside the DatabaseCluster_Spec_Proxy_Resources_Memory, using the provided DatabaseClusterSpecProxyResourcesMemory0

func (*DatabaseCluster_Spec_Proxy_Resources_Memory) MergeDatabaseClusterSpecProxyResourcesMemory1

func (t *DatabaseCluster_Spec_Proxy_Resources_Memory) MergeDatabaseClusterSpecProxyResourcesMemory1(v DatabaseClusterSpecProxyResourcesMemory1) error

MergeDatabaseClusterSpecProxyResourcesMemory1 performs a merge with any union data inside the DatabaseCluster_Spec_Proxy_Resources_Memory, using the provided DatabaseClusterSpecProxyResourcesMemory1

func (*DatabaseCluster_Spec_Proxy_Resources_Memory) UnmarshalJSON

type DatabaseEngine

type DatabaseEngine struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec DatabaseEngineSpec is a spec for a database engine.
	Spec *struct {
		AllowedVersions *[]string `json:"allowedVersions,omitempty"`

		// SecretKeys SecretKeys contains the definition of the various Secrets that
		// the given DBEngine supports.
		// This information acts like metadata for the Everest UI to guide the users
		// in filling out the correct Secret keys for their clusters.
		SecretKeys *struct {
			// User User secret keys are used to store the details of the users.
			User *[]struct {
				// Description Description is a human-readable description of the Secret key.
				Description *string `json:"description,omitempty"`

				// Name Name is the name of the Secret key.
				Name *string `json:"name,omitempty"`
			} `json:"user,omitempty"`
		} `json:"secretKeys,omitempty"`

		// Type EngineType stands for the supported database engines. Right now it's only pxc
		// and psmdb. However, it can be ps, pg and any other source.
		Type string `json:"type"`
	} `json:"spec,omitempty"`

	// Status DatabaseEngineStatus defines the observed state of DatabaseEngine.
	Status *struct {
		// AvailableVersions Versions struct represents available versions of database engine components.
		AvailableVersions *struct {
			// Backup ComponentsMap is a map of database engine components.
			Backup *map[string]struct {
				Critical  *bool   `json:"critical,omitempty"`
				ImageHash *string `json:"imageHash,omitempty"`
				ImagePath *string `json:"imagePath,omitempty"`

				// Status ComponentStatus represents status of the database engine component.
				Status *string `json:"status,omitempty"`
			} `json:"backup,omitempty"`

			// Engine ComponentsMap is a map of database engine components.
			Engine *map[string]struct {
				Critical  *bool   `json:"critical,omitempty"`
				ImageHash *string `json:"imageHash,omitempty"`
				ImagePath *string `json:"imagePath,omitempty"`

				// Status ComponentStatus represents status of the database engine component.
				Status *string `json:"status,omitempty"`
			} `json:"engine,omitempty"`
			Proxy *map[string]map[string]struct {
				Critical  *bool   `json:"critical,omitempty"`
				ImageHash *string `json:"imageHash,omitempty"`
				ImagePath *string `json:"imagePath,omitempty"`

				// Status ComponentStatus represents status of the database engine component.
				Status *string `json:"status,omitempty"`
			} `json:"proxy,omitempty"`
			Tools *map[string]map[string]struct {
				Critical  *bool   `json:"critical,omitempty"`
				ImageHash *string `json:"imageHash,omitempty"`
				ImagePath *string `json:"imagePath,omitempty"`

				// Status ComponentStatus represents status of the database engine component.
				Status *string `json:"status,omitempty"`
			} `json:"tools,omitempty"`
		} `json:"availableVersions,omitempty"`

		// OperatorUpgrade OperatorUpgrade contains the status of the operator upgrade.
		OperatorUpgrade *struct {
			// InstallPlanRef InstallPlanRef is a reference to the InstallPlan object created for the operator upgrade.
			//
			// We do not recommended approving this InstallPlan directly from the Kubernetes API.
			// This is because this InstallPlan may also upgrade other operators in the namespace and that
			// can have unintended consequences.
			// This behaviour is not a bug from Everest, but an unfortunate limitation of OLM.
			// We suggest using the Everest API/UI to handle operator upgrades, which will perform a series
			// of checks and safely upgrade all operators in the namespace.
			InstallPlanRef *struct {
				// Name Name of the referent.
				// This field is effectively required, but due to backwards compatibility is
				// allowed to be empty. Instances of this type with an empty value here are
				// almost certainly wrong.
				// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
				Name *string `json:"name,omitempty"`
			} `json:"installPlanRef,omitempty"`
			Message *string `json:"message,omitempty"`

			// Phase UpgradePhase represents the phase of the operator upgrade.
			Phase     *string    `json:"phase,omitempty"`
			StartedAt *time.Time `json:"startedAt,omitempty"`

			// TargetVersion TargetVersion is the version to which the operator should be upgraded.
			TargetVersion *string `json:"targetVersion,omitempty"`
		} `json:"operatorUpgrade,omitempty"`
		OperatorVersion         *string `json:"operatorVersion,omitempty"`
		PendingOperatorUpgrades *[]struct {
			// InstallPlanRef InstallPlanRef is a reference to the InstallPlan object created for the operator upgrade.
			//
			// We do not recommended approving this InstallPlan directly from the Kubernetes API.
			// This is because this InstallPlan may also upgrade other operators in the namespace and that
			// can have unintended consequences.
			// This behaviour is not a bug from Everest, but an unfortunate limitation of OLM.
			// We suggest using the Everest API/UI to handle operator upgrades, which will perform a series
			// of checks and safely upgrade all operators in the namespace.
			InstallPlanRef *struct {
				// Name Name of the referent.
				// This field is effectively required, but due to backwards compatibility is
				// allowed to be empty. Instances of this type with an empty value here are
				// almost certainly wrong.
				// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
				Name *string `json:"name,omitempty"`
			} `json:"installPlanRef,omitempty"`

			// TargetVersion TargetVersion is the version to which the operator should be upgraded.
			TargetVersion *string `json:"targetVersion,omitempty"`
		} `json:"pendingOperatorUpgrades,omitempty"`

		// Status EngineState represents state of engine in a k8s cluster.
		Status *string `json:"status,omitempty"`
	} `json:"status,omitempty"`
}

DatabaseEngine DatabaseEngine is the Schema for the databaseengines API.

type DatabaseEngineList

type DatabaseEngineList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string           `json:"apiVersion,omitempty"`
	Items      *[]DatabaseEngine `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

DatabaseEngineList DatabaseEngineList is an object that contains the list of the existing database engines.

type DeleteDatabaseClusterBackupParams added in v0.10.0

type DeleteDatabaseClusterBackupParams struct {
	// CleanupBackupStorage If set, remove the backed up data from storage
	CleanupBackupStorage *bool `form:"cleanupBackupStorage,omitempty" json:"cleanupBackupStorage,omitempty"`
}

DeleteDatabaseClusterBackupParams defines parameters for DeleteDatabaseClusterBackup.

type DeleteDatabaseClusterParams added in v0.10.0

type DeleteDatabaseClusterParams struct {
	// CleanupBackupStorage If set, remove the backed up data from storage
	CleanupBackupStorage *bool `form:"cleanupBackupStorage,omitempty" json:"cleanupBackupStorage,omitempty"`
}

DeleteDatabaseClusterParams defines parameters for DeleteDatabaseCluster.

type EchoRouter

type EchoRouter interface {
	CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
}

This is a simple interface which specifies echo.Route addition functions which are present on both echo.Echo and echo.Group, since we want to allow using either of them for path registration

type Error

type Error struct {
	Message *string `json:"message,omitempty"`
}

Error Error response

func (Error) MarshalJSON

func (e Error) MarshalJSON() ([]byte, error)

MarshalJSON capitalizes Error.Message and marshals it to byte array.

type IoK8sApimachineryPkgApisMetaV1ListMeta

type IoK8sApimachineryPkgApisMetaV1ListMeta struct {
	// Continue continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.
	Continue *string `json:"continue,omitempty"`

	// RemainingItemCount remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.
	RemainingItemCount *int64 `json:"remainingItemCount,omitempty"`

	// ResourceVersion String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
	ResourceVersion *string `json:"resourceVersion,omitempty"`

	// SelfLink selfLink is a URL representing this object. Populated by the system. Read-only.
	//
	// DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.
	SelfLink *string `json:"selfLink,omitempty"`
}

IoK8sApimachineryPkgApisMetaV1ListMeta ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

type IoK8sApimachineryPkgApisMetaV1StatusCause

type IoK8sApimachineryPkgApisMetaV1StatusCause struct {
	// Field The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed.  Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.
	//
	// Examples:
	//   "name" - the field "name" on the current resource
	//   "items[0].name" - the field "name" on the first array entry in "items"
	Field *string `json:"field,omitempty"`

	// Message A human-readable description of the cause of the error.  This field may be presented as-is to a reader.
	Message *string `json:"message,omitempty"`

	// Reason A machine-readable description of the cause of the error. If this value is empty there is no information available.
	Reason *string `json:"reason,omitempty"`
}

IoK8sApimachineryPkgApisMetaV1StatusCause StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.

type IoK8sApimachineryPkgApisMetaV1StatusDetailsV2

type IoK8sApimachineryPkgApisMetaV1StatusDetailsV2 struct {
	// Causes The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.
	Causes *[]IoK8sApimachineryPkgApisMetaV1StatusCause `json:"causes,omitempty"`

	// Group The group attribute of the resource associated with the status StatusReason.
	Group *string `json:"group,omitempty"`

	// Kind The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind *string `json:"kind,omitempty"`

	// Name The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).
	Name *string `json:"name,omitempty"`

	// RetryAfterSeconds If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.
	RetryAfterSeconds *int32 `json:"retryAfterSeconds,omitempty"`

	// Uid UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids
	Uid *string `json:"uid,omitempty"`
}

IoK8sApimachineryPkgApisMetaV1StatusDetailsV2 StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

type IoK8sApimachineryPkgApisMetaV1StatusV2

type IoK8sApimachineryPkgApisMetaV1StatusV2 struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Code Suggested HTTP return code for this status, 0 if not set.
	Code *int32 `json:"code,omitempty"`

	// Details StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.
	Details *IoK8sApimachineryPkgApisMetaV1StatusDetailsV2 `json:"details,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind *string `json:"kind,omitempty"`

	// Message A human-readable description of the status of this operation.
	Message *string `json:"message,omitempty"`

	// Metadata ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
	Metadata *IoK8sApimachineryPkgApisMetaV1ListMeta `json:"metadata,omitempty"`

	// Reason A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.
	Reason *string `json:"reason,omitempty"`

	// Status Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	Status *string `json:"status,omitempty"`
}

IoK8sApimachineryPkgApisMetaV1StatusV2 Status is a return value for calls that don't return other objects.

type KubernetesClusterInfo

type KubernetesClusterInfo struct {
	ClusterType string `json:"clusterType"`

	// StorageClassNames List of storage class names that are available in the cluster.
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	StorageClassNames []string        `json:"storageClassNames"`
	StorageClasses    *[]StorageClass `json:"storageClasses,omitempty"`
}

KubernetesClusterInfo kubernetes cluster info

type KubernetesClusterResources

type KubernetesClusterResources struct {
	Available ResourcesAvailable `json:"available"`
	Capacity  ResourcesCapacity  `json:"capacity"`
}

KubernetesClusterResources kubernetes cluster resources

type ListDataImportersParams added in v1.8.0

type ListDataImportersParams struct {
	// SupportedEngines Filter data importers by supported database engine type. Accepts a comma-separated list.
	SupportedEngines *[]string `form:"supportedEngines,omitempty" json:"supportedEngines,omitempty"`
}

ListDataImportersParams defines parameters for ListDataImporters.

type ListPodSchedulingPolicyParams added in v1.7.0

type ListPodSchedulingPolicyParams struct {
	// EngineType Database engine type that Pod Scheduling Policy is applicable to.
	EngineType *ListPodSchedulingPolicyParamsEngineType `form:"engineType,omitempty" json:"engineType,omitempty"`

	// HasRules Return list of Pod Scheduling Policy that has at least 1 rule.
	HasRules *bool `form:"hasRules,omitempty" json:"hasRules,omitempty"`
}

ListPodSchedulingPolicyParams defines parameters for ListPodSchedulingPolicy.

type ListPodSchedulingPolicyParamsEngineType added in v1.7.0

type ListPodSchedulingPolicyParamsEngineType string

ListPodSchedulingPolicyParamsEngineType defines parameters for ListPodSchedulingPolicy.

Defines values for ListPodSchedulingPolicyParamsEngineType.

type LoadBalancerConfig added in v1.9.0

type LoadBalancerConfig struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec LoadBalancerConfigSpec defines the desired state of LoadBalancerConfig.
	Spec *struct {
		// Annotations Annotations key-value pairs to apply as annotations to the load balancer
		Annotations *map[string]string `json:"annotations,omitempty"`
	} `json:"spec,omitempty"`

	// Status LoadBalancerConfigStatus defines the observed state of LoadBalancerConfig.
	Status *struct {
		// InUse InUse is a flag that indicates if the config is used by any DB cluster.
		InUse *bool `json:"inUse,omitempty"`

		// LastObservedGeneration LastObservedGeneration is the most recent generation observed for this LoadBalancerConfig.
		LastObservedGeneration *int64 `json:"lastObservedGeneration,omitempty"`
	} `json:"status,omitempty"`
}

LoadBalancerConfig LoadBalancerConfig is the Schema for the Load Balancer Config API.

type LoadBalancerConfigList added in v1.9.0

type LoadBalancerConfigList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string               `json:"apiVersion,omitempty"`
	Items      *[]LoadBalancerConfig `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

LoadBalancerConfigList LoadBalancerConfigList is an object that contains the list of the existing load balancer configs.

type MonitoringInstance

type MonitoringInstance = MonitoringInstanceBaseWithName

MonitoringInstance Monitoring instance information

func (*MonitoringInstance) FromCR added in v1.5.0

func (out *MonitoringInstance) FromCR(in *v1alpha1.MonitoringConfig)

type MonitoringInstanceBase

type MonitoringInstanceBase struct {
	// AllowedNamespaces List of namespaces allowed to use this monitoring instance
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllowedNamespaces *[]string                  `json:"allowedNamespaces,omitempty"`
	Type              MonitoringInstanceBaseType `json:"type,omitempty"`
	Url               string                     `json:"url,omitempty"`

	// VerifyTLS VerifyTLS is set to ensure TLS/SSL verification.
	VerifyTLS *bool `json:"verifyTLS,omitempty"`
}

MonitoringInstanceBase Monitoring instance information

type MonitoringInstanceBaseType

type MonitoringInstanceBaseType string

MonitoringInstanceBaseType defines model for MonitoringInstanceBase.Type.

const (
	MonitoringInstanceBaseTypePmm MonitoringInstanceBaseType = "pmm"
)

Defines values for MonitoringInstanceBaseType.

type MonitoringInstanceBaseWithName

type MonitoringInstanceBaseWithName struct {
	// AllowedNamespaces List of namespaces allowed to use this monitoring instance
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllowedNamespaces *[]string `json:"allowedNamespaces,omitempty"`

	// Name A user defined string name of the storage in the DNS name format https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
	Name      string                             `json:"name,omitempty"`
	Namespace string                             `json:"namespace,omitempty"`
	Type      MonitoringInstanceBaseWithNameType `json:"type,omitempty"`
	Url       string                             `json:"url,omitempty"`

	// VerifyTLS VerifyTLS is set to ensure TLS/SSL verification.
	VerifyTLS *bool `json:"verifyTLS,omitempty"`
}

MonitoringInstanceBaseWithName defines model for MonitoringInstanceBaseWithName.

type MonitoringInstanceBaseWithNameType

type MonitoringInstanceBaseWithNameType string

MonitoringInstanceBaseWithNameType defines model for MonitoringInstanceBaseWithName.Type.

const (
	MonitoringInstanceBaseWithNameTypePmm MonitoringInstanceBaseWithNameType = "pmm"
)

Defines values for MonitoringInstanceBaseWithNameType.

type MonitoringInstanceCreateParams

type MonitoringInstanceCreateParams struct {
	// AllowedNamespaces List of namespaces allowed to use this monitoring instance
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllowedNamespaces *[]string `json:"allowedNamespaces,omitempty"`

	// Name A user defined string name of the storage in the DNS name format https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
	Name      string                             `json:"name,omitempty"`
	Namespace string                             `json:"namespace,omitempty"`
	Pmm       *PMMMonitoringInstanceSpec         `json:"pmm,omitempty"`
	Type      MonitoringInstanceCreateParamsType `json:"type,omitempty"`
	Url       string                             `json:"url,omitempty"`

	// VerifyTLS VerifyTLS is set to ensure TLS/SSL verification.
	VerifyTLS *bool `json:"verifyTLS,omitempty"`
}

MonitoringInstanceCreateParams defines model for MonitoringInstanceCreateParams.

type MonitoringInstanceCreateParamsType

type MonitoringInstanceCreateParamsType string

MonitoringInstanceCreateParamsType defines model for MonitoringInstanceCreateParams.Type.

const (
	MonitoringInstanceCreateParamsTypePmm MonitoringInstanceCreateParamsType = "pmm"
)

Defines values for MonitoringInstanceCreateParamsType.

type MonitoringInstancePMM

type MonitoringInstancePMM struct {
	Pmm *PMMMonitoringInstanceSpec `json:"pmm,omitempty"`
}

MonitoringInstancePMM defines model for MonitoringInstancePMM.

type MonitoringInstanceUpdateParams

type MonitoringInstanceUpdateParams struct {
	// AllowedNamespaces List of namespaces allowed to use this monitoring instance
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllowedNamespaces *[]string                          `json:"allowedNamespaces,omitempty"`
	Pmm               *PMMMonitoringInstanceSpec         `json:"pmm,omitempty"`
	Type              MonitoringInstanceUpdateParamsType `json:"type,omitempty"`
	Url               string                             `json:"url,omitempty"`

	// VerifyTLS VerifyTLS is set to ensure TLS/SSL verification.
	VerifyTLS *bool `json:"verifyTLS,omitempty"`
}

MonitoringInstanceUpdateParams defines model for MonitoringInstanceUpdateParams.

type MonitoringInstanceUpdateParamsType

type MonitoringInstanceUpdateParamsType string

MonitoringInstanceUpdateParamsType defines model for MonitoringInstanceUpdateParams.Type.

const (
	MonitoringInstanceUpdateParamsTypePmm MonitoringInstanceUpdateParamsType = "pmm"
)

Defines values for MonitoringInstanceUpdateParamsType.

type MonitoringInstancesList

type MonitoringInstancesList = []MonitoringInstance

MonitoringInstancesList defines model for MonitoringInstancesList.

type NamespaceList

type NamespaceList = []string

NamespaceList defines model for NamespaceList.

type OIDCConfig added in v1.0.0

type OIDCConfig struct {
	// ClientId OIDC application clientID
	ClientId string `json:"clientId"`

	// IssuerURL OIDC provider url
	IssuerURL string `json:"issuerURL"`

	// Scopes OIDC scopes
	Scopes []string `json:"scopes"`
}

OIDCConfig Everest OIDC provider configuration

type PMMMonitoringInstanceSpec

type PMMMonitoringInstanceSpec struct {
	ApiKey   string `json:"apiKey,omitempty"`
	Password string `json:"password,omitempty"`
	User     string `json:"user,omitempty"`
}

PMMMonitoringInstanceSpec defines model for .

type PodSchedulingPolicy added in v1.7.0

type PodSchedulingPolicy struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec PodSchedulingPolicySpec defines the desired state of PodSchedulingPolicy.
	Spec *struct {
		// AffinityConfig AffinityConfig is a configuration for the affinity settings depending on the engine type.
		AffinityConfig *struct {
			// Postgresql PostgreSQL is the affinity configuration for the PostgreSQL DB clusters.
			Postgresql *struct {
				// Engine Engine is the affinity configuration for the DB Engine pods.
				Engine *struct {
					// NodeAffinity Describes node affinity scheduling rules for the pod.
					NodeAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node matches the corresponding matchExpressions; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// Preference A node selector term, associated with the corresponding weight.
							Preference struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"preference"`

							// Weight Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to an update), the system
						// may or may not try to eventually evict the pod from its node.
						RequiredDuringSchedulingIgnoredDuringExecution *struct {
							// NodeSelectorTerms Required. A list of node selector terms. The terms are ORed.
							NodeSelectorTerms []struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"nodeSelectorTerms"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"nodeAffinity,omitempty"`

					// PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
					PodAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAffinity,omitempty"`

					// PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
					PodAntiAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the anti-affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling anti-affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the anti-affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the anti-affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAntiAffinity,omitempty"`
				} `json:"engine,omitempty"`

				// Proxy Proxy is the affinity configuration for the DB Proxy pods.
				Proxy *struct {
					// NodeAffinity Describes node affinity scheduling rules for the pod.
					NodeAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node matches the corresponding matchExpressions; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// Preference A node selector term, associated with the corresponding weight.
							Preference struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"preference"`

							// Weight Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to an update), the system
						// may or may not try to eventually evict the pod from its node.
						RequiredDuringSchedulingIgnoredDuringExecution *struct {
							// NodeSelectorTerms Required. A list of node selector terms. The terms are ORed.
							NodeSelectorTerms []struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"nodeSelectorTerms"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"nodeAffinity,omitempty"`

					// PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
					PodAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAffinity,omitempty"`

					// PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
					PodAntiAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the anti-affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling anti-affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the anti-affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the anti-affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAntiAffinity,omitempty"`
				} `json:"proxy,omitempty"`
			} `json:"postgresql,omitempty"`

			// Psmdb PSMDB is the affinity configuration for the PSMDB DB clusters.
			Psmdb *struct {
				// ConfigServer ConfigServer is the affinity configuration for the DB Config Server pods.
				ConfigServer *struct {
					// NodeAffinity Describes node affinity scheduling rules for the pod.
					NodeAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node matches the corresponding matchExpressions; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// Preference A node selector term, associated with the corresponding weight.
							Preference struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"preference"`

							// Weight Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to an update), the system
						// may or may not try to eventually evict the pod from its node.
						RequiredDuringSchedulingIgnoredDuringExecution *struct {
							// NodeSelectorTerms Required. A list of node selector terms. The terms are ORed.
							NodeSelectorTerms []struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"nodeSelectorTerms"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"nodeAffinity,omitempty"`

					// PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
					PodAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAffinity,omitempty"`

					// PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
					PodAntiAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the anti-affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling anti-affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the anti-affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the anti-affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAntiAffinity,omitempty"`
				} `json:"configServer,omitempty"`

				// Engine Engine is the affinity configuration for the DB Engine pods.
				Engine *struct {
					// NodeAffinity Describes node affinity scheduling rules for the pod.
					NodeAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node matches the corresponding matchExpressions; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// Preference A node selector term, associated with the corresponding weight.
							Preference struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"preference"`

							// Weight Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to an update), the system
						// may or may not try to eventually evict the pod from its node.
						RequiredDuringSchedulingIgnoredDuringExecution *struct {
							// NodeSelectorTerms Required. A list of node selector terms. The terms are ORed.
							NodeSelectorTerms []struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"nodeSelectorTerms"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"nodeAffinity,omitempty"`

					// PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
					PodAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAffinity,omitempty"`

					// PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
					PodAntiAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the anti-affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling anti-affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the anti-affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the anti-affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAntiAffinity,omitempty"`
				} `json:"engine,omitempty"`

				// Proxy Proxy is the affinity configuration for the DB Proxy pods.
				Proxy *struct {
					// NodeAffinity Describes node affinity scheduling rules for the pod.
					NodeAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node matches the corresponding matchExpressions; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// Preference A node selector term, associated with the corresponding weight.
							Preference struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"preference"`

							// Weight Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to an update), the system
						// may or may not try to eventually evict the pod from its node.
						RequiredDuringSchedulingIgnoredDuringExecution *struct {
							// NodeSelectorTerms Required. A list of node selector terms. The terms are ORed.
							NodeSelectorTerms []struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"nodeSelectorTerms"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"nodeAffinity,omitempty"`

					// PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
					PodAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAffinity,omitempty"`

					// PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
					PodAntiAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the anti-affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling anti-affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the anti-affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the anti-affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAntiAffinity,omitempty"`
				} `json:"proxy,omitempty"`
			} `json:"psmdb,omitempty"`

			// Pxc PXC is the affinity configuration for the PXC DB clusters.
			Pxc *struct {
				// Engine Engine is the affinity configuration for the DB Engine pods.
				Engine *struct {
					// NodeAffinity Describes node affinity scheduling rules for the pod.
					NodeAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node matches the corresponding matchExpressions; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// Preference A node selector term, associated with the corresponding weight.
							Preference struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"preference"`

							// Weight Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to an update), the system
						// may or may not try to eventually evict the pod from its node.
						RequiredDuringSchedulingIgnoredDuringExecution *struct {
							// NodeSelectorTerms Required. A list of node selector terms. The terms are ORed.
							NodeSelectorTerms []struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"nodeSelectorTerms"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"nodeAffinity,omitempty"`

					// PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
					PodAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAffinity,omitempty"`

					// PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
					PodAntiAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the anti-affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling anti-affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the anti-affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the anti-affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAntiAffinity,omitempty"`
				} `json:"engine,omitempty"`

				// Proxy Proxy is the affinity configuration for the DB Proxy pods.
				Proxy *struct {
					// NodeAffinity Describes node affinity scheduling rules for the pod.
					NodeAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node matches the corresponding matchExpressions; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// Preference A node selector term, associated with the corresponding weight.
							Preference struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"preference"`

							// Weight Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to an update), the system
						// may or may not try to eventually evict the pod from its node.
						RequiredDuringSchedulingIgnoredDuringExecution *struct {
							// NodeSelectorTerms Required. A list of node selector terms. The terms are ORed.
							NodeSelectorTerms []struct {
								// MatchExpressions A list of node selector requirements by node's labels.
								MatchExpressions *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchFields A list of node selector requirements by node's fields.
								MatchFields *[]struct {
									// Key The label key that the selector applies to.
									Key string `json:"key"`

									// Operator Represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
									Operator string `json:"operator"`

									// Values An array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. If the operator is Gt or Lt, the values
									// array must have a single element, which will be interpreted as an integer.
									// This array is replaced during a strategic merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchFields,omitempty"`
							} `json:"nodeSelectorTerms"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"nodeAffinity,omitempty"`

					// PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
					PodAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAffinity,omitempty"`

					// PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
					PodAntiAffinity *struct {
						// PreferredDuringSchedulingIgnoredDuringExecution The scheduler will prefer to schedule pods to nodes that satisfy
						// the anti-affinity expressions specified by this field, but it may choose
						// a node that violates one or more of the expressions. The node that is
						// most preferred is the one with the greatest sum of weights, i.e.
						// for each node that meets all of the scheduling requirements (resource
						// request, requiredDuringScheduling anti-affinity expressions, etc.),
						// compute a sum by iterating through the elements of this field and adding
						// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
						// node(s) with the highest sum are the most preferred.
						PreferredDuringSchedulingIgnoredDuringExecution *[]struct {
							// PodAffinityTerm Required. A pod affinity term, associated with the corresponding weight.
							PodAffinityTerm struct {
								// LabelSelector A label query over a set of resources, in this case pods.
								// If it's null, this PodAffinityTerm matches with no Pods.
								LabelSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"labelSelector,omitempty"`

								// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
								// Also, matchLabelKeys cannot be set when labelSelector isn't set.
								MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

								// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
								// be taken into consideration. The keys are used to lookup values from the
								// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
								// to select the group of existing pods which pods will be taken into consideration
								// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
								// pod labels will be ignored. The default value is empty.
								// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
								// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
								MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

								// NamespaceSelector A label query over the set of namespaces that the term applies to.
								// The term is applied to the union of the namespaces selected by this field
								// and the ones listed in the namespaces field.
								// null selector and null or empty namespaces list means "this pod's namespace".
								// An empty selector ({}) matches all namespaces.
								NamespaceSelector *struct {
									// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
									MatchExpressions *[]struct {
										// Key key is the label key that the selector applies to.
										Key string `json:"key"`

										// Operator operator represents a key's relationship to a set of values.
										// Valid operators are In, NotIn, Exists and DoesNotExist.
										Operator string `json:"operator"`

										// Values values is an array of string values. If the operator is In or NotIn,
										// the values array must be non-empty. If the operator is Exists or DoesNotExist,
										// the values array must be empty. This array is replaced during a strategic
										// merge patch.
										Values *[]string `json:"values,omitempty"`
									} `json:"matchExpressions,omitempty"`

									// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
									// map is equivalent to an element of matchExpressions, whose key field is "key", the
									// operator is "In", and the values array contains only "value". The requirements are ANDed.
									MatchLabels *map[string]string `json:"matchLabels,omitempty"`
								} `json:"namespaceSelector,omitempty"`

								// Namespaces namespaces specifies a static list of namespace names that the term applies to.
								// The term is applied to the union of the namespaces listed in this field
								// and the ones selected by namespaceSelector.
								// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
								Namespaces *[]string `json:"namespaces,omitempty"`

								// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
								// the labelSelector in the specified namespaces, where co-located is defined as running on a node
								// whose value of the label with key topologyKey matches that of any node on which any of the
								// selected pods is running.
								// Empty topologyKey is not allowed.
								TopologyKey string `json:"topologyKey"`
							} `json:"podAffinityTerm"`

							// Weight weight associated with matching the corresponding podAffinityTerm,
							// in the range 1-100.
							Weight int32 `json:"weight"`
						} `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`

						// RequiredDuringSchedulingIgnoredDuringExecution If the anti-affinity requirements specified by this field are not met at
						// scheduling time, the pod will not be scheduled onto the node.
						// If the anti-affinity requirements specified by this field cease to be met
						// at some point during pod execution (e.g. due to a pod label update), the
						// system may or may not try to eventually evict the pod from its node.
						// When there are multiple elements, the lists of nodes corresponding to each
						// podAffinityTerm are intersected, i.e. all terms must be satisfied.
						RequiredDuringSchedulingIgnoredDuringExecution *[]struct {
							// LabelSelector A label query over a set of resources, in this case pods.
							// If it's null, this PodAffinityTerm matches with no Pods.
							LabelSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"labelSelector,omitempty"`

							// MatchLabelKeys MatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both matchLabelKeys and labelSelector.
							// Also, matchLabelKeys cannot be set when labelSelector isn't set.
							MatchLabelKeys *[]string `json:"matchLabelKeys,omitempty"`

							// MismatchLabelKeys MismatchLabelKeys is a set of pod label keys to select which pods will
							// be taken into consideration. The keys are used to lookup values from the
							// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
							// to select the group of existing pods which pods will be taken into consideration
							// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
							// pod labels will be ignored. The default value is empty.
							// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
							// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
							MismatchLabelKeys *[]string `json:"mismatchLabelKeys,omitempty"`

							// NamespaceSelector A label query over the set of namespaces that the term applies to.
							// The term is applied to the union of the namespaces selected by this field
							// and the ones listed in the namespaces field.
							// null selector and null or empty namespaces list means "this pod's namespace".
							// An empty selector ({}) matches all namespaces.
							NamespaceSelector *struct {
								// MatchExpressions matchExpressions is a list of label selector requirements. The requirements are ANDed.
								MatchExpressions *[]struct {
									// Key key is the label key that the selector applies to.
									Key string `json:"key"`

									// Operator operator represents a key's relationship to a set of values.
									// Valid operators are In, NotIn, Exists and DoesNotExist.
									Operator string `json:"operator"`

									// Values values is an array of string values. If the operator is In or NotIn,
									// the values array must be non-empty. If the operator is Exists or DoesNotExist,
									// the values array must be empty. This array is replaced during a strategic
									// merge patch.
									Values *[]string `json:"values,omitempty"`
								} `json:"matchExpressions,omitempty"`

								// MatchLabels matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
								// map is equivalent to an element of matchExpressions, whose key field is "key", the
								// operator is "In", and the values array contains only "value". The requirements are ANDed.
								MatchLabels *map[string]string `json:"matchLabels,omitempty"`
							} `json:"namespaceSelector,omitempty"`

							// Namespaces namespaces specifies a static list of namespace names that the term applies to.
							// The term is applied to the union of the namespaces listed in this field
							// and the ones selected by namespaceSelector.
							// null or empty namespaces list and null namespaceSelector means "this pod's namespace".
							Namespaces *[]string `json:"namespaces,omitempty"`

							// TopologyKey This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
							// the labelSelector in the specified namespaces, where co-located is defined as running on a node
							// whose value of the label with key topologyKey matches that of any node on which any of the
							// selected pods is running.
							// Empty topologyKey is not allowed.
							TopologyKey string `json:"topologyKey"`
						} `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
					} `json:"podAntiAffinity,omitempty"`
				} `json:"proxy,omitempty"`
			} `json:"pxc,omitempty"`
		} `json:"affinityConfig,omitempty"`

		// EngineType EngineType is type of DB engine that this policy can be applied to.
		EngineType PodSchedulingPolicySpecEngineType `json:"engineType"`
	} `json:"spec,omitempty"`

	// Status PodSchedulingPolicyStatus defines the observed state of PodSchedulingPolicy.
	Status *struct {
		// InUse InUse is a flag that indicates if the policy is used by any DB cluster.
		InUse *bool `json:"inUse,omitempty"`

		// LastObservedGeneration LastObservedGeneration is the most recent generation observed for this PodSchedulingPolicy.
		LastObservedGeneration *int64 `json:"lastObservedGeneration,omitempty"`
	} `json:"status,omitempty"`
}

PodSchedulingPolicy PodSchedulingPolicy is the Schema for the Pod Scheduling Policy API.

type PodSchedulingPolicyList added in v1.7.0

type PodSchedulingPolicyList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string                `json:"apiVersion,omitempty"`
	Items      *[]PodSchedulingPolicy `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

PodSchedulingPolicyList PodSchedulingPolicyList is an object that contains the list of the existing pod scheduling policies.

type PodSchedulingPolicySpecEngineType added in v1.7.0

type PodSchedulingPolicySpecEngineType string

PodSchedulingPolicySpecEngineType EngineType is type of DB engine that this policy can be applied to.

const (
	PodSchedulingPolicySpecEngineTypePostgresql PodSchedulingPolicySpecEngineType = "postgresql"
	PodSchedulingPolicySpecEngineTypePsmdb      PodSchedulingPolicySpecEngineType = "psmdb"
	PodSchedulingPolicySpecEngineTypePxc        PodSchedulingPolicySpecEngineType = "pxc"
)

Defines values for PodSchedulingPolicySpecEngineType.

type ResourcesAvailable

type ResourcesAvailable struct {
	CpuMillis   *uint64 `json:"cpuMillis,omitempty"`
	DiskSize    *uint64 `json:"diskSize,omitempty"`
	MemoryBytes *uint64 `json:"memoryBytes,omitempty"`
}

ResourcesAvailable defines model for .

type ResourcesCapacity

type ResourcesCapacity struct {
	CpuMillis   *uint64 `json:"cpuMillis,omitempty"`
	DiskSize    *uint64 `json:"diskSize,omitempty"`
	MemoryBytes *uint64 `json:"memoryBytes,omitempty"`
}

ResourcesCapacity defines model for .

type Secret added in v1.8.0

type Secret struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Data Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
	Data *map[string][]byte `json:"data,omitempty"`

	// Immutable Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.
	Immutable *bool `json:"immutable,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind *string `json:"kind,omitempty"`

	// Metadata Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// StringData stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.
	StringData *map[string]string `json:"stringData,omitempty"`

	// Type Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types
	Type *string `json:"type,omitempty"`
}

Secret Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.

type ServerInterface

type ServerInterface interface {
	// Cluster info
	// (GET /cluster-info)
	GetKubernetesClusterInfo(ctx echo.Context) error
	// List data importers
	// (GET /data-importers)
	ListDataImporters(ctx echo.Context, params ListDataImportersParams) error
	// List load balancer configs
	// (GET /load-balancer-configs)
	ListLoadBalancerConfig(ctx echo.Context) error
	// Create load balancer config
	// (POST /load-balancer-configs)
	CreateLoadBalancerConfig(ctx echo.Context) error
	// Delete load balancer config
	// (DELETE /load-balancer-configs/{config-name})
	DeleteLoadBalancerConfig(ctx echo.Context, configName string) error
	// Get load balancer config
	// (GET /load-balancer-configs/{config-name})
	GetLoadBalancerConfig(ctx echo.Context, configName string) error
	// Update load balancer config
	// (PUT /load-balancer-configs/{config-name})
	UpdateLoadBalancerConfig(ctx echo.Context, configName string) error
	// Managed namespaces
	// (GET /namespaces)
	ListNamespaces(ctx echo.Context) error
	// List backup storages
	// (GET /namespaces/{namespace}/backup-storages)
	ListBackupStorages(ctx echo.Context, namespace string) error
	// Create backup storage
	// (POST /namespaces/{namespace}/backup-storages)
	CreateBackupStorage(ctx echo.Context, namespace string) error
	// Delete backup storage
	// (DELETE /namespaces/{namespace}/backup-storages/{name})
	DeleteBackupStorage(ctx echo.Context, namespace string, name string) error
	// Get backup storage
	// (GET /namespaces/{namespace}/backup-storages/{name})
	GetBackupStorage(ctx echo.Context, namespace string, name string) error
	// Update backup storage
	// (PATCH /namespaces/{namespace}/backup-storages/{name})
	UpdateBackupStorage(ctx echo.Context, namespace string, name string) error
	// Create database cluster backup
	// (POST /namespaces/{namespace}/database-cluster-backups)
	CreateDatabaseClusterBackup(ctx echo.Context, namespace string) error
	// Delete database cluster backup
	// (DELETE /namespaces/{namespace}/database-cluster-backups/{name})
	DeleteDatabaseClusterBackup(ctx echo.Context, namespace string, name string, params DeleteDatabaseClusterBackupParams) error
	// Get database cluster backup
	// (GET /namespaces/{namespace}/database-cluster-backups/{name})
	GetDatabaseClusterBackup(ctx echo.Context, namespace string, name string) error
	// Create database cluster restore
	// (POST /namespaces/{namespace}/database-cluster-restores)
	CreateDatabaseClusterRestore(ctx echo.Context, namespace string) error
	// Delete database cluster restore
	// (DELETE /namespaces/{namespace}/database-cluster-restores/{name})
	DeleteDatabaseClusterRestore(ctx echo.Context, namespace string, name string) error
	// Get database cluster restore
	// (GET /namespaces/{namespace}/database-cluster-restores/{name})
	GetDatabaseClusterRestore(ctx echo.Context, namespace string, name string) error
	// Update database cluster restore
	// (PUT /namespaces/{namespace}/database-cluster-restores/{name})
	UpdateDatabaseClusterRestore(ctx echo.Context, namespace string, name string) error
	// List database clusters
	// (GET /namespaces/{namespace}/database-clusters)
	ListDatabaseClusters(ctx echo.Context, namespace string) error
	// Create database cluster
	// (POST /namespaces/{namespace}/database-clusters)
	CreateDatabaseCluster(ctx echo.Context, namespace string) error
	// List database cluster backups
	// (GET /namespaces/{namespace}/database-clusters/{cluster-name}/backups)
	ListDatabaseClusterBackups(ctx echo.Context, namespace string, clusterName string) error
	// List database cluster restores
	// (GET /namespaces/{namespace}/database-clusters/{cluster-name}/restores)
	ListDatabaseClusterRestores(ctx echo.Context, namespace string, clusterName string) error
	// List data import jobs for a database cluster
	// (GET /namespaces/{namespace}/database-clusters/{dbName}/data-import-jobs)
	ListDataImportJobs(ctx echo.Context, namespace string, dbName string) error
	// Create a secret for the given database cluster
	// (POST /namespaces/{namespace}/database-clusters/{dbName}/secret)
	CreateDatabaseClusterSecret(ctx echo.Context, namespace string, dbName string, params CreateDatabaseClusterSecretParams) error
	// Delete database cluster
	// (DELETE /namespaces/{namespace}/database-clusters/{name})
	DeleteDatabaseCluster(ctx echo.Context, namespace string, name string, params DeleteDatabaseClusterParams) error
	// Get database cluster
	// (GET /namespaces/{namespace}/database-clusters/{name})
	GetDatabaseCluster(ctx echo.Context, namespace string, name string) error
	// Update database cluster
	// (PUT /namespaces/{namespace}/database-clusters/{name})
	UpdateDatabaseCluster(ctx echo.Context, namespace string, name string) error
	// Get database cluster components
	// (GET /namespaces/{namespace}/database-clusters/{name}/components)
	GetDatabaseClusterComponents(ctx echo.Context, namespace string, name string) error
	// Get database cluster credentials
	// (GET /namespaces/{namespace}/database-clusters/{name}/credentials)
	GetDatabaseClusterCredentials(ctx echo.Context, namespace string, name string) error
	// Get the Point-in-Time recovery info
	// (GET /namespaces/{namespace}/database-clusters/{name}/pitr)
	GetDatabaseClusterPitr(ctx echo.Context, namespace string, name string) error
	// List database engines
	// (GET /namespaces/{namespace}/database-engines)
	ListDatabaseEngines(ctx echo.Context, namespace string) error
	// Get upgrade plan
	// (GET /namespaces/{namespace}/database-engines/upgrade-plan)
	GetUpgradePlan(ctx echo.Context, namespace string) error
	// Upgrade database engine operators
	// (POST /namespaces/{namespace}/database-engines/upgrade-plan/approval)
	ApproveUpgradePlan(ctx echo.Context, namespace string) error
	// Get database engine
	// (GET /namespaces/{namespace}/database-engines/{name})
	GetDatabaseEngine(ctx echo.Context, namespace string, name string) error
	// Update database engine
	// (PUT /namespaces/{namespace}/database-engines/{name})
	UpdateDatabaseEngine(ctx echo.Context, namespace string, name string) error
	// List Split-Horizon DNS Config instances.
	// (GET /namespaces/{namespace}/engine-features/split-horizon-dns-configs)
	ListSplitHorizonDNSConfigs(ctx echo.Context, namespace string) error
	// Create Split-Horizon DNS Config for PSMDB.
	// (POST /namespaces/{namespace}/engine-features/split-horizon-dns-configs)
	CreateSplitHorizonDNSConfig(ctx echo.Context, namespace string) error
	// Delete Split-Horizon DNS Config instance.
	// (DELETE /namespaces/{namespace}/engine-features/split-horizon-dns-configs/{name})
	DeleteSplitHorizonDNSConfig(ctx echo.Context, namespace string, name string) error
	// Get Split-Horizon DNS Config instance.
	// (GET /namespaces/{namespace}/engine-features/split-horizon-dns-configs/{name})
	GetSplitHorizonDNSConfig(ctx echo.Context, namespace string, name string) error
	// Update Split-Horizon DNS Config instance.
	// (PATCH /namespaces/{namespace}/engine-features/split-horizon-dns-configs/{name})
	UpdateSplitHorizonDNSConfig(ctx echo.Context, namespace string, name string) error
	// List monitoring instances
	// (GET /namespaces/{namespace}/monitoring-instances)
	ListMonitoringInstances(ctx echo.Context, namespace string) error
	// Create monitoring instance
	// (POST /namespaces/{namespace}/monitoring-instances)
	CreateMonitoringInstance(ctx echo.Context, namespace string) error
	// Delete monitoring instnace
	// (DELETE /namespaces/{namespace}/monitoring-instances/{name})
	DeleteMonitoringInstance(ctx echo.Context, namespace string, name string) error
	// Get monitoring instance
	// (GET /namespaces/{namespace}/monitoring-instances/{name})
	GetMonitoringInstance(ctx echo.Context, namespace string, name string) error
	// Update monitoring instance
	// (PATCH /namespaces/{namespace}/monitoring-instances/{name})
	UpdateMonitoringInstance(ctx echo.Context, namespace string, name string) error
	// Get user permissions
	// (GET /permissions)
	GetUserPermissions(ctx echo.Context) error
	// List pod scheduling policies
	// (GET /pod-scheduling-policies)
	ListPodSchedulingPolicy(ctx echo.Context, params ListPodSchedulingPolicyParams) error
	// Create pod scheduling policy
	// (POST /pod-scheduling-policies)
	CreatePodSchedulingPolicy(ctx echo.Context) error
	// Delete pod scheduling policy
	// (DELETE /pod-scheduling-policies/{policy-name})
	DeletePodSchedulingPolicy(ctx echo.Context, policyName string) error
	// Get pod scheduling policy
	// (GET /pod-scheduling-policies/{policy-name})
	GetPodSchedulingPolicy(ctx echo.Context, policyName string) error
	// Update pod scheduling policy
	// (PUT /pod-scheduling-policies/{policy-name})
	UpdatePodSchedulingPolicy(ctx echo.Context, policyName string) error
	// Cluster resources
	// (GET /resources)
	GetKubernetesClusterResources(ctx echo.Context) error
	// Everest API Logout
	// (DELETE /session)
	DeleteSession(ctx echo.Context) error
	// Everest API Login
	// (POST /session)
	CreateSession(ctx echo.Context) error
	// Settings
	// (GET /settings)
	GetSettings(ctx echo.Context) error
	// Version
	// (GET /version)
	VersionInfo(ctx echo.Context) error
}

ServerInterface represents all server handlers.

type ServerInterfaceWrapper

type ServerInterfaceWrapper struct {
	Handler ServerInterface
}

ServerInterfaceWrapper converts echo contexts to parameters.

func (*ServerInterfaceWrapper) ApproveUpgradePlan added in v1.1.0

func (w *ServerInterfaceWrapper) ApproveUpgradePlan(ctx echo.Context) error

ApproveUpgradePlan converts echo context to params.

func (*ServerInterfaceWrapper) CreateBackupStorage

func (w *ServerInterfaceWrapper) CreateBackupStorage(ctx echo.Context) error

CreateBackupStorage converts echo context to params.

func (*ServerInterfaceWrapper) CreateDatabaseCluster

func (w *ServerInterfaceWrapper) CreateDatabaseCluster(ctx echo.Context) error

CreateDatabaseCluster converts echo context to params.

func (*ServerInterfaceWrapper) CreateDatabaseClusterBackup

func (w *ServerInterfaceWrapper) CreateDatabaseClusterBackup(ctx echo.Context) error

CreateDatabaseClusterBackup converts echo context to params.

func (*ServerInterfaceWrapper) CreateDatabaseClusterRestore

func (w *ServerInterfaceWrapper) CreateDatabaseClusterRestore(ctx echo.Context) error

CreateDatabaseClusterRestore converts echo context to params.

func (*ServerInterfaceWrapper) CreateDatabaseClusterSecret added in v1.8.0

func (w *ServerInterfaceWrapper) CreateDatabaseClusterSecret(ctx echo.Context) error

CreateDatabaseClusterSecret converts echo context to params.

func (*ServerInterfaceWrapper) CreateLoadBalancerConfig added in v1.9.0

func (w *ServerInterfaceWrapper) CreateLoadBalancerConfig(ctx echo.Context) error

CreateLoadBalancerConfig converts echo context to params.

func (*ServerInterfaceWrapper) CreateMonitoringInstance

func (w *ServerInterfaceWrapper) CreateMonitoringInstance(ctx echo.Context) error

CreateMonitoringInstance converts echo context to params.

func (*ServerInterfaceWrapper) CreatePodSchedulingPolicy added in v1.7.0

func (w *ServerInterfaceWrapper) CreatePodSchedulingPolicy(ctx echo.Context) error

CreatePodSchedulingPolicy converts echo context to params.

func (*ServerInterfaceWrapper) CreateSession added in v1.0.0

func (w *ServerInterfaceWrapper) CreateSession(ctx echo.Context) error

CreateSession converts echo context to params.

func (*ServerInterfaceWrapper) CreateSplitHorizonDNSConfig added in v1.10.0

func (w *ServerInterfaceWrapper) CreateSplitHorizonDNSConfig(ctx echo.Context) error

CreateSplitHorizonDNSConfig converts echo context to params.

func (*ServerInterfaceWrapper) DeleteBackupStorage

func (w *ServerInterfaceWrapper) DeleteBackupStorage(ctx echo.Context) error

DeleteBackupStorage converts echo context to params.

func (*ServerInterfaceWrapper) DeleteDatabaseCluster

func (w *ServerInterfaceWrapper) DeleteDatabaseCluster(ctx echo.Context) error

DeleteDatabaseCluster converts echo context to params.

func (*ServerInterfaceWrapper) DeleteDatabaseClusterBackup

func (w *ServerInterfaceWrapper) DeleteDatabaseClusterBackup(ctx echo.Context) error

DeleteDatabaseClusterBackup converts echo context to params.

func (*ServerInterfaceWrapper) DeleteDatabaseClusterRestore

func (w *ServerInterfaceWrapper) DeleteDatabaseClusterRestore(ctx echo.Context) error

DeleteDatabaseClusterRestore converts echo context to params.

func (*ServerInterfaceWrapper) DeleteLoadBalancerConfig added in v1.9.0

func (w *ServerInterfaceWrapper) DeleteLoadBalancerConfig(ctx echo.Context) error

DeleteLoadBalancerConfig converts echo context to params.

func (*ServerInterfaceWrapper) DeleteMonitoringInstance

func (w *ServerInterfaceWrapper) DeleteMonitoringInstance(ctx echo.Context) error

DeleteMonitoringInstance converts echo context to params.

func (*ServerInterfaceWrapper) DeletePodSchedulingPolicy added in v1.7.0

func (w *ServerInterfaceWrapper) DeletePodSchedulingPolicy(ctx echo.Context) error

DeletePodSchedulingPolicy converts echo context to params.

func (*ServerInterfaceWrapper) DeleteSession added in v1.7.0

func (w *ServerInterfaceWrapper) DeleteSession(ctx echo.Context) error

DeleteSession converts echo context to params.

func (*ServerInterfaceWrapper) DeleteSplitHorizonDNSConfig added in v1.10.0

func (w *ServerInterfaceWrapper) DeleteSplitHorizonDNSConfig(ctx echo.Context) error

DeleteSplitHorizonDNSConfig converts echo context to params.

func (*ServerInterfaceWrapper) GetBackupStorage

func (w *ServerInterfaceWrapper) GetBackupStorage(ctx echo.Context) error

GetBackupStorage converts echo context to params.

func (*ServerInterfaceWrapper) GetDatabaseCluster

func (w *ServerInterfaceWrapper) GetDatabaseCluster(ctx echo.Context) error

GetDatabaseCluster converts echo context to params.

func (*ServerInterfaceWrapper) GetDatabaseClusterBackup

func (w *ServerInterfaceWrapper) GetDatabaseClusterBackup(ctx echo.Context) error

GetDatabaseClusterBackup converts echo context to params.

func (*ServerInterfaceWrapper) GetDatabaseClusterComponents added in v1.0.0

func (w *ServerInterfaceWrapper) GetDatabaseClusterComponents(ctx echo.Context) error

GetDatabaseClusterComponents converts echo context to params.

func (*ServerInterfaceWrapper) GetDatabaseClusterCredentials

func (w *ServerInterfaceWrapper) GetDatabaseClusterCredentials(ctx echo.Context) error

GetDatabaseClusterCredentials converts echo context to params.

func (*ServerInterfaceWrapper) GetDatabaseClusterPitr

func (w *ServerInterfaceWrapper) GetDatabaseClusterPitr(ctx echo.Context) error

GetDatabaseClusterPitr converts echo context to params.

func (*ServerInterfaceWrapper) GetDatabaseClusterRestore

func (w *ServerInterfaceWrapper) GetDatabaseClusterRestore(ctx echo.Context) error

GetDatabaseClusterRestore converts echo context to params.

func (*ServerInterfaceWrapper) GetDatabaseEngine

func (w *ServerInterfaceWrapper) GetDatabaseEngine(ctx echo.Context) error

GetDatabaseEngine converts echo context to params.

func (*ServerInterfaceWrapper) GetKubernetesClusterInfo

func (w *ServerInterfaceWrapper) GetKubernetesClusterInfo(ctx echo.Context) error

GetKubernetesClusterInfo converts echo context to params.

func (*ServerInterfaceWrapper) GetKubernetesClusterResources

func (w *ServerInterfaceWrapper) GetKubernetesClusterResources(ctx echo.Context) error

GetKubernetesClusterResources converts echo context to params.

func (*ServerInterfaceWrapper) GetLoadBalancerConfig added in v1.9.0

func (w *ServerInterfaceWrapper) GetLoadBalancerConfig(ctx echo.Context) error

GetLoadBalancerConfig converts echo context to params.

func (*ServerInterfaceWrapper) GetMonitoringInstance

func (w *ServerInterfaceWrapper) GetMonitoringInstance(ctx echo.Context) error

GetMonitoringInstance converts echo context to params.

func (*ServerInterfaceWrapper) GetPodSchedulingPolicy added in v1.7.0

func (w *ServerInterfaceWrapper) GetPodSchedulingPolicy(ctx echo.Context) error

GetPodSchedulingPolicy converts echo context to params.

func (*ServerInterfaceWrapper) GetSettings added in v1.0.0

func (w *ServerInterfaceWrapper) GetSettings(ctx echo.Context) error

GetSettings converts echo context to params.

func (*ServerInterfaceWrapper) GetSplitHorizonDNSConfig added in v1.10.0

func (w *ServerInterfaceWrapper) GetSplitHorizonDNSConfig(ctx echo.Context) error

GetSplitHorizonDNSConfig converts echo context to params.

func (*ServerInterfaceWrapper) GetUpgradePlan added in v1.1.0

func (w *ServerInterfaceWrapper) GetUpgradePlan(ctx echo.Context) error

GetUpgradePlan converts echo context to params.

func (*ServerInterfaceWrapper) GetUserPermissions added in v1.2.0

func (w *ServerInterfaceWrapper) GetUserPermissions(ctx echo.Context) error

GetUserPermissions converts echo context to params.

func (*ServerInterfaceWrapper) ListBackupStorages

func (w *ServerInterfaceWrapper) ListBackupStorages(ctx echo.Context) error

ListBackupStorages converts echo context to params.

func (*ServerInterfaceWrapper) ListDataImportJobs added in v1.8.0

func (w *ServerInterfaceWrapper) ListDataImportJobs(ctx echo.Context) error

ListDataImportJobs converts echo context to params.

func (*ServerInterfaceWrapper) ListDataImporters added in v1.8.0

func (w *ServerInterfaceWrapper) ListDataImporters(ctx echo.Context) error

ListDataImporters converts echo context to params.

func (*ServerInterfaceWrapper) ListDatabaseClusterBackups

func (w *ServerInterfaceWrapper) ListDatabaseClusterBackups(ctx echo.Context) error

ListDatabaseClusterBackups converts echo context to params.

func (*ServerInterfaceWrapper) ListDatabaseClusterRestores

func (w *ServerInterfaceWrapper) ListDatabaseClusterRestores(ctx echo.Context) error

ListDatabaseClusterRestores converts echo context to params.

func (*ServerInterfaceWrapper) ListDatabaseClusters

func (w *ServerInterfaceWrapper) ListDatabaseClusters(ctx echo.Context) error

ListDatabaseClusters converts echo context to params.

func (*ServerInterfaceWrapper) ListDatabaseEngines

func (w *ServerInterfaceWrapper) ListDatabaseEngines(ctx echo.Context) error

ListDatabaseEngines converts echo context to params.

func (*ServerInterfaceWrapper) ListLoadBalancerConfig added in v1.9.0

func (w *ServerInterfaceWrapper) ListLoadBalancerConfig(ctx echo.Context) error

ListLoadBalancerConfig converts echo context to params.

func (*ServerInterfaceWrapper) ListMonitoringInstances

func (w *ServerInterfaceWrapper) ListMonitoringInstances(ctx echo.Context) error

ListMonitoringInstances converts echo context to params.

func (*ServerInterfaceWrapper) ListNamespaces

func (w *ServerInterfaceWrapper) ListNamespaces(ctx echo.Context) error

ListNamespaces converts echo context to params.

func (*ServerInterfaceWrapper) ListPodSchedulingPolicy added in v1.7.0

func (w *ServerInterfaceWrapper) ListPodSchedulingPolicy(ctx echo.Context) error

ListPodSchedulingPolicy converts echo context to params.

func (*ServerInterfaceWrapper) ListSplitHorizonDNSConfigs added in v1.10.0

func (w *ServerInterfaceWrapper) ListSplitHorizonDNSConfigs(ctx echo.Context) error

ListSplitHorizonDNSConfigs converts echo context to params.

func (*ServerInterfaceWrapper) UpdateBackupStorage

func (w *ServerInterfaceWrapper) UpdateBackupStorage(ctx echo.Context) error

UpdateBackupStorage converts echo context to params.

func (*ServerInterfaceWrapper) UpdateDatabaseCluster

func (w *ServerInterfaceWrapper) UpdateDatabaseCluster(ctx echo.Context) error

UpdateDatabaseCluster converts echo context to params.

func (*ServerInterfaceWrapper) UpdateDatabaseClusterRestore

func (w *ServerInterfaceWrapper) UpdateDatabaseClusterRestore(ctx echo.Context) error

UpdateDatabaseClusterRestore converts echo context to params.

func (*ServerInterfaceWrapper) UpdateDatabaseEngine

func (w *ServerInterfaceWrapper) UpdateDatabaseEngine(ctx echo.Context) error

UpdateDatabaseEngine converts echo context to params.

func (*ServerInterfaceWrapper) UpdateLoadBalancerConfig added in v1.9.0

func (w *ServerInterfaceWrapper) UpdateLoadBalancerConfig(ctx echo.Context) error

UpdateLoadBalancerConfig converts echo context to params.

func (*ServerInterfaceWrapper) UpdateMonitoringInstance

func (w *ServerInterfaceWrapper) UpdateMonitoringInstance(ctx echo.Context) error

UpdateMonitoringInstance converts echo context to params.

func (*ServerInterfaceWrapper) UpdatePodSchedulingPolicy added in v1.7.0

func (w *ServerInterfaceWrapper) UpdatePodSchedulingPolicy(ctx echo.Context) error

UpdatePodSchedulingPolicy converts echo context to params.

func (*ServerInterfaceWrapper) UpdateSplitHorizonDNSConfig added in v1.10.0

func (w *ServerInterfaceWrapper) UpdateSplitHorizonDNSConfig(ctx echo.Context) error

UpdateSplitHorizonDNSConfig converts echo context to params.

func (*ServerInterfaceWrapper) VersionInfo

func (w *ServerInterfaceWrapper) VersionInfo(ctx echo.Context) error

VersionInfo converts echo context to params.

type Settings added in v1.0.0

type Settings struct {
	// OidcConfig Everest OIDC provider configuration
	OidcConfig OIDCConfig `json:"oidcConfig"`
}

Settings Everest global settings

type SplitHorizonDNSConfig added in v1.10.0

type SplitHorizonDNSConfig struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object.
	// Servers should convert recognized schemas to the latest internal value, and
	// may reject unrecognized values.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents.
	// Servers may infer this from the endpoint the client submits requests to.
	// Cannot be updated.
	// In CamelCase.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Spec Spec defines the desired state of SplitHorizonDNSConfig
	Spec struct {
		// BaseDomainNameSuffix BaseDomainNameSuffix is the base domain name suffix for generating domain names for each Pod in ReplicaSet.
		// It should be a valid domain name suffix.
		BaseDomainNameSuffix string `json:"baseDomainNameSuffix"`

		// Tls TLS is the TLS configuration for the split-horizon DNS configuration.
		Tls struct {
			// Certificate Certificate is the TLS certificate and key for the split-horizon DNS configuration.
			Certificate *struct {
				// CaCrt CACert is based64 encoded ca.pem file content.
				// It is provided as a write-only input field for convenience.
				// When this field is set, a webhook writes this value in the Secret specified by `.spec.tls.secretName`
				// and empties this field.
				// This field is not stored in the API.
				CaCrt string `json:"ca.crt"`

				// CaKey CA Private Key is based64 encoded ca-key.pem file content.
				// It is provided as a write-only input field for convenience.
				// When this field is set, a webhook writes this value in the Secret specified by `.spec.tls.secretName`
				// and empties this field.
				// This field is not stored in the API.
				CaKey string `json:"ca.key"`
			} `json:"certificate,omitempty"`

			// SecretName SecretName is the name of the secret containing the TLS certificate and key for the split-horizon DNS configuration.
			SecretName string `json:"secretName"`
		} `json:"tls"`
	} `json:"spec"`

	// Status Status defines the observed state of SplitHorizonDNSConfig
	Status *struct {
		// InUse InUse is a flag that indicates if the config is used by any DB cluster.
		InUse *bool `json:"inUse,omitempty"`

		// LastObservedGeneration LastObservedGeneration is the most recent generation observed for this SplitHorizonDNSConfig.
		LastObservedGeneration *int64 `json:"lastObservedGeneration,omitempty"`
	} `json:"status,omitempty"`
}

SplitHorizonDNSConfig SplitHorizonDNSConfig is the Schema for the splithorizondnsconfigs API.

type SplitHorizonDNSConfigList added in v1.10.0

type SplitHorizonDNSConfigList struct {
	// ApiVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
	ApiVersion *string                  `json:"apiVersion,omitempty"`
	Items      *[]SplitHorizonDNSConfig `json:"items,omitempty"`

	// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind     *string                 `json:"kind,omitempty"`
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

SplitHorizonDNSConfigList SplitHorizonDNSConfigList is an object that contains the list of the existing split-horizon dns configs.

type SplitHorizonDNSConfigUpdateParams added in v1.10.0

type SplitHorizonDNSConfigUpdateParams struct {
	// BaseDomainNameSuffix BaseDomainNameSuffix is the base domain name suffix for generating domain names for each Pod in ReplicaSet.
	// It should be a valid domain name suffix.
	BaseDomainNameSuffix *string `json:"baseDomainNameSuffix,omitempty"`

	// Certificate Certificate is the TLS certificate and key for the split-horizon DNS configuration.
	Certificate *struct {
		// CaCrt CACert is based64 encoded ca.pem file content.
		// It is provided as a write-only input field for convenience.
		// When this field is set, a webhook writes this value in the Secret specified by `.spec.tls.secretName`
		// and empties this field.
		// This field is not stored in the API.
		CaCrt string `json:"ca.crt"`

		// CaKey CAKey is based64 encoded ca-key.pem file content.
		// It is provided as a write-only input field for convenience.
		// When this field is set, a webhook writes this value in the Secret specified by `.spec.tls.secretName`
		// and empties this field.
		// This field is not stored in the API.
		CaKey string `json:"ca.key"`
	} `json:"certificate,omitempty"`
}

SplitHorizonDNSConfigUpdateParams SplitHorizonDNSConfigUpdateParams is the Schema for the splithorizondnsconfigs update API.

type StorageClass added in v1.6.0

type StorageClass struct {
	// AllowVolumeExpansion allowVolumeExpansion shows whether the storage class allow volume expand.
	AllowVolumeExpansion *bool `json:"allowVolumeExpansion,omitempty"`

	// Metadata Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	Metadata *map[string]interface{} `json:"metadata,omitempty"`
}

StorageClass StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.

StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.

func (*StorageClass) FromCR added in v1.6.0

func (out *StorageClass) FromCR(in *v1.StorageClass)

type UpdateBackupStorageJSONRequestBody

type UpdateBackupStorageJSONRequestBody = UpdateBackupStorageParams

UpdateBackupStorageJSONRequestBody defines body for UpdateBackupStorage for application/json ContentType.

type UpdateBackupStorageParams

type UpdateBackupStorageParams struct {
	AccessKey *string `json:"accessKey,omitempty"`

	// AllowedNamespaces List of namespaces allowed to use this backup storage
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllowedNamespaces *[]string `json:"allowedNamespaces,omitempty"`

	// BucketName The cloud storage bucket/container name
	BucketName     *string `json:"bucketName,omitempty"`
	Description    *string `json:"description,omitempty"`
	ForcePathStyle *bool   `json:"forcePathStyle,omitempty"`
	Region         *string `json:"region,omitempty"`
	SecretKey      *string `json:"secretKey,omitempty"`
	Url            *string `json:"url,omitempty"`
	VerifyTLS      *bool   `json:"verifyTLS,omitempty"`
}

UpdateBackupStorageParams Backup storage parameters

type UpdateDatabaseClusterJSONRequestBody

type UpdateDatabaseClusterJSONRequestBody = DatabaseCluster

UpdateDatabaseClusterJSONRequestBody defines body for UpdateDatabaseCluster for application/json ContentType.

type UpdateDatabaseClusterRestoreJSONRequestBody

type UpdateDatabaseClusterRestoreJSONRequestBody = DatabaseClusterRestore

UpdateDatabaseClusterRestoreJSONRequestBody defines body for UpdateDatabaseClusterRestore for application/json ContentType.

type UpdateDatabaseEngineJSONRequestBody

type UpdateDatabaseEngineJSONRequestBody = DatabaseEngine

UpdateDatabaseEngineJSONRequestBody defines body for UpdateDatabaseEngine for application/json ContentType.

type UpdateLoadBalancerConfigJSONRequestBody added in v1.9.0

type UpdateLoadBalancerConfigJSONRequestBody = LoadBalancerConfig

UpdateLoadBalancerConfigJSONRequestBody defines body for UpdateLoadBalancerConfig for application/json ContentType.

type UpdateMonitoringInstanceJSONRequestBody

type UpdateMonitoringInstanceJSONRequestBody = MonitoringInstanceUpdateParams

UpdateMonitoringInstanceJSONRequestBody defines body for UpdateMonitoringInstance for application/json ContentType.

type UpdatePodSchedulingPolicyJSONRequestBody added in v1.7.0

type UpdatePodSchedulingPolicyJSONRequestBody = PodSchedulingPolicy

UpdatePodSchedulingPolicyJSONRequestBody defines body for UpdatePodSchedulingPolicy for application/json ContentType.

type UpdateSplitHorizonDNSConfigJSONRequestBody added in v1.10.0

type UpdateSplitHorizonDNSConfigJSONRequestBody = SplitHorizonDNSConfigUpdateParams

UpdateSplitHorizonDNSConfigJSONRequestBody defines body for UpdateSplitHorizonDNSConfig for application/json ContentType.

type Upgrade added in v1.1.0

type Upgrade struct {
	// CurrentVersion The current operator version
	CurrentVersion *string `json:"currentVersion,omitempty"`

	// Name Name of the operator
	Name *string `json:"name,omitempty"`

	// TargetVersion The next version of the operator to upgrade to.
	TargetVersion *string `json:"targetVersion,omitempty"`
}

Upgrade defines model for Upgrade.

type UpgradePlan added in v1.1.0

type UpgradePlan struct {
	PendingActions *[]UpgradeTask `json:"pendingActions,omitempty"`
	Upgrades       *[]Upgrade     `json:"upgrades,omitempty"`
}

UpgradePlan Operators upgrade plan

type UpgradePlanApproval added in v1.1.0

type UpgradePlanApproval = map[string]interface{}

UpgradePlanApproval This no-op object is used to trigger the operator upgrade in a namespace.

type UpgradeTask added in v1.1.0

type UpgradeTask struct {
	Message *string `json:"message,omitempty"`

	// Name Name of the database cluster
	Name *string `json:"name,omitempty"`

	// PendingTask Pending task for the database cluster
	PendingTask *UpgradeTaskPendingTask `json:"pendingTask,omitempty"`
}

UpgradeTask defines model for UpgradeTask.

type UpgradeTaskPendingTask added in v1.1.0

type UpgradeTaskPendingTask string

UpgradeTaskPendingTask Pending task for the database cluster

const (
	NotReady      UpgradeTaskPendingTask = "notReady"
	Ready         UpgradeTaskPendingTask = "ready"
	Restart       UpgradeTaskPendingTask = "restart"
	UpgradeEngine UpgradeTaskPendingTask = "upgradeEngine"
)

Defines values for UpgradeTaskPendingTask.

type UserCredentials added in v1.0.0

type UserCredentials struct {
	Password *string `json:"password,omitempty"`
	Username *string `json:"username,omitempty"`
}

UserCredentials defines model for UserCredentials.

type UserPermissions added in v1.2.0

type UserPermissions struct {
	Enabled     bool        `json:"enabled"`
	Permissions *[][]string `json:"permissions,omitempty"`
}

UserPermissions defines model for UserPermissions.

type Version

type Version struct {
	FullCommit  string `json:"fullCommit"`
	ProjectName string `json:"projectName"`
	Version     string `json:"version"`
}

Version Everest version info

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL