diff --git a/.reuse/dep5 b/.reuse/dep5 index 8266f1094..1638c398d 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -779,6 +779,10 @@ Files: crd-catalog/otterize/helm-charts/* Copyright: The otterize/helm-charts Authors License: Apache-2.0 +Files: crd-catalog/percona/percona-server-mysql-operator/* +Copyright: The percona/percona-server-mysql-operator Authors +License: Apache-2.0 + Files: crd-catalog/projectcalico/calico/* Copyright: The projectcalico/calico Authors License: Apache-2.0 diff --git a/code-generator/src/catalog.rs b/code-generator/src/catalog.rs index 6565c8222..68340d73d 100644 --- a/code-generator/src/catalog.rs +++ b/code-generator/src/catalog.rs @@ -2078,6 +2078,15 @@ pub const CRD_V1_SOURCES: &'static [UpstreamSource] = &[ "https://github.com/otterize/helm-charts/blob/main/intents-operator/crds/protectedservices-customresourcedefinition.yaml", ], }, + UpstreamSource { + project_name: "percona/percona-server-mysql-operator", + license: APACHE_V2, + urls: &[ + "https://github.com/percona/percona-server-mysql-operator/blob/main/config/crd/bases/ps.percona.com_perconaservermysqlbackups.yaml", + "https://github.com/percona/percona-server-mysql-operator/blob/main/config/crd/bases/ps.percona.com_perconaservermysqlrestores.yaml", + "https://github.com/percona/percona-server-mysql-operator/blob/main/config/crd/bases/ps.percona.com_perconaservermysqls.yaml", + ], + }, UpstreamSource { project_name: "projectcalico/calico", license: APACHE_V2, diff --git a/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlbackups.yaml b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlbackups.yaml new file mode 100644 index 000000000..8cceea4a9 --- /dev/null +++ b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlbackups.yaml @@ -0,0 +1,835 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "perconaservermysqlbackups.ps.percona.com" +spec: + group: "ps.percona.com" + names: + kind: "PerconaServerMySQLBackup" + listKind: "PerconaServerMySQLBackupList" + plural: "perconaservermysqlbackups" + shortNames: + - "ps-backup" + - "ps-backups" + singular: "perconaservermysqlbackup" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".spec.storageName" + name: "Storage" + type: "string" + - jsonPath: ".status.destination" + name: "Destination" + type: "string" + - jsonPath: ".status.state" + name: "State" + type: "string" + - jsonPath: ".status.completed" + name: "Completed" + type: "date" + - jsonPath: ".metadata.creationTimestamp" + name: "Age" + type: "date" + name: "v1alpha1" + schema: + openAPIV3Schema: + properties: + apiVersion: + type: "string" + kind: + type: "string" + metadata: + type: "object" + spec: + properties: + clusterName: + type: "string" + storageName: + type: "string" + required: + - "clusterName" + - "storageName" + type: "object" + status: + properties: + completed: + format: "date-time" + type: "string" + destination: + type: "string" + image: + type: "string" + state: + type: "string" + stateDescription: + type: "string" + storage: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + type: "object" + annotations: + additionalProperties: + type: "string" + type: "object" + azure: + properties: + containerName: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + storageClass: + type: "string" + required: + - "containerName" + - "credentialsSecret" + type: "object" + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + gcs: + properties: + bucket: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + storageClass: + type: "string" + required: + - "bucket" + - "credentialsSecret" + type: "object" + labels: + additionalProperties: + type: "string" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + type: "object" + podSecurityContext: + properties: + fsGroup: + format: "int64" + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + supplementalGroups: + items: + format: "int64" + type: "integer" + type: "array" + sysctls: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + priorityClassName: + type: "string" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + s3: + properties: + bucket: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + region: + type: "string" + storageClass: + type: "string" + required: + - "bucket" + - "credentialsSecret" + type: "object" + schedulerName: + type: "string" + tolerations: + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + format: "int64" + type: "integer" + value: + type: "string" + type: "object" + type: "array" + type: + type: "string" + verifyTLS: + type: "boolean" + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + persistentVolumeClaim: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + type: "object" + required: + - "type" + type: "object" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlrestores.yaml b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlrestores.yaml new file mode 100644 index 000000000..f16b0b3f5 --- /dev/null +++ b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlrestores.yaml @@ -0,0 +1,834 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "perconaservermysqlrestores.ps.percona.com" +spec: + group: "ps.percona.com" + names: + kind: "PerconaServerMySQLRestore" + listKind: "PerconaServerMySQLRestoreList" + plural: "perconaservermysqlrestores" + shortNames: + - "ps-restore" + singular: "perconaservermysqlrestore" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.state" + name: "State" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "Age" + type: "date" + name: "v1alpha1" + schema: + openAPIV3Schema: + properties: + apiVersion: + type: "string" + kind: + type: "string" + metadata: + type: "object" + spec: + properties: + backupName: + type: "string" + backupSource: + properties: + completed: + format: "date-time" + type: "string" + destination: + type: "string" + image: + type: "string" + state: + type: "string" + stateDescription: + type: "string" + storage: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + type: "object" + annotations: + additionalProperties: + type: "string" + type: "object" + azure: + properties: + containerName: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + storageClass: + type: "string" + required: + - "containerName" + - "credentialsSecret" + type: "object" + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + gcs: + properties: + bucket: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + storageClass: + type: "string" + required: + - "bucket" + - "credentialsSecret" + type: "object" + labels: + additionalProperties: + type: "string" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + type: "object" + podSecurityContext: + properties: + fsGroup: + format: "int64" + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + supplementalGroups: + items: + format: "int64" + type: "integer" + type: "array" + sysctls: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + priorityClassName: + type: "string" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + s3: + properties: + bucket: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + region: + type: "string" + storageClass: + type: "string" + required: + - "bucket" + - "credentialsSecret" + type: "object" + schedulerName: + type: "string" + tolerations: + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + format: "int64" + type: "integer" + value: + type: "string" + type: "object" + type: "array" + type: + type: "string" + verifyTLS: + type: "boolean" + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + persistentVolumeClaim: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + type: "object" + required: + - "type" + type: "object" + type: "object" + clusterName: + type: "string" + required: + - "clusterName" + type: "object" + status: + properties: + completed: + format: "date-time" + type: "string" + state: + type: "string" + stateDescription: + type: "string" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqls.args b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqls.args new file mode 100644 index 000000000..7ab47510b --- /dev/null +++ b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqls.args @@ -0,0 +1 @@ +--derive=PartialEq diff --git a/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqls.yaml b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqls.yaml new file mode 100644 index 000000000..28906bdb7 --- /dev/null +++ b/crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqls.yaml @@ -0,0 +1,7436 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "perconaservermysqls.ps.percona.com" +spec: + group: "ps.percona.com" + names: + kind: "PerconaServerMySQL" + listKind: "PerconaServerMySQLList" + plural: "perconaservermysqls" + shortNames: + - "ps" + singular: "perconaservermysql" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".spec.mysql.clusterType" + name: "Replication" + type: "string" + - jsonPath: ".status.host" + name: "Endpoint" + type: "string" + - jsonPath: ".status.state" + name: "State" + type: "string" + - jsonPath: ".status.mysql.ready" + name: "MySQL" + type: "string" + - jsonPath: ".status.orchestrator.ready" + name: "Orchestrator" + type: "string" + - jsonPath: ".status.haproxy.ready" + name: "HAProxy" + type: "string" + - jsonPath: ".status.router.ready" + name: "Router" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "Age" + type: "date" + name: "v1alpha1" + schema: + openAPIV3Schema: + properties: + apiVersion: + type: "string" + kind: + type: "string" + metadata: + type: "object" + spec: + properties: + allowUnsafeConfigurations: + type: "boolean" + backup: + properties: + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + enabled: + type: "boolean" + image: + type: "string" + imagePullPolicy: + type: "string" + imagePullSecrets: + items: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + initImage: + type: "string" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + serviceAccountName: + type: "string" + storages: + additionalProperties: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + type: "object" + annotations: + additionalProperties: + type: "string" + type: "object" + azure: + properties: + containerName: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + storageClass: + type: "string" + required: + - "containerName" + - "credentialsSecret" + type: "object" + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + gcs: + properties: + bucket: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + storageClass: + type: "string" + required: + - "bucket" + - "credentialsSecret" + type: "object" + labels: + additionalProperties: + type: "string" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + type: "object" + podSecurityContext: + properties: + fsGroup: + format: "int64" + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + supplementalGroups: + items: + format: "int64" + type: "integer" + type: "array" + sysctls: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + priorityClassName: + type: "string" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + s3: + properties: + bucket: + type: "string" + credentialsSecret: + type: "string" + endpointUrl: + type: "string" + prefix: + type: "string" + region: + type: "string" + storageClass: + type: "string" + required: + - "bucket" + - "credentialsSecret" + type: "object" + schedulerName: + type: "string" + tolerations: + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + format: "int64" + type: "integer" + value: + type: "string" + type: "object" + type: "array" + type: + type: "string" + verifyTLS: + type: "boolean" + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + persistentVolumeClaim: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + type: "object" + required: + - "type" + type: "object" + type: "object" + required: + - "image" + type: "object" + crVersion: + type: "string" + ignoreAnnotations: + items: + type: "string" + type: "array" + ignoreLabels: + items: + type: "string" + type: "array" + initImage: + type: "string" + mysql: + properties: + affinity: + properties: + advanced: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + type: "object" + antiAffinityTopologyKey: + type: "string" + type: "object" + annotations: + additionalProperties: + type: "string" + type: "object" + autoRecovery: + type: "boolean" + clusterType: + type: "string" + configuration: + type: "string" + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + required: + - "name" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + type: "array" + expose: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + enabled: + type: "boolean" + externalTrafficPolicy: + type: "string" + internalTrafficPolicy: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + loadBalancerIP: + type: "string" + loadBalancerSourceRanges: + items: + type: "string" + type: "array" + type: + type: "string" + type: "object" + gracePeriod: + format: "int64" + type: "integer" + image: + type: "string" + imagePullPolicy: + type: "string" + imagePullSecrets: + items: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + initImage: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + type: "object" + podSecurityContext: + properties: + fsGroup: + format: "int64" + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + supplementalGroups: + items: + format: "int64" + type: "integer" + type: "array" + sysctls: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + priorityClassName: + type: "string" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + schedulerName: + type: "string" + serviceAccountName: + type: "string" + sidecarPVCs: + items: + properties: + name: + type: "string" + spec: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + required: + - "name" + - "spec" + type: "object" + type: "array" + sidecarVolumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + format: "int32" + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + required: + - "volumeID" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + required: + - "diskName" + - "diskURI" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + required: + - "secretName" + - "shareName" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + user: + type: "string" + required: + - "monitors" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + volumeID: + type: "string" + required: + - "volumeID" + type: "object" + configMap: + properties: + defaultMode: + format: "int32" + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + format: "int32" + type: "integer" + path: + type: "string" + required: + - "key" + - "path" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + required: + - "driver" + type: "object" + downwardAPI: + properties: + defaultMode: + format: "int32" + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + mode: + format: "int32" + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + required: + - "path" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: "object" + spec: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + required: + - "spec" + type: "object" + type: "object" + fc: + properties: + fsType: + type: "string" + lun: + format: "int32" + type: "integer" + readOnly: + type: "boolean" + targetWWNs: + items: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + required: + - "driver" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + format: "int32" + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + required: + - "pdName" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + required: + - "repository" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + required: + - "endpoints" + - "path" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + iscsi: + properties: + chapAuthDiscovery: + type: "boolean" + chapAuthSession: + type: "boolean" + fsType: + type: "string" + initiatorName: + type: "string" + iqn: + type: "string" + iscsiInterface: + type: "string" + lun: + format: "int32" + type: "integer" + portals: + items: + type: "string" + type: "array" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + targetPortal: + type: "string" + required: + - "iqn" + - "lun" + - "targetPortal" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + required: + - "path" + - "server" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + required: + - "claimName" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + required: + - "pdID" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + required: + - "volumeID" + type: "object" + projected: + properties: + defaultMode: + format: "int32" + type: "integer" + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + name: + type: "string" + optional: + type: "boolean" + path: + type: "string" + signerName: + type: "string" + required: + - "path" + type: "object" + configMap: + properties: + items: + items: + properties: + key: + type: "string" + mode: + format: "int32" + type: "integer" + path: + type: "string" + required: + - "key" + - "path" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + mode: + format: "int32" + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + required: + - "path" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + format: "int32" + type: "integer" + path: + type: "string" + required: + - "key" + - "path" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + format: "int64" + type: "integer" + path: + type: "string" + required: + - "path" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + required: + - "registry" + - "volume" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + user: + type: "string" + required: + - "image" + - "monitors" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + required: + - "gateway" + - "secretRef" + - "system" + type: "object" + secret: + properties: + defaultMode: + format: "int32" + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + format: "int32" + type: "integer" + path: + type: "string" + required: + - "key" + - "path" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + required: + - "volumePath" + type: "object" + required: + - "name" + type: "object" + type: "array" + sidecars: + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + required: + - "name" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + sleep: + properties: + seconds: + format: "int64" + type: "integer" + required: + - "seconds" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + sleep: + properties: + seconds: + format: "int64" + type: "integer" + required: + - "seconds" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + type: "object" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + format: "int32" + type: "integer" + hostIP: + type: "string" + hostPort: + format: "int32" + type: "integer" + name: + type: "string" + protocol: + default: "TCP" + type: "string" + required: + - "containerPort" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "containerPort" + - "protocol" + x-kubernetes-list-type: "map" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + required: + - "resourceName" + - "restartPolicy" + type: "object" + type: "array" + x-kubernetes-list-type: "atomic" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + stdin: + type: "boolean" + stdinOnce: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: + items: + properties: + devicePath: + type: "string" + name: + type: "string" + required: + - "devicePath" + - "name" + type: "object" + type: "array" + volumeMounts: + items: + properties: + mountPath: + type: "string" + mountPropagation: + type: "string" + name: + type: "string" + readOnly: + type: "boolean" + subPath: + type: "string" + subPathExpr: + type: "string" + required: + - "mountPath" + - "name" + type: "object" + type: "array" + workingDir: + type: "string" + required: + - "name" + type: "object" + type: "array" + size: + format: "int32" + type: "integer" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + tolerations: + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + format: "int64" + type: "integer" + value: + type: "string" + type: "object" + type: "array" + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + persistentVolumeClaim: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + type: "object" + required: + - "image" + type: "object" + orchestrator: + properties: + affinity: + properties: + advanced: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + type: "object" + antiAffinityTopologyKey: + type: "string" + type: "object" + annotations: + additionalProperties: + type: "string" + type: "object" + configuration: + type: "string" + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + enabled: + type: "boolean" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + required: + - "name" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + type: "array" + expose: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + externalTrafficPolicy: + type: "string" + internalTrafficPolicy: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + loadBalancerIP: + type: "string" + loadBalancerSourceRanges: + items: + type: "string" + type: "array" + type: + type: "string" + type: "object" + gracePeriod: + format: "int64" + type: "integer" + image: + type: "string" + imagePullPolicy: + type: "string" + imagePullSecrets: + items: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + initImage: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + type: "object" + podSecurityContext: + properties: + fsGroup: + format: "int64" + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + supplementalGroups: + items: + format: "int64" + type: "integer" + type: "array" + sysctls: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + priorityClassName: + type: "string" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + schedulerName: + type: "string" + serviceAccountName: + type: "string" + size: + format: "int32" + type: "integer" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + tolerations: + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + format: "int64" + type: "integer" + value: + type: "string" + type: "object" + type: "array" + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + persistentVolumeClaim: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + type: "object" + required: + - "image" + type: "object" + pause: + type: "boolean" + pmm: + properties: + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + enabled: + type: "boolean" + image: + type: "string" + imagePullPolicy: + type: "string" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + serverHost: + type: "string" + serverUser: + type: "string" + required: + - "image" + type: "object" + proxy: + properties: + haproxy: + properties: + affinity: + properties: + advanced: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + type: "object" + antiAffinityTopologyKey: + type: "string" + type: "object" + annotations: + additionalProperties: + type: "string" + type: "object" + configuration: + type: "string" + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + enabled: + type: "boolean" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + required: + - "name" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + type: "array" + expose: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + externalTrafficPolicy: + type: "string" + internalTrafficPolicy: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + loadBalancerIP: + type: "string" + loadBalancerSourceRanges: + items: + type: "string" + type: "array" + type: + type: "string" + type: "object" + gracePeriod: + format: "int64" + type: "integer" + image: + type: "string" + imagePullPolicy: + type: "string" + imagePullSecrets: + items: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + initImage: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + type: "object" + podSecurityContext: + properties: + fsGroup: + format: "int64" + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + supplementalGroups: + items: + format: "int64" + type: "integer" + type: "array" + sysctls: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + priorityClassName: + type: "string" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + schedulerName: + type: "string" + serviceAccountName: + type: "string" + size: + format: "int32" + type: "integer" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + tolerations: + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + format: "int64" + type: "integer" + value: + type: "string" + type: "object" + type: "array" + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + persistentVolumeClaim: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + type: "object" + required: + - "image" + type: "object" + router: + properties: + affinity: + properties: + advanced: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + weight: + format: "int32" + type: "integer" + required: + - "podAffinityTerm" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + matchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + mismatchLabelKeys: + items: + type: "string" + type: "array" + x-kubernetes-list-type: "atomic" + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + namespaces: + items: + type: "string" + type: "array" + topologyKey: + type: "string" + required: + - "topologyKey" + type: "object" + type: "array" + type: "object" + type: "object" + antiAffinityTopologyKey: + type: "string" + type: "object" + annotations: + additionalProperties: + type: "string" + type: "object" + configuration: + type: "string" + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + enabled: + type: "boolean" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + required: + - "name" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + type: "array" + expose: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + externalTrafficPolicy: + type: "string" + internalTrafficPolicy: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + loadBalancerIP: + type: "string" + loadBalancerSourceRanges: + items: + type: "string" + type: "array" + type: + type: "string" + type: "object" + gracePeriod: + format: "int64" + type: "integer" + image: + type: "string" + imagePullPolicy: + type: "string" + imagePullSecrets: + items: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + initImage: + type: "string" + labels: + additionalProperties: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + type: "object" + podSecurityContext: + properties: + fsGroup: + format: "int64" + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + supplementalGroups: + items: + format: "int64" + type: "integer" + type: "array" + sysctls: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + priorityClassName: + type: "string" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtimeClassName: + type: "string" + schedulerName: + type: "string" + serviceAccountName: + type: "string" + size: + format: "int32" + type: "integer" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + tolerations: + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + format: "int64" + type: "integer" + value: + type: "string" + type: "object" + type: "array" + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + required: + - "path" + type: "object" + persistentVolumeClaim: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchLabels: + additionalProperties: + type: "string" + type: "object" + type: "object" + x-kubernetes-map-type: "atomic" + storageClassName: + type: "string" + volumeAttributesClassName: + type: "string" + volumeMode: + type: "string" + volumeName: + type: "string" + type: "object" + type: "object" + required: + - "image" + type: "object" + type: "object" + secretsName: + type: "string" + sslInternalSecretName: + type: "string" + sslSecretName: + type: "string" + tls: + properties: + SANs: + items: + type: "string" + type: "array" + issuerConf: + properties: + group: + type: "string" + kind: + type: "string" + name: + type: "string" + required: + - "name" + type: "object" + type: "object" + toolkit: + properties: + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + capabilities: + properties: + add: + items: + type: "string" + type: "array" + drop: + items: + type: "string" + type: "array" + type: "object" + privileged: + type: "boolean" + procMount: + type: "string" + readOnlyRootFilesystem: + type: "boolean" + runAsGroup: + format: "int64" + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + format: "int64" + type: "integer" + seLinuxOptions: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + required: + - "fieldPath" + type: "object" + x-kubernetes-map-type: "atomic" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + resource: + type: "string" + required: + - "resource" + type: "object" + x-kubernetes-map-type: "atomic" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + required: + - "name" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + imagePullSecrets: + items: + properties: + name: + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + format: "int32" + type: "integer" + grpc: + properties: + port: + format: "int32" + type: "integer" + service: + type: "string" + required: + - "port" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + required: + - "name" + - "value" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + required: + - "port" + type: "object" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + required: + - "port" + type: "object" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" + required: + - "image" + type: "object" + updateStrategy: + type: "string" + upgradeOptions: + properties: + apply: + type: "string" + versionServiceEndpoint: + type: "string" + type: "object" + type: "object" + status: + properties: + backupVersion: + type: "string" + conditions: + items: + properties: + lastTransitionTime: + format: "date-time" + type: "string" + message: + maxLength: 32768 + type: "string" + observedGeneration: + format: "int64" + minimum: 0.0 + type: "integer" + reason: + maxLength: 1024 + minLength: 1 + pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" + type: "string" + status: + enum: + - "True" + - "False" + - "Unknown" + type: "string" + type: + maxLength: 316 + pattern: "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$" + type: "string" + required: + - "lastTransitionTime" + - "message" + - "reason" + - "status" + - "type" + type: "object" + type: "array" + haproxy: + properties: + ready: + format: "int32" + type: "integer" + size: + format: "int32" + type: "integer" + state: + type: "string" + version: + type: "string" + type: "object" + host: + type: "string" + mysql: + properties: + ready: + format: "int32" + type: "integer" + size: + format: "int32" + type: "integer" + state: + type: "string" + version: + type: "string" + type: "object" + orchestrator: + properties: + ready: + format: "int32" + type: "integer" + size: + format: "int32" + type: "integer" + state: + type: "string" + version: + type: "string" + type: "object" + pmmVersion: + type: "string" + router: + properties: + ready: + format: "int32" + type: "integer" + size: + format: "int32" + type: "integer" + state: + type: "string" + version: + type: "string" + type: "object" + state: + type: "string" + toolkitVersion: + type: "string" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/kube-custom-resources-rs/Cargo.toml b/kube-custom-resources-rs/Cargo.toml index 07187ed8c..09095450d 100644 --- a/kube-custom-resources-rs/Cargo.toml +++ b/kube-custom-resources-rs/Cargo.toml @@ -242,6 +242,7 @@ postgres_operator_crunchydata_com = [] postgresql_cnpg_io = [] projectcontour_io = [] prometheusservice_services_k8s_aws = [] +ps_percona_com = [] quay_redhat_com = [] quota_openshift_io = [] ray_io = [] diff --git a/kube-custom-resources-rs/src/lib.rs b/kube-custom-resources-rs/src/lib.rs index a738201c2..c4340da2d 100644 --- a/kube-custom-resources-rs/src/lib.rs +++ b/kube-custom-resources-rs/src/lib.rs @@ -1951,6 +1951,13 @@ apiVersion `prometheusservice.services.k8s.aws/v1alpha1`: - `RuleGroupsNamespace` - `Workspace` +## ps_percona_com + +apiVersion `ps.percona.com/v1alpha1`: +- `PerconaServerMySQLBackup` +- `PerconaServerMySQLRestore` +- `PerconaServerMySQL` + ## quay_redhat_com apiVersion `quay.redhat.com/v1`: @@ -2897,6 +2904,8 @@ pub mod postgresql_cnpg_io; pub mod projectcontour_io; #[cfg(feature = "prometheusservice_services_k8s_aws")] pub mod prometheusservice_services_k8s_aws; +#[cfg(feature = "ps_percona_com")] +pub mod ps_percona_com; #[cfg(feature = "quay_redhat_com")] pub mod quay_redhat_com; #[cfg(feature = "quota_openshift_io")] diff --git a/kube-custom-resources-rs/src/ps_percona_com/mod.rs b/kube-custom-resources-rs/src/ps_percona_com/mod.rs new file mode 100644 index 000000000..32a5a9d4f --- /dev/null +++ b/kube-custom-resources-rs/src/ps_percona_com/mod.rs @@ -0,0 +1 @@ +pub mod v1alpha1; diff --git a/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/mod.rs b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/mod.rs new file mode 100644 index 000000000..239900783 --- /dev/null +++ b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/mod.rs @@ -0,0 +1,3 @@ +pub mod perconaservermysqlbackups; +pub mod perconaservermysqlrestores; +pub mod perconaservermysqls; diff --git a/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqlbackups.rs b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqlbackups.rs new file mode 100644 index 000000000..840b862bc --- /dev/null +++ b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqlbackups.rs @@ -0,0 +1,663 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlbackups.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; +use std::collections::BTreeMap; +use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; + +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "ps.percona.com", version = "v1alpha1", kind = "PerconaServerMySQLBackup", plural = "perconaservermysqlbackups")] +#[kube(namespaced)] +#[kube(status = "PerconaServerMySQLBackupStatus")] +#[kube(schema = "disabled")] +pub struct PerconaServerMySQLBackupSpec { + #[serde(rename = "clusterName")] + pub cluster_name: String, + #[serde(rename = "storageName")] + pub storage_name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatus { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub destination: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "stateDescription")] + pub state_description: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub storage: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorage { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub azure: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub gcs: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] + pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub s3: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")] + pub scheduler_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, + #[serde(rename = "type")] + pub r#type: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "verifyTLS")] + pub verify_tls: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSpec")] + pub volume_spec: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")] + pub pod_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")] + pub pod_anti_affinity: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + pub preference: PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLBackupStatusStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageAzure { + #[serde(rename = "containerName")] + pub container_name: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageGcs { + pub bucket: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStoragePodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStoragePodSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStoragePodSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStoragePodSecurityContextSysctls { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStoragePodSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageS3 { + pub bucket: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub region: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageTolerations { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecPersistentVolumeClaim { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecPersistentVolumeClaimDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecPersistentVolumeClaimDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecPersistentVolumeClaimResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecPersistentVolumeClaimSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLBackupStatusStorageVolumeSpecPersistentVolumeClaimSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + diff --git a/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqlrestores.rs b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqlrestores.rs new file mode 100644 index 000000000..cfb15f0cf --- /dev/null +++ b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqlrestores.rs @@ -0,0 +1,675 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqlrestores.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; +use std::collections::BTreeMap; +use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; + +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "ps.percona.com", version = "v1alpha1", kind = "PerconaServerMySQLRestore", plural = "perconaservermysqlrestores")] +#[kube(namespaced)] +#[kube(status = "PerconaServerMySQLRestoreStatus")] +#[kube(schema = "disabled")] +pub struct PerconaServerMySQLRestoreSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupName")] + pub backup_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupSource")] + pub backup_source: Option, + #[serde(rename = "clusterName")] + pub cluster_name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSource { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub destination: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "stateDescription")] + pub state_description: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub storage: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorage { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub azure: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub gcs: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] + pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub s3: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")] + pub scheduler_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, + #[serde(rename = "type")] + pub r#type: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "verifyTLS")] + pub verify_tls: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSpec")] + pub volume_spec: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")] + pub pod_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")] + pub pod_anti_affinity: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + pub preference: PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageAzure { + #[serde(rename = "containerName")] + pub container_name: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageGcs { + pub bucket: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStoragePodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStoragePodSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStoragePodSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStoragePodSecurityContextSysctls { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStoragePodSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageS3 { + pub bucket: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub region: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageTolerations { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecPersistentVolumeClaim { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecPersistentVolumeClaimDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecPersistentVolumeClaimDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecPersistentVolumeClaimResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecPersistentVolumeClaimSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreBackupSourceStorageVolumeSpecPersistentVolumeClaimSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaServerMySQLRestoreStatus { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "stateDescription")] + pub state_description: Option, +} + diff --git a/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqls.rs b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqls.rs new file mode 100644 index 000000000..1cfbea2b2 --- /dev/null +++ b/kube-custom-resources-rs/src/ps_percona_com/v1alpha1/perconaservermysqls.rs @@ -0,0 +1,6343 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/percona/percona-server-mysql-operator/ps.percona.com/v1alpha1/perconaservermysqls.yaml --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; +use std::collections::BTreeMap; +use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; + +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)] +#[kube(group = "ps.percona.com", version = "v1alpha1", kind = "PerconaServerMySQL", plural = "perconaservermysqls")] +#[kube(namespaced)] +#[kube(status = "PerconaServerMySQLStatus")] +#[kube(schema = "disabled")] +pub struct PerconaServerMySQLSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowUnsafeConfigurations")] + pub allow_unsafe_configurations: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub backup: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "crVersion")] + pub cr_version: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "ignoreAnnotations")] + pub ignore_annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "ignoreLabels")] + pub ignore_labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initImage")] + pub init_image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mysql: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub orchestrator: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub pause: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub pmm: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub proxy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretsName")] + pub secrets_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslInternalSecretName")] + pub ssl_internal_secret_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslSecretName")] + pub ssl_secret_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tls: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub toolkit: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "updateStrategy")] + pub update_strategy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "upgradeOptions")] + pub upgrade_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackup { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")] + pub image_pull_secrets: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initImage")] + pub init_image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")] + pub service_account_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub storages: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupImagePullSecrets { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStorages { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub azure: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub gcs: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] + pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub s3: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")] + pub scheduler_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "verifyTLS")] + pub verify_tls: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSpec")] + pub volume_spec: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")] + pub pod_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")] + pub pod_anti_affinity: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + pub preference: PerconaServerMySQLBackupStoragesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLBackupStoragesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesAzure { + #[serde(rename = "containerName")] + pub container_name: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesGcs { + pub bucket: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesPodSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesPodSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesPodSecurityContextSysctls { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesPodSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesS3 { + pub bucket: String, + #[serde(rename = "credentialsSecret")] + pub credentials_secret: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointUrl")] + pub endpoint_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub region: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")] + pub storage_class: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesTolerations { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecPersistentVolumeClaim { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecPersistentVolumeClaimDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecPersistentVolumeClaimDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecPersistentVolumeClaimResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecPersistentVolumeClaimSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLBackupStoragesVolumeSpecPersistentVolumeClaimSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysql { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "autoRecovery")] + pub auto_recovery: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterType")] + pub cluster_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub configuration: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] + pub env_from: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expose: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracePeriod")] + pub grace_period: Option, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")] + pub image_pull_secrets: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initImage")] + pub init_image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] + pub liveness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] + pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")] + pub scheduler_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")] + pub service_account_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sidecarPVCs")] + pub sidecar_pv_cs: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sidecarVolumes")] + pub sidecar_volumes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sidecars: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startupProbe")] + pub startup_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSpec")] + pub volume_spec: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinity { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub advanced: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "antiAffinityTopologyKey")] + pub anti_affinity_topology_key: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvanced { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")] + pub pod_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")] + pub pod_anti_affinity: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + pub preference: PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLMysqlAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnv { + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvValueFromFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvValueFromResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")] + pub config_map_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvFromConfigMapRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlEnvFromSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlExpose { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] + pub external_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "internalTrafficPolicy")] + pub internal_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] + pub load_balancer_ip: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] + pub load_balancer_source_ranges: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlImagePullSecrets { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlLivenessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlLivenessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlLivenessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlLivenessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlLivenessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlLivenessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlPodSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlPodSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlPodSecurityContextSysctls { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlPodSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlReadinessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlReadinessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlReadinessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlReadinessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlReadinessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlReadinessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarPvCs { + pub name: String, + pub spec: PerconaServerMySQLMysqlSidecarPvCsSpec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarPvCsSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarPvCsSpecDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarPvCsSpecDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarPvCsSpecResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarPvCsSpecSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarPvCsSpecSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumes { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] + pub aws_elastic_block_store: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] + pub azure_disk: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] + pub azure_file: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cephfs: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cinder: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] + pub config_map: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub csi: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] + pub downward_api: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ephemeral: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub fc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] + pub flex_volume: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub flocker: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] + pub gce_persistent_disk: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] + pub git_repo: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub glusterfs: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub iscsi: Option, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub nfs: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] + pub photon_persistent_disk: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] + pub portworx_volume: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub projected: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub quobyte: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub rbd: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] + pub scale_io: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub storageos: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] + pub vsphere_volume: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesAwsElasticBlockStore { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub partition: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(rename = "volumeID")] + pub volume_id: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesAzureDisk { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] + pub caching_mode: Option, + #[serde(rename = "diskName")] + pub disk_name: String, + #[serde(rename = "diskURI")] + pub disk_uri: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesAzureFile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(rename = "secretName")] + pub secret_name: String, + #[serde(rename = "shareName")] + pub share_name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesCephfs { + pub monitors: Vec, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] + pub secret_file: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesCephfsSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesCinder { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, + #[serde(rename = "volumeID")] + pub volume_id: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesCinderSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesConfigMap { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] + pub default_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesConfigMapItems { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mode: Option, + pub path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesCsi { + pub driver: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] + pub node_publish_secret_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] + pub volume_attributes: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesCsiNodePublishSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesDownwardApi { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] + pub default_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesDownwardApiItems { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mode: Option, + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesDownwardApiItemsFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesDownwardApiItemsResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeral { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeClaimTemplate")] + pub volume_claim_template: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplate { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub metadata: Option, + pub spec: PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateSpec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateMetadata { +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateSpecDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateSpecResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateSpecSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesFc { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub lun: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] + pub target_ww_ns: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub wwids: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesFlexVolume { + pub driver: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub options: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesFlexVolumeSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesFlocker { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] + pub dataset_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] + pub dataset_uuid: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesGcePersistentDisk { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub partition: Option, + #[serde(rename = "pdName")] + pub pd_name: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesGitRepo { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub directory: Option, + pub repository: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub revision: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesGlusterfs { + pub endpoints: String, + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesIscsi { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] + pub chap_auth_discovery: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] + pub chap_auth_session: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] + pub initiator_name: Option, + pub iqn: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] + pub iscsi_interface: Option, + pub lun: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub portals: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, + #[serde(rename = "targetPortal")] + pub target_portal: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesIscsiSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesNfs { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + pub server: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesPersistentVolumeClaim { + #[serde(rename = "claimName")] + pub claim_name: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesPhotonPersistentDisk { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(rename = "pdID")] + pub pd_id: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesPortworxVolume { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(rename = "volumeID")] + pub volume_id: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjected { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] + pub default_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sources: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSources { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterTrustBundle")] + pub cluster_trust_bundle: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] + pub config_map: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] + pub downward_api: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub secret: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] + pub service_account_token: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesClusterTrustBundle { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "signerName")] + pub signer_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesClusterTrustBundleLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesClusterTrustBundleLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesConfigMap { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesConfigMapItems { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mode: Option, + pub path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesDownwardApi { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesDownwardApiItems { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mode: Option, + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesDownwardApiItemsFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesDownwardApiItemsResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesSecret { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesSecretItems { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mode: Option, + pub path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesProjectedSourcesServiceAccountToken { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub audience: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] + pub expiration_seconds: Option, + pub path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesQuobyte { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + pub registry: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tenant: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, + pub volume: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesRbd { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub keyring: Option, + pub monitors: Vec, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub pool: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesRbdSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesScaleIo { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + pub gateway: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] + pub protection_domain: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(rename = "secretRef")] + pub secret_ref: PerconaServerMySQLMysqlSidecarVolumesScaleIoSecretRef, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] + pub ssl_enabled: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] + pub storage_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] + pub storage_pool: Option, + pub system: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesScaleIoSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesSecret { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] + pub default_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] + pub secret_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesSecretItems { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mode: Option, + pub path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesStorageos { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] + pub volume_namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesStorageosSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarVolumesVsphereVolume { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] + pub fs_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] + pub storage_policy_id: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] + pub storage_policy_name: Option, + #[serde(rename = "volumePath")] + pub volume_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecars { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub args: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] + pub env_from: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub lifecycle: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] + pub liveness_probe: Option, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ports: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resizePolicy")] + pub resize_policy: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "restartPolicy")] + pub restart_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] + pub security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startupProbe")] + pub startup_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub stdin: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "stdinOnce")] + pub stdin_once: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationMessagePath")] + pub termination_message_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationMessagePolicy")] + pub termination_message_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tty: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeDevices")] + pub volume_devices: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] + pub volume_mounts: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "workingDir")] + pub working_dir: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnv { + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvValueFromFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvValueFromResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")] + pub config_map_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvFromConfigMapRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsEnvFromSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecycle { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "postStart")] + pub post_start: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preStop")] + pub pre_stop: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePostStart { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sleep: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePostStartExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePostStartHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePostStartHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePostStartSleep { + pub seconds: i64, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePostStartTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePreStop { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sleep: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePreStopExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePreStopHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePreStopHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePreStopSleep { + pub seconds: i64, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLifecyclePreStopTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLivenessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLivenessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLivenessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLivenessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLivenessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsLivenessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsPorts { + #[serde(rename = "containerPort")] + pub container_port: i32, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostIP")] + pub host_ip: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPort")] + pub host_port: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub protocol: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsReadinessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsReadinessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsReadinessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsReadinessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsReadinessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsReadinessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsResizePolicy { + #[serde(rename = "resourceName")] + pub resource_name: String, + #[serde(rename = "restartPolicy")] + pub restart_policy: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsStartupProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsStartupProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsStartupProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsStartupProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsStartupProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsStartupProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsVolumeDevices { + #[serde(rename = "devicePath")] + pub device_path: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlSidecarsVolumeMounts { + #[serde(rename = "mountPath")] + pub mount_path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mountPropagation")] + pub mount_propagation: Option, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")] + pub sub_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPathExpr")] + pub sub_path_expr: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlStartupProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlStartupProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlStartupProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlStartupProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlStartupProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlStartupProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlTolerations { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecPersistentVolumeClaim { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecPersistentVolumeClaimDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecPersistentVolumeClaimDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecPersistentVolumeClaimResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecPersistentVolumeClaimSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLMysqlVolumeSpecPersistentVolumeClaimSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestrator { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub configuration: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] + pub env_from: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expose: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracePeriod")] + pub grace_period: Option, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")] + pub image_pull_secrets: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initImage")] + pub init_image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] + pub liveness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] + pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")] + pub scheduler_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")] + pub service_account_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startupProbe")] + pub startup_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSpec")] + pub volume_spec: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinity { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub advanced: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "antiAffinityTopologyKey")] + pub anti_affinity_topology_key: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvanced { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")] + pub pod_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")] + pub pod_anti_affinity: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + pub preference: PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnv { + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvValueFromFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvValueFromResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")] + pub config_map_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvFromConfigMapRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorEnvFromSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorExpose { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] + pub external_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "internalTrafficPolicy")] + pub internal_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] + pub load_balancer_ip: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] + pub load_balancer_source_ranges: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorImagePullSecrets { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorLivenessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorLivenessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorLivenessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorLivenessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorLivenessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorLivenessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorPodSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorPodSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorPodSecurityContextSysctls { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorPodSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorReadinessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorReadinessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorReadinessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorReadinessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorReadinessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorReadinessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorStartupProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorStartupProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorStartupProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorStartupProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorStartupProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorStartupProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorTolerations { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecPersistentVolumeClaim { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecPersistentVolumeClaimDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecPersistentVolumeClaimDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecPersistentVolumeClaimResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecPersistentVolumeClaimSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLOrchestratorVolumeSpecPersistentVolumeClaimSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serverHost")] + pub server_host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serverUser")] + pub server_user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmmContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmmContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmmContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmmContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmmContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmmResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLPmmResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxy { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub haproxy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub router: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxy { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub configuration: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] + pub env_from: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expose: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracePeriod")] + pub grace_period: Option, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")] + pub image_pull_secrets: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initImage")] + pub init_image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] + pub liveness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] + pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")] + pub scheduler_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")] + pub service_account_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startupProbe")] + pub startup_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSpec")] + pub volume_spec: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinity { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub advanced: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "antiAffinityTopologyKey")] + pub anti_affinity_topology_key: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvanced { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")] + pub pod_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")] + pub pod_anti_affinity: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + pub preference: PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnv { + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvValueFromFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvValueFromResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")] + pub config_map_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvFromConfigMapRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyEnvFromSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyExpose { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] + pub external_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "internalTrafficPolicy")] + pub internal_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] + pub load_balancer_ip: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] + pub load_balancer_source_ranges: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyImagePullSecrets { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyLivenessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyLivenessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyLivenessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyLivenessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyLivenessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyLivenessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyPodSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyPodSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyPodSecurityContextSysctls { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyPodSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyReadinessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyReadinessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyReadinessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyReadinessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyReadinessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyReadinessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyStartupProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyStartupProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyStartupProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyStartupProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyStartupProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyStartupProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyTolerations { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecPersistentVolumeClaim { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecPersistentVolumeClaimDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecPersistentVolumeClaimDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecPersistentVolumeClaimResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecPersistentVolumeClaimSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyHaproxyVolumeSpecPersistentVolumeClaimSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouter { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub configuration: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] + pub env_from: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expose: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracePeriod")] + pub grace_period: Option, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")] + pub image_pull_secrets: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initImage")] + pub init_image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] + pub liveness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] + pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeClassName")] + pub runtime_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")] + pub scheduler_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")] + pub service_account_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startupProbe")] + pub startup_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSpec")] + pub volume_spec: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinity { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub advanced: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "antiAffinityTopologyKey")] + pub anti_affinity_topology_key: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvanced { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")] + pub pod_affinity: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")] + pub pod_anti_affinity: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + pub preference: PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution { + #[serde(rename = "podAffinityTerm")] + pub pod_affinity_term: PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, + pub weight: i32, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] + pub namespace_selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespaces: Option>, + #[serde(rename = "topologyKey")] + pub topology_key: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterAffinityAdvancedPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnv { + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvValueFromFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvValueFromResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")] + pub config_map_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvFromConfigMapRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterEnvFromSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterExpose { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] + pub external_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "internalTrafficPolicy")] + pub internal_traffic_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] + pub load_balancer_ip: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] + pub load_balancer_source_ranges: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterImagePullSecrets { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterLivenessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterLivenessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterLivenessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterLivenessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterLivenessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterLivenessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterPodSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterPodSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterPodSecurityContextSysctls { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterPodSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterReadinessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterReadinessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterReadinessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterReadinessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterReadinessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterReadinessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterStartupProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterStartupProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterStartupProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterStartupProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterStartupProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterStartupProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterTolerations { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpec { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] + pub empty_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] + pub host_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] + pub persistent_volume_claim: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecEmptyDir { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub medium: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] + pub size_limit: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecHostPath { + pub path: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecPersistentVolumeClaim { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] + pub volume_attributes_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecPersistentVolumeClaimDataSource { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecPersistentVolumeClaimDataSourceRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] + pub api_group: Option, + pub kind: String, + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecPersistentVolumeClaimResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecPersistentVolumeClaimSelector { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLProxyRouterVolumeSpecPersistentVolumeClaimSelectorMatchExpressions { + pub key: String, + pub operator: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLTls { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "SANs")] + pub sa_ns: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "issuerConf")] + pub issuer_conf: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLTlsIssuerConf { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub group: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkit { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")] + pub container_security_context: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] + pub env_from: Option>, + pub image: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")] + pub image_pull_secrets: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] + pub liveness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startupProbe")] + pub startup_probe: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitContainerSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitContainerSecurityContextCapabilities { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitContainerSecurityContextSeLinuxOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitContainerSecurityContextSeccompProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitContainerSecurityContextWindowsOptions { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnv { + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvValueFromFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvValueFromResourceFieldRef { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + pub resource: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")] + pub config_map_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvFromConfigMapRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitEnvFromSecretRef { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitImagePullSecrets { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitLivenessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitLivenessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitLivenessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitLivenessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitLivenessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitLivenessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitReadinessProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitReadinessProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitReadinessProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitReadinessProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitReadinessProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitReadinessProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitResources { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitResourcesClaims { + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitStartupProbe { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitStartupProbeExec { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitStartupProbeGrpc { + pub port: i32, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitStartupProbeHttpGet { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + pub port: IntOrString, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitStartupProbeHttpGetHttpHeaders { + pub name: String, + pub value: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLToolkitStartupProbeTcpSocket { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + pub port: IntOrString, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLUpgradeOptions { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub apply: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "versionServiceEndpoint")] + pub version_service_endpoint: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLStatus { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupVersion")] + pub backup_version: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub haproxy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mysql: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub orchestrator: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "pmmVersion")] + pub pmm_version: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub router: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "toolkitVersion")] + pub toolkit_version: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLStatusConditions { + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + pub message: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, + pub reason: String, + pub status: PerconaServerMySQLStatusConditionsStatus, + #[serde(rename = "type")] + pub r#type: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum PerconaServerMySQLStatusConditionsStatus { + True, + False, + Unknown, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLStatusHaproxy { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ready: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub version: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLStatusMysql { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ready: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub version: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLStatusOrchestrator { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ready: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub version: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaServerMySQLStatusRouter { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ready: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub size: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub version: Option, +} +