{
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "The specification of the Kafka MirrorMaker 2 cluster.",
      "properties": {
        "clientRackInitImage": {
          "description": "The image of the init container used for initializing the `client.rack`.",
          "type": "string"
        },
        "image": {
          "description": "The container image used for Kafka Connect pods. If no image name is explicitly specified, it is determined based on the `spec.version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration.",
          "type": "string"
        },
        "jmxOptions": {
          "description": "JMX Options.",
          "properties": {
            "authentication": {
              "description": "Authentication configuration for connecting to the JMX port.",
              "properties": {
                "type": {
                  "description": "Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.",
                  "enum": [
                    "password"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "jvmOptions": {
          "description": "JVM Options for pods.",
          "properties": {
            "-XX": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "A map of -XX options to the JVM.",
              "type": "object"
            },
            "-Xms": {
              "description": "-Xms option to to the JVM.",
              "pattern": "^[0-9]+[mMgG]?$",
              "type": "string"
            },
            "-Xmx": {
              "description": "-Xmx option to to the JVM.",
              "pattern": "^[0-9]+[mMgG]?$",
              "type": "string"
            },
            "gcLoggingEnabled": {
              "description": "Specifies whether the Garbage Collection logging is enabled. The default is false.",
              "type": "boolean"
            },
            "javaSystemProperties": {
              "description": "A map of additional system properties which will be passed using the `-D` option to the JVM.",
              "items": {
                "properties": {
                  "name": {
                    "description": "The system property name.",
                    "type": "string"
                  },
                  "value": {
                    "description": "The system property value.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "livenessProbe": {
          "description": "Pod liveness checking.",
          "properties": {
            "failureThreshold": {
              "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            },
            "initialDelaySeconds": {
              "description": "The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.",
              "minimum": 0,
              "type": "integer"
            },
            "periodSeconds": {
              "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            },
            "successThreshold": {
              "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            },
            "timeoutSeconds": {
              "description": "The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "logging": {
          "description": "Logging configuration for Kafka Connect.",
          "properties": {
            "loggers": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "A Map from logger name to logger level.",
              "type": "object"
            },
            "type": {
              "description": "Logging type, must be either 'inline' or 'external'.",
              "enum": [
                "inline",
                "external"
              ],
              "type": "string"
            },
            "valueFrom": {
              "description": "`ConfigMap` entry where the logging configuration is stored. ",
              "properties": {
                "configMapKeyRef": {
                  "description": "Reference to the key in the ConfigMap containing the configuration.",
                  "properties": {
                    "key": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "optional": {
                      "type": "boolean"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "type"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "metricsConfig": {
          "description": "Metrics configuration.",
          "properties": {
            "type": {
              "description": "Metrics type. The supported types are `jmxPrometheusExporter` and `strimziMetricsReporter`. Type `jmxPrometheusExporter` uses the Prometheus JMX Exporter to expose Kafka JMX metrics in Prometheus format through an HTTP endpoint. Type `strimziMetricsReporter` uses the Strimzi Metrics Reporter to directly expose Kafka metrics in Prometheus format through an HTTP endpoint.",
              "enum": [
                "jmxPrometheusExporter",
                "strimziMetricsReporter"
              ],
              "type": "string"
            },
            "valueFrom": {
              "description": "ConfigMap entry where the Prometheus JMX Exporter configuration is stored.",
              "properties": {
                "configMapKeyRef": {
                  "description": "Reference to the key in the ConfigMap containing the configuration.",
                  "properties": {
                    "key": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "optional": {
                      "type": "boolean"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "values": {
              "description": "Configuration values for the Strimzi Metrics Reporter.",
              "properties": {
                "allowList": {
                  "description": "A list of regex patterns to filter the metrics to collect. Should contain at least one element.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "type"
          ],
          "type": "object",
          "x-kubernetes-validations": [
            {
              "message": "valueFrom property is required",
              "rule": "self.type != 'jmxPrometheusExporter' || has(self.valueFrom)"
            }
          ],
          "additionalProperties": false
        },
        "mirrors": {
          "description": "Configuration of the MirrorMaker 2 connectors.",
          "items": {
            "properties": {
              "checkpointConnector": {
                "description": "The specification of the Kafka MirrorMaker 2 checkpoint connector.",
                "properties": {
                  "alterOffsets": {
                    "description": "Configuration for altering offsets.",
                    "properties": {
                      "fromConfigMap": {
                        "description": "Reference to the ConfigMap where the new offsets are stored.",
                        "properties": {
                          "name": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "fromConfigMap"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "autoRestart": {
                    "description": "Automatic restart of connector and tasks configuration.",
                    "properties": {
                      "enabled": {
                        "description": "Whether automatic restart for failed connectors and tasks should be enabled or disabled.",
                        "type": "boolean"
                      },
                      "maxRestarts": {
                        "description": "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts.",
                        "type": "integer"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "config": {
                    "description": "The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max.",
                    "type": "object",
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "listOffsets": {
                    "description": "Configuration for listing offsets.",
                    "properties": {
                      "toConfigMap": {
                        "description": "Reference to the ConfigMap where the list of offsets will be written to.",
                        "properties": {
                          "name": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "toConfigMap"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "state": {
                    "description": "The state the connector should be in. Defaults to running.",
                    "enum": [
                      "paused",
                      "stopped",
                      "running"
                    ],
                    "type": "string"
                  },
                  "tasksMax": {
                    "description": "The maximum number of tasks for the Kafka Connector.",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "version": {
                    "description": "Desired version or version range to respect when starting the Kafka Connector. This is only supported when using Kafka Connect version 4.1.0 and higher.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "groupsExcludePattern": {
                "description": "A regular expression matching the consumer groups to exclude from mirroring. Comma-separated lists are also supported.",
                "type": "string"
              },
              "groupsPattern": {
                "description": "A regular expression matching the consumer groups to be mirrored. Comma-separated lists are also supported.",
                "type": "string"
              },
              "source": {
                "description": "The source Apache Kafka cluster. The source Kafka cluster is used by the Kafka MirrorMaker 2 connectors.",
                "properties": {
                  "alias": {
                    "description": "Alias used to reference the Kafka cluster.",
                    "pattern": "^[a-zA-Z0-9\\._\\-]{1,100}$",
                    "type": "string"
                  },
                  "authentication": {
                    "description": "Authentication configuration for connecting to the cluster.",
                    "properties": {
                      "certificateAndKey": {
                        "description": "Reference to the `Secret` which holds the certificate and private key pair.",
                        "properties": {
                          "certificate": {
                            "description": "The name of the file certificate in the Secret.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208.",
                            "type": "string"
                          },
                          "secretName": {
                            "description": "The name of the Secret containing the certificate.",
                            "type": "string"
                          }
                        },
                        "required": [
                          "secretName",
                          "certificate",
                          "key"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "config": {
                        "description": "Configuration for the custom authentication mechanism. Only properties with the `sasl.` and `ssl.keystore.` prefixes are allowed. Specify other options in the regular configuration section of the custom resource.",
                        "type": "object",
                        "x-kubernetes-preserve-unknown-fields": true
                      },
                      "passwordSecret": {
                        "description": "Reference to the `Secret` which holds the password.",
                        "properties": {
                          "password": {
                            "description": "The name of the key in the Secret under which the password is stored.",
                            "type": "string"
                          },
                          "secretName": {
                            "description": "The name of the Secret containing the password.",
                            "type": "string"
                          }
                        },
                        "required": [
                          "secretName",
                          "password"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "sasl": {
                        "description": "Enable or disable SASL on this authentication mechanism.",
                        "type": "boolean"
                      },
                      "type": {
                        "description": "Specifies the authentication type. Supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, 'oauth', and `custom`. `tls` uses TLS client authentication and is supported only over TLS connections. `scram-sha-256` and `scram-sha-512` use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 authentication, respectively. `plain` uses SASL PLAIN authentication. `oauth` uses SASL OAUTHBEARER authentication. `custom` allows you to configure a custom authentication mechanism. As of Strimzi 0.49.0, `oauth` type is deprecated and will be removed in the `v1` API version. Please use `custom` type instead.",
                        "enum": [
                          "tls",
                          "scram-sha-256",
                          "scram-sha-512",
                          "plain",
                          "custom"
                        ],
                        "type": "string"
                      },
                      "username": {
                        "description": "Username used for the authentication.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "bootstrapServers": {
                    "description": "A comma-separated list of `host:port` pairs for establishing the connection to the Kafka cluster.",
                    "type": "string"
                  },
                  "config": {
                    "description": "The MirrorMaker 2 cluster config. Properties with the following prefixes cannot be set: ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).",
                    "type": "object",
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "tls": {
                    "description": "TLS configuration for connecting MirrorMaker 2 connectors to a cluster.",
                    "properties": {
                      "trustedCertificates": {
                        "description": "Trusted certificates for TLS connection.",
                        "items": {
                          "oneOf": [
                            {
                              "properties": {
                                "certificate": {}
                              },
                              "required": [
                                "certificate"
                              ]
                            },
                            {
                              "properties": {
                                "pattern": {}
                              },
                              "required": [
                                "pattern"
                              ]
                            }
                          ],
                          "properties": {
                            "certificate": {
                              "description": "The name of the file certificate in the secret.",
                              "type": "string"
                            },
                            "pattern": {
                              "description": "Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.",
                              "type": "string"
                            },
                            "secretName": {
                              "description": "The name of the Secret containing the certificate.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "secretName"
                          ],
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "array"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "required": [
                  "alias",
                  "bootstrapServers"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "sourceConnector": {
                "description": "The specification of the Kafka MirrorMaker 2 source connector.",
                "properties": {
                  "alterOffsets": {
                    "description": "Configuration for altering offsets.",
                    "properties": {
                      "fromConfigMap": {
                        "description": "Reference to the ConfigMap where the new offsets are stored.",
                        "properties": {
                          "name": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "fromConfigMap"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "autoRestart": {
                    "description": "Automatic restart of connector and tasks configuration.",
                    "properties": {
                      "enabled": {
                        "description": "Whether automatic restart for failed connectors and tasks should be enabled or disabled.",
                        "type": "boolean"
                      },
                      "maxRestarts": {
                        "description": "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts.",
                        "type": "integer"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "config": {
                    "description": "The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max.",
                    "type": "object",
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "listOffsets": {
                    "description": "Configuration for listing offsets.",
                    "properties": {
                      "toConfigMap": {
                        "description": "Reference to the ConfigMap where the list of offsets will be written to.",
                        "properties": {
                          "name": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "toConfigMap"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "state": {
                    "description": "The state the connector should be in. Defaults to running.",
                    "enum": [
                      "paused",
                      "stopped",
                      "running"
                    ],
                    "type": "string"
                  },
                  "tasksMax": {
                    "description": "The maximum number of tasks for the Kafka Connector.",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "version": {
                    "description": "Desired version or version range to respect when starting the Kafka Connector. This is only supported when using Kafka Connect version 4.1.0 and higher.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "topicsExcludePattern": {
                "description": "A regular expression matching the topics to exclude from mirroring. Comma-separated lists are also supported.",
                "type": "string"
              },
              "topicsPattern": {
                "description": "A regular expression matching the topics to be mirrored, for example, \"topic1\\|topic2\\|topic3\". Comma-separated lists are also supported.",
                "type": "string"
              }
            },
            "required": [
              "source"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "rack": {
          "description": "Configuration of the node label which will be used as the `client.rack` consumer configuration.",
          "properties": {
            "topologyKey": {
              "description": "A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2.",
              "example": "topology.kubernetes.io/zone",
              "type": "string"
            }
          },
          "required": [
            "topologyKey"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "readinessProbe": {
          "description": "Pod readiness checking.",
          "properties": {
            "failureThreshold": {
              "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            },
            "initialDelaySeconds": {
              "description": "The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.",
              "minimum": 0,
              "type": "integer"
            },
            "periodSeconds": {
              "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            },
            "successThreshold": {
              "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            },
            "timeoutSeconds": {
              "description": "The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.",
              "minimum": 1,
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "replicas": {
          "description": "The number of pods in the Kafka Connect group. Required in the `v1` version of the Strimzi API. Defaults to `3` in the `v1beta2` version of the Strimzi API.",
          "type": "integer"
        },
        "resources": {
          "description": "The maximum limits for CPU and memory resources and the requested initial resources.",
          "properties": {
            "claims": {
              "items": {
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "request": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "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",
          "additionalProperties": false
        },
        "target": {
          "description": "The target Apache Kafka cluster. The target Kafka cluster is used by the underlying Kafka Connect framework for its internal topics.",
          "properties": {
            "alias": {
              "description": "Alias used to reference the Kafka cluster.",
              "pattern": "^[a-zA-Z0-9\\._\\-]{1,100}$",
              "type": "string"
            },
            "authentication": {
              "description": "Authentication configuration for connecting to the cluster.",
              "properties": {
                "certificateAndKey": {
                  "description": "Reference to the `Secret` which holds the certificate and private key pair.",
                  "properties": {
                    "certificate": {
                      "description": "The name of the file certificate in the Secret.",
                      "type": "string"
                    },
                    "key": {
                      "description": "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Secret containing the certificate.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "secretName",
                    "certificate",
                    "key"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "config": {
                  "description": "Configuration for the custom authentication mechanism. Only properties with the `sasl.` and `ssl.keystore.` prefixes are allowed. Specify other options in the regular configuration section of the custom resource.",
                  "type": "object",
                  "x-kubernetes-preserve-unknown-fields": true
                },
                "passwordSecret": {
                  "description": "Reference to the `Secret` which holds the password.",
                  "properties": {
                    "password": {
                      "description": "The name of the key in the Secret under which the password is stored.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Secret containing the password.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "secretName",
                    "password"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "sasl": {
                  "description": "Enable or disable SASL on this authentication mechanism.",
                  "type": "boolean"
                },
                "type": {
                  "description": "Specifies the authentication type. Supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, 'oauth', and `custom`. `tls` uses TLS client authentication and is supported only over TLS connections. `scram-sha-256` and `scram-sha-512` use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 authentication, respectively. `plain` uses SASL PLAIN authentication. `oauth` uses SASL OAUTHBEARER authentication. `custom` allows you to configure a custom authentication mechanism. As of Strimzi 0.49.0, `oauth` type is deprecated and will be removed in the `v1` API version. Please use `custom` type instead.",
                  "enum": [
                    "tls",
                    "scram-sha-256",
                    "scram-sha-512",
                    "plain",
                    "custom"
                  ],
                  "type": "string"
                },
                "username": {
                  "description": "Username used for the authentication.",
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "bootstrapServers": {
              "description": "A comma-separated list of `host:port` pairs for establishing the connection to the Kafka cluster.",
              "type": "string"
            },
            "config": {
              "description": "The MirrorMaker 2 cluster config. Properties with the following prefixes cannot be set: ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).",
              "type": "object",
              "x-kubernetes-preserve-unknown-fields": true
            },
            "configStorageTopic": {
              "description": "The name of the Kafka topic where connector configurations are stored. Required.",
              "type": "string"
            },
            "groupId": {
              "description": "A unique ID that identifies the Connect cluster group. Required.",
              "type": "string"
            },
            "offsetStorageTopic": {
              "description": "The name of the Kafka topic where source connector offsets are stored. Required.",
              "type": "string"
            },
            "statusStorageTopic": {
              "description": "The name of the Kafka topic where connector and task statuses are stored. Required.",
              "type": "string"
            },
            "tls": {
              "description": "TLS configuration for connecting MirrorMaker 2 connectors to a cluster.",
              "properties": {
                "trustedCertificates": {
                  "description": "Trusted certificates for TLS connection.",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "certificate": {}
                        },
                        "required": [
                          "certificate"
                        ]
                      },
                      {
                        "properties": {
                          "pattern": {}
                        },
                        "required": [
                          "pattern"
                        ]
                      }
                    ],
                    "properties": {
                      "certificate": {
                        "description": "The name of the file certificate in the secret.",
                        "type": "string"
                      },
                      "pattern": {
                        "description": "Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used.",
                        "type": "string"
                      },
                      "secretName": {
                        "description": "The name of the Secret containing the certificate.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "secretName"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "alias",
            "bootstrapServers",
            "groupId",
            "configStorageTopic",
            "statusStorageTopic",
            "offsetStorageTopic"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "template": {
          "description": "Template for Kafka Connect and Kafka MirrorMaker 2 resources. The template allows users to specify how the `Pods`, `Service`, and other services are generated.",
          "properties": {
            "apiService": {
              "description": "Template for Kafka Connect API `Service`.",
              "properties": {
                "ipFamilies": {
                  "description": "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.",
                  "items": {
                    "enum": [
                      "IPv4",
                      "IPv6"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                },
                "ipFamilyPolicy": {
                  "description": "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.",
                  "enum": [
                    "SingleStack",
                    "PreferDualStack",
                    "RequireDualStack"
                  ],
                  "type": "string"
                },
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "buildConfig": {
              "description": "Template for the Kafka Connect BuildConfig used to build new container images. The BuildConfig is used only on OpenShift.",
              "properties": {
                "metadata": {
                  "description": "Metadata to apply to the `PodDisruptionBudgetTemplate` resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "pullSecret": {
                  "description": "Container Registry Secret with the credentials for pulling the base image.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "buildContainer": {
              "description": "Template for the Kafka Connect Build container. The build container is used only on Kubernetes.",
              "properties": {
                "env": {
                  "description": "Environment variables which should be applied to the container.",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "value": {}
                        },
                        "required": [
                          "value"
                        ]
                      },
                      {
                        "properties": {
                          "valueFrom": {}
                        },
                        "required": [
                          "valueFrom"
                        ]
                      }
                    ],
                    "properties": {
                      "name": {
                        "description": "The environment variable key.",
                        "type": "string"
                      },
                      "value": {
                        "description": "The environment variable value.",
                        "type": "string"
                      },
                      "valueFrom": {
                        "description": "Reference to the secret or config map property to which the environment variable is set.",
                        "oneOf": [
                          {
                            "properties": {
                              "secretKeyRef": {}
                            },
                            "required": [
                              "secretKeyRef"
                            ]
                          },
                          {
                            "properties": {
                              "configMapKeyRef": {}
                            },
                            "required": [
                              "configMapKeyRef"
                            ]
                          }
                        ],
                        "properties": {
                          "configMapKeyRef": {
                            "description": "Reference to a key in a config map.",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "secretKeyRef": {
                            "description": "Reference to a key in a secret.",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "securityContext": {
                  "description": "Security context for the container.",
                  "properties": {
                    "allowPrivilegeEscalation": {
                      "type": "boolean"
                    },
                    "appArmorProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "capabilities": {
                      "properties": {
                        "add": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "drop": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "privileged": {
                      "type": "boolean"
                    },
                    "procMount": {
                      "type": "string"
                    },
                    "readOnlyRootFilesystem": {
                      "type": "boolean"
                    },
                    "runAsGroup": {
                      "type": "integer"
                    },
                    "runAsNonRoot": {
                      "type": "boolean"
                    },
                    "runAsUser": {
                      "type": "integer"
                    },
                    "seLinuxOptions": {
                      "properties": {
                        "level": {
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "user": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "seccompProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "windowsOptions": {
                      "properties": {
                        "gmsaCredentialSpec": {
                          "type": "string"
                        },
                        "gmsaCredentialSpecName": {
                          "type": "string"
                        },
                        "hostProcess": {
                          "type": "boolean"
                        },
                        "runAsUserName": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "volumeMounts": {
                  "description": "Additional volume mounts which should be applied to the container.",
                  "items": {
                    "properties": {
                      "mountPath": {
                        "type": "string"
                      },
                      "mountPropagation": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "readOnly": {
                        "type": "boolean"
                      },
                      "recursiveReadOnly": {
                        "type": "string"
                      },
                      "subPath": {
                        "type": "string"
                      },
                      "subPathExpr": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "buildPod": {
              "description": "Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes.",
              "properties": {
                "affinity": {
                  "description": "The pod's affinity rules.",
                  "properties": {
                    "nodeAffinity": {
                      "properties": {
                        "preferredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "preference": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchFields": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "weight": {
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        },
                        "requiredDuringSchedulingIgnoredDuringExecution": {
                          "properties": {
                            "nodeSelectorTerms": {
                              "items": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchFields": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "type": "array"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "podAffinity": {
                      "properties": {
                        "preferredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "podAffinityTerm": {
                                "properties": {
                                  "labelSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "matchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "mismatchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "namespaceSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "namespaces": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "topologyKey": {
                                    "type": "string"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "weight": {
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        },
                        "requiredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "labelSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "matchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "mismatchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "namespaceSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "namespaces": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "topologyKey": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "podAntiAffinity": {
                      "properties": {
                        "preferredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "podAffinityTerm": {
                                "properties": {
                                  "labelSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "matchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "mismatchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "namespaceSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "namespaces": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "topologyKey": {
                                    "type": "string"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "weight": {
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        },
                        "requiredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "labelSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "matchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "mismatchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "namespaceSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "namespaces": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "topologyKey": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "dnsConfig": {
                  "description": "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy.",
                  "properties": {
                    "nameservers": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "options": {
                      "items": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "searches": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "dnsPolicy": {
                  "description": "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`.",
                  "enum": [
                    "ClusterFirst",
                    "ClusterFirstWithHostNet",
                    "Default",
                    "None"
                  ],
                  "type": "string"
                },
                "enableServiceLinks": {
                  "description": "Indicates whether information about services should be injected into Pod's environment variables.",
                  "type": "boolean"
                },
                "hostAliases": {
                  "description": "The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.",
                  "items": {
                    "properties": {
                      "hostnames": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "ip": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "imagePullSecrets": {
                  "description": "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.",
                  "items": {
                    "properties": {
                      "name": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "priorityClassName": {
                  "description": "The name of the priority class used to assign priority to the pods. ",
                  "type": "string"
                },
                "schedulerName": {
                  "description": "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.",
                  "type": "string"
                },
                "securityContext": {
                  "description": "Configures pod-level security attributes and common container settings.",
                  "properties": {
                    "appArmorProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "fsGroup": {
                      "type": "integer"
                    },
                    "fsGroupChangePolicy": {
                      "type": "string"
                    },
                    "runAsGroup": {
                      "type": "integer"
                    },
                    "runAsNonRoot": {
                      "type": "boolean"
                    },
                    "runAsUser": {
                      "type": "integer"
                    },
                    "seLinuxChangePolicy": {
                      "type": "string"
                    },
                    "seLinuxOptions": {
                      "properties": {
                        "level": {
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "user": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "seccompProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "supplementalGroups": {
                      "items": {
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "supplementalGroupsPolicy": {
                      "type": "string"
                    },
                    "sysctls": {
                      "items": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "windowsOptions": {
                      "properties": {
                        "gmsaCredentialSpec": {
                          "type": "string"
                        },
                        "gmsaCredentialSpecName": {
                          "type": "string"
                        },
                        "hostProcess": {
                          "type": "boolean"
                        },
                        "runAsUserName": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "terminationGracePeriodSeconds": {
                  "description": "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.",
                  "minimum": 0,
                  "type": "integer"
                },
                "tmpDirSizeLimit": {
                  "description": "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.",
                  "pattern": "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
                  "type": "string"
                },
                "tolerations": {
                  "description": "The pod's tolerations.",
                  "items": {
                    "properties": {
                      "effect": {
                        "type": "string"
                      },
                      "key": {
                        "type": "string"
                      },
                      "operator": {
                        "type": "string"
                      },
                      "tolerationSeconds": {
                        "type": "integer"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "topologySpreadConstraints": {
                  "description": "The pod's topology spread constraints.",
                  "items": {
                    "properties": {
                      "labelSelector": {
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "operator": {
                                  "type": "string"
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "matchLabelKeys": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "maxSkew": {
                        "type": "integer"
                      },
                      "minDomains": {
                        "type": "integer"
                      },
                      "nodeAffinityPolicy": {
                        "type": "string"
                      },
                      "nodeTaintsPolicy": {
                        "type": "string"
                      },
                      "topologyKey": {
                        "type": "string"
                      },
                      "whenUnsatisfiable": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "volumes": {
                  "description": "Additional volumes that can be mounted to the pod.",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "configMap": {},
                          "csi": {},
                          "emptyDir": {},
                          "image": {},
                          "persistentVolumeClaim": {},
                          "secret": {}
                        }
                      }
                    ],
                    "properties": {
                      "configMap": {
                        "description": "`ConfigMap` to use to populate the volume.",
                        "properties": {
                          "defaultMode": {
                            "type": "integer"
                          },
                          "items": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "mode": {
                                  "type": "integer"
                                },
                                "path": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "name": {
                            "type": "string"
                          },
                          "optional": {
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "csi": {
                        "description": "`CSIVolumeSource` object to use to populate the volume.",
                        "properties": {
                          "driver": {
                            "type": "string"
                          },
                          "fsType": {
                            "type": "string"
                          },
                          "nodePublishSecretRef": {
                            "properties": {
                              "name": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "readOnly": {
                            "type": "boolean"
                          },
                          "volumeAttributes": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "emptyDir": {
                        "description": "`EmptyDir` to use to populate the volume.",
                        "properties": {
                          "medium": {
                            "description": "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium.",
                            "enum": [
                              "Memory"
                            ],
                            "type": "string"
                          },
                          "sizeLimit": {
                            "description": "The total amount of local storage required for this EmptyDir volume (for example 1Gi).",
                            "pattern": "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "image": {
                        "description": "`ImageVolumeSource` object to use to populate the volume.",
                        "properties": {
                          "pullPolicy": {
                            "type": "string"
                          },
                          "reference": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "name": {
                        "description": "Name to use for the volume. Required.",
                        "type": "string"
                      },
                      "persistentVolumeClaim": {
                        "description": "`PersistentVolumeClaim` object to use to populate the volume.",
                        "properties": {
                          "claimName": {
                            "type": "string"
                          },
                          "readOnly": {
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "secret": {
                        "description": "`Secret` to use to populate the volume.",
                        "properties": {
                          "defaultMode": {
                            "type": "integer"
                          },
                          "items": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "mode": {
                                  "type": "integer"
                                },
                                "path": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "optional": {
                            "type": "boolean"
                          },
                          "secretName": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "buildServiceAccount": {
              "description": "Template for the Kafka Connect Build service account.",
              "properties": {
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "clusterRoleBinding": {
              "description": "Template for the Kafka Connect ClusterRoleBinding.",
              "properties": {
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "connectContainer": {
              "description": "Template for the Kafka Connect container.",
              "properties": {
                "env": {
                  "description": "Environment variables which should be applied to the container.",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "value": {}
                        },
                        "required": [
                          "value"
                        ]
                      },
                      {
                        "properties": {
                          "valueFrom": {}
                        },
                        "required": [
                          "valueFrom"
                        ]
                      }
                    ],
                    "properties": {
                      "name": {
                        "description": "The environment variable key.",
                        "type": "string"
                      },
                      "value": {
                        "description": "The environment variable value.",
                        "type": "string"
                      },
                      "valueFrom": {
                        "description": "Reference to the secret or config map property to which the environment variable is set.",
                        "oneOf": [
                          {
                            "properties": {
                              "secretKeyRef": {}
                            },
                            "required": [
                              "secretKeyRef"
                            ]
                          },
                          {
                            "properties": {
                              "configMapKeyRef": {}
                            },
                            "required": [
                              "configMapKeyRef"
                            ]
                          }
                        ],
                        "properties": {
                          "configMapKeyRef": {
                            "description": "Reference to a key in a config map.",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "secretKeyRef": {
                            "description": "Reference to a key in a secret.",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "securityContext": {
                  "description": "Security context for the container.",
                  "properties": {
                    "allowPrivilegeEscalation": {
                      "type": "boolean"
                    },
                    "appArmorProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "capabilities": {
                      "properties": {
                        "add": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "drop": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "privileged": {
                      "type": "boolean"
                    },
                    "procMount": {
                      "type": "string"
                    },
                    "readOnlyRootFilesystem": {
                      "type": "boolean"
                    },
                    "runAsGroup": {
                      "type": "integer"
                    },
                    "runAsNonRoot": {
                      "type": "boolean"
                    },
                    "runAsUser": {
                      "type": "integer"
                    },
                    "seLinuxOptions": {
                      "properties": {
                        "level": {
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "user": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "seccompProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "windowsOptions": {
                      "properties": {
                        "gmsaCredentialSpec": {
                          "type": "string"
                        },
                        "gmsaCredentialSpecName": {
                          "type": "string"
                        },
                        "hostProcess": {
                          "type": "boolean"
                        },
                        "runAsUserName": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "volumeMounts": {
                  "description": "Additional volume mounts which should be applied to the container.",
                  "items": {
                    "properties": {
                      "mountPath": {
                        "type": "string"
                      },
                      "mountPropagation": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "readOnly": {
                        "type": "boolean"
                      },
                      "recursiveReadOnly": {
                        "type": "string"
                      },
                      "subPath": {
                        "type": "string"
                      },
                      "subPathExpr": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "headlessService": {
              "description": "Template for Kafka Connect headless `Service`.",
              "properties": {
                "ipFamilies": {
                  "description": "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting.",
                  "items": {
                    "enum": [
                      "IPv4",
                      "IPv6"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                },
                "ipFamilyPolicy": {
                  "description": "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type.",
                  "enum": [
                    "SingleStack",
                    "PreferDualStack",
                    "RequireDualStack"
                  ],
                  "type": "string"
                },
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "initContainer": {
              "description": "Template for the Kafka init container.",
              "properties": {
                "env": {
                  "description": "Environment variables which should be applied to the container.",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "value": {}
                        },
                        "required": [
                          "value"
                        ]
                      },
                      {
                        "properties": {
                          "valueFrom": {}
                        },
                        "required": [
                          "valueFrom"
                        ]
                      }
                    ],
                    "properties": {
                      "name": {
                        "description": "The environment variable key.",
                        "type": "string"
                      },
                      "value": {
                        "description": "The environment variable value.",
                        "type": "string"
                      },
                      "valueFrom": {
                        "description": "Reference to the secret or config map property to which the environment variable is set.",
                        "oneOf": [
                          {
                            "properties": {
                              "secretKeyRef": {}
                            },
                            "required": [
                              "secretKeyRef"
                            ]
                          },
                          {
                            "properties": {
                              "configMapKeyRef": {}
                            },
                            "required": [
                              "configMapKeyRef"
                            ]
                          }
                        ],
                        "properties": {
                          "configMapKeyRef": {
                            "description": "Reference to a key in a config map.",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "secretKeyRef": {
                            "description": "Reference to a key in a secret.",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "optional": {
                                "type": "boolean"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "securityContext": {
                  "description": "Security context for the container.",
                  "properties": {
                    "allowPrivilegeEscalation": {
                      "type": "boolean"
                    },
                    "appArmorProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "capabilities": {
                      "properties": {
                        "add": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "drop": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "privileged": {
                      "type": "boolean"
                    },
                    "procMount": {
                      "type": "string"
                    },
                    "readOnlyRootFilesystem": {
                      "type": "boolean"
                    },
                    "runAsGroup": {
                      "type": "integer"
                    },
                    "runAsNonRoot": {
                      "type": "boolean"
                    },
                    "runAsUser": {
                      "type": "integer"
                    },
                    "seLinuxOptions": {
                      "properties": {
                        "level": {
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "user": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "seccompProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "windowsOptions": {
                      "properties": {
                        "gmsaCredentialSpec": {
                          "type": "string"
                        },
                        "gmsaCredentialSpecName": {
                          "type": "string"
                        },
                        "hostProcess": {
                          "type": "boolean"
                        },
                        "runAsUserName": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "volumeMounts": {
                  "description": "Additional volume mounts which should be applied to the container.",
                  "items": {
                    "properties": {
                      "mountPath": {
                        "type": "string"
                      },
                      "mountPropagation": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "readOnly": {
                        "type": "boolean"
                      },
                      "recursiveReadOnly": {
                        "type": "string"
                      },
                      "subPath": {
                        "type": "string"
                      },
                      "subPathExpr": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "jmxSecret": {
              "description": "Template for Secret of the Kafka Connect Cluster JMX authentication.",
              "properties": {
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "pod": {
              "description": "Template for Kafka Connect `Pods`.",
              "properties": {
                "affinity": {
                  "description": "The pod's affinity rules.",
                  "properties": {
                    "nodeAffinity": {
                      "properties": {
                        "preferredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "preference": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchFields": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "weight": {
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        },
                        "requiredDuringSchedulingIgnoredDuringExecution": {
                          "properties": {
                            "nodeSelectorTerms": {
                              "items": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchFields": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "type": "array"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "podAffinity": {
                      "properties": {
                        "preferredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "podAffinityTerm": {
                                "properties": {
                                  "labelSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "matchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "mismatchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "namespaceSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "namespaces": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "topologyKey": {
                                    "type": "string"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "weight": {
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        },
                        "requiredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "labelSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "matchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "mismatchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "namespaceSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "namespaces": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "topologyKey": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "podAntiAffinity": {
                      "properties": {
                        "preferredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "podAffinityTerm": {
                                "properties": {
                                  "labelSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "matchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "mismatchLabelKeys": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "namespaceSelector": {
                                    "properties": {
                                      "matchExpressions": {
                                        "items": {
                                          "properties": {
                                            "key": {
                                              "type": "string"
                                            },
                                            "operator": {
                                              "type": "string"
                                            },
                                            "values": {
                                              "items": {
                                                "type": "string"
                                              },
                                              "type": "array"
                                            }
                                          },
                                          "type": "object",
                                          "additionalProperties": false
                                        },
                                        "type": "array"
                                      },
                                      "matchLabels": {
                                        "additionalProperties": {
                                          "type": "string"
                                        },
                                        "type": "object"
                                      }
                                    },
                                    "type": "object",
                                    "additionalProperties": false
                                  },
                                  "namespaces": {
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "topologyKey": {
                                    "type": "string"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "weight": {
                                "type": "integer"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        },
                        "requiredDuringSchedulingIgnoredDuringExecution": {
                          "items": {
                            "properties": {
                              "labelSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "matchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "mismatchLabelKeys": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "namespaceSelector": {
                                "properties": {
                                  "matchExpressions": {
                                    "items": {
                                      "properties": {
                                        "key": {
                                          "type": "string"
                                        },
                                        "operator": {
                                          "type": "string"
                                        },
                                        "values": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object",
                                      "additionalProperties": false
                                    },
                                    "type": "array"
                                  },
                                  "matchLabels": {
                                    "additionalProperties": {
                                      "type": "string"
                                    },
                                    "type": "object"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "namespaces": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              },
                              "topologyKey": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "dnsConfig": {
                  "description": "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy.",
                  "properties": {
                    "nameservers": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "options": {
                      "items": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "searches": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "dnsPolicy": {
                  "description": "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`.",
                  "enum": [
                    "ClusterFirst",
                    "ClusterFirstWithHostNet",
                    "Default",
                    "None"
                  ],
                  "type": "string"
                },
                "enableServiceLinks": {
                  "description": "Indicates whether information about services should be injected into Pod's environment variables.",
                  "type": "boolean"
                },
                "hostAliases": {
                  "description": "The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.",
                  "items": {
                    "properties": {
                      "hostnames": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "ip": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "imagePullSecrets": {
                  "description": "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored.",
                  "items": {
                    "properties": {
                      "name": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "priorityClassName": {
                  "description": "The name of the priority class used to assign priority to the pods. ",
                  "type": "string"
                },
                "schedulerName": {
                  "description": "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used.",
                  "type": "string"
                },
                "securityContext": {
                  "description": "Configures pod-level security attributes and common container settings.",
                  "properties": {
                    "appArmorProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "fsGroup": {
                      "type": "integer"
                    },
                    "fsGroupChangePolicy": {
                      "type": "string"
                    },
                    "runAsGroup": {
                      "type": "integer"
                    },
                    "runAsNonRoot": {
                      "type": "boolean"
                    },
                    "runAsUser": {
                      "type": "integer"
                    },
                    "seLinuxChangePolicy": {
                      "type": "string"
                    },
                    "seLinuxOptions": {
                      "properties": {
                        "level": {
                          "type": "string"
                        },
                        "role": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "user": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "seccompProfile": {
                      "properties": {
                        "localhostProfile": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "supplementalGroups": {
                      "items": {
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    "supplementalGroupsPolicy": {
                      "type": "string"
                    },
                    "sysctls": {
                      "items": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "windowsOptions": {
                      "properties": {
                        "gmsaCredentialSpec": {
                          "type": "string"
                        },
                        "gmsaCredentialSpecName": {
                          "type": "string"
                        },
                        "hostProcess": {
                          "type": "boolean"
                        },
                        "runAsUserName": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "terminationGracePeriodSeconds": {
                  "description": "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds.",
                  "minimum": 0,
                  "type": "integer"
                },
                "tmpDirSizeLimit": {
                  "description": "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources.",
                  "pattern": "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
                  "type": "string"
                },
                "tolerations": {
                  "description": "The pod's tolerations.",
                  "items": {
                    "properties": {
                      "effect": {
                        "type": "string"
                      },
                      "key": {
                        "type": "string"
                      },
                      "operator": {
                        "type": "string"
                      },
                      "tolerationSeconds": {
                        "type": "integer"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "topologySpreadConstraints": {
                  "description": "The pod's topology spread constraints.",
                  "items": {
                    "properties": {
                      "labelSelector": {
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "operator": {
                                  "type": "string"
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "matchLabelKeys": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "maxSkew": {
                        "type": "integer"
                      },
                      "minDomains": {
                        "type": "integer"
                      },
                      "nodeAffinityPolicy": {
                        "type": "string"
                      },
                      "nodeTaintsPolicy": {
                        "type": "string"
                      },
                      "topologyKey": {
                        "type": "string"
                      },
                      "whenUnsatisfiable": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "volumes": {
                  "description": "Additional volumes that can be mounted to the pod.",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "configMap": {},
                          "csi": {},
                          "emptyDir": {},
                          "image": {},
                          "persistentVolumeClaim": {},
                          "secret": {}
                        }
                      }
                    ],
                    "properties": {
                      "configMap": {
                        "description": "`ConfigMap` to use to populate the volume.",
                        "properties": {
                          "defaultMode": {
                            "type": "integer"
                          },
                          "items": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "mode": {
                                  "type": "integer"
                                },
                                "path": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "name": {
                            "type": "string"
                          },
                          "optional": {
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "csi": {
                        "description": "`CSIVolumeSource` object to use to populate the volume.",
                        "properties": {
                          "driver": {
                            "type": "string"
                          },
                          "fsType": {
                            "type": "string"
                          },
                          "nodePublishSecretRef": {
                            "properties": {
                              "name": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "readOnly": {
                            "type": "boolean"
                          },
                          "volumeAttributes": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "emptyDir": {
                        "description": "`EmptyDir` to use to populate the volume.",
                        "properties": {
                          "medium": {
                            "description": "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium.",
                            "enum": [
                              "Memory"
                            ],
                            "type": "string"
                          },
                          "sizeLimit": {
                            "description": "The total amount of local storage required for this EmptyDir volume (for example 1Gi).",
                            "pattern": "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "image": {
                        "description": "`ImageVolumeSource` object to use to populate the volume.",
                        "properties": {
                          "pullPolicy": {
                            "type": "string"
                          },
                          "reference": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "name": {
                        "description": "Name to use for the volume. Required.",
                        "type": "string"
                      },
                      "persistentVolumeClaim": {
                        "description": "`PersistentVolumeClaim` object to use to populate the volume.",
                        "properties": {
                          "claimName": {
                            "type": "string"
                          },
                          "readOnly": {
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "secret": {
                        "description": "`Secret` to use to populate the volume.",
                        "properties": {
                          "defaultMode": {
                            "type": "integer"
                          },
                          "items": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "mode": {
                                  "type": "integer"
                                },
                                "path": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "optional": {
                            "type": "boolean"
                          },
                          "secretName": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "podDisruptionBudget": {
              "description": "Template for Kafka Connect `PodDisruptionBudget`.",
              "properties": {
                "maxUnavailable": {
                  "description": "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.",
                  "minimum": 0,
                  "type": "integer"
                },
                "metadata": {
                  "description": "Metadata to apply to the `PodDisruptionBudgetTemplate` resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "podSet": {
              "description": "Template for Kafka Connect `StrimziPodSet` resource.",
              "properties": {
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "serviceAccount": {
              "description": "Template for the Kafka Connect service account.",
              "properties": {
                "metadata": {
                  "description": "Metadata applied to the resource.",
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Annotations added to the Kubernetes resource.",
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels added to the Kubernetes resource.",
                      "type": "object"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tracing": {
          "description": "The configuration of tracing in Kafka Connect.",
          "properties": {
            "type": {
              "description": "Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored.",
              "enum": [
                "opentelemetry"
              ],
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "version": {
          "description": "The Kafka Connect version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.",
          "type": "string"
        }
      },
      "required": [
        "replicas",
        "target",
        "mirrors"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "The status of the Kafka MirrorMaker 2 cluster.",
      "properties": {
        "autoRestartStatuses": {
          "description": "List of MirrorMaker 2 connector auto restart statuses.",
          "items": {
            "properties": {
              "connectorName": {
                "description": "The name of the connector being restarted.",
                "type": "string"
              },
              "count": {
                "description": "The number of times the connector or task is restarted.",
                "type": "integer"
              },
              "lastRestartTimestamp": {
                "description": "The last time the automatic restart was attempted. The required format is 'yyyy-MM-ddTHH:mm:ssZ' in the UTC time zone.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "conditions": {
          "description": "List of status conditions.",
          "items": {
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone.",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message indicating details about the condition's last transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition (a single word in CamelCase).",
                "type": "string"
              },
              "status": {
                "description": "The status of the condition, either True, False or Unknown.",
                "type": "string"
              },
              "type": {
                "description": "The unique identifier of a condition, used to distinguish between other conditions in the resource.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "connectorPlugins": {
          "description": "The list of connector plugins available in this Kafka Connect deployment.",
          "items": {
            "properties": {
              "class": {
                "description": "The class of the connector plugin.",
                "type": "string"
              },
              "type": {
                "description": "The type of the connector plugin. The available types are `sink` and `source`.",
                "type": "string"
              },
              "version": {
                "description": "The version of the connector plugin.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "connectors": {
          "description": "List of MirrorMaker 2 connector statuses, as reported by the Kafka Connect REST API.",
          "items": {
            "type": "object",
            "x-kubernetes-preserve-unknown-fields": true
          },
          "type": "array"
        },
        "labelSelector": {
          "description": "Label selector for pods providing this resource.",
          "type": "string"
        },
        "observedGeneration": {
          "description": "The generation of the CRD that was last reconciled by the operator.",
          "type": "integer"
        },
        "replicas": {
          "description": "The current number of pods being used to provide this resource.",
          "type": "integer"
        },
        "url": {
          "description": "The URL of the REST API endpoint for managing and monitoring Kafka Connect connectors.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
