{
  "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 Kafka MirrorMaker.",
      "oneOf": [
        {
          "properties": {
            "include": {}
          },
          "required": [
            "include"
          ]
        },
        {
          "properties": {
            "whitelist": {}
          },
          "required": [
            "whitelist"
          ]
        }
      ],
      "properties": {
        "consumer": {
          "description": "Configuration of source cluster.",
          "properties": {
            "authentication": {
              "description": "Authentication configuration for connecting to the cluster.",
              "properties": {
                "accessToken": {
                  "description": "Link to Kubernetes Secret containing the access token which was obtained from the authorization server.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "accessTokenIsJwt": {
                  "description": "Configure whether access token should be treated as JWT. This should be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.",
                  "type": "boolean"
                },
                "accessTokenLocation": {
                  "description": "Path to the token file containing an access token to be used for authentication.",
                  "type": "string"
                },
                "audience": {
                  "description": "OAuth audience to use when authenticating against the authorization server. Some authorization servers require the audience to be explicitly set. The possible values depend on how the authorization server is configured. By default, `audience` is not specified when performing the token endpoint request.",
                  "type": "string"
                },
                "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.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Secret containing the certificate.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "secretName",
                    "certificate",
                    "key"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "clientAssertion": {
                  "description": "Link to Kubernetes secret containing the client assertion which was manually configured for the client.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "clientAssertionLocation": {
                  "description": "Path to the file containing the client assertion to be used for authentication.",
                  "type": "string"
                },
                "clientAssertionType": {
                  "description": "The client assertion type. If not set, and either `clientAssertion` or `clientAssertionLocation` is configured, this value defaults to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.",
                  "type": "string"
                },
                "clientId": {
                  "description": "OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.",
                  "type": "string"
                },
                "clientSecret": {
                  "description": "Link to Kubernetes Secret containing the OAuth client secret which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "connectTimeoutSeconds": {
                  "description": "The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.",
                  "type": "integer"
                },
                "disableTlsHostnameVerification": {
                  "description": "Enable or disable TLS hostname verification. Default value is `false`.",
                  "type": "boolean"
                },
                "enableMetrics": {
                  "description": "Enable or disable OAuth metrics. Default value is `false`.",
                  "type": "boolean"
                },
                "httpRetries": {
                  "description": "The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.",
                  "type": "integer"
                },
                "httpRetryPauseMs": {
                  "description": "The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.",
                  "type": "integer"
                },
                "includeAcceptHeader": {
                  "description": "Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.",
                  "type": "boolean"
                },
                "maxTokenExpirySeconds": {
                  "description": "Set or limit time-to-live of the access tokens to the specified number of seconds. This should be set if the authorization server returns opaque tokens.",
                  "type": "integer"
                },
                "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
                },
                "readTimeoutSeconds": {
                  "description": "The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.",
                  "type": "integer"
                },
                "refreshToken": {
                  "description": "Link to Kubernetes Secret containing the refresh token which can be used to obtain access token from the authorization server.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "saslExtensions": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "SASL extensions parameters.",
                  "type": "object"
                },
                "scope": {
                  "description": "OAuth scope to use when authenticating against the authorization server. Some authorization servers require this to be set. The possible values depend on how authorization server is configured. By default `scope` is not specified when doing the token endpoint request.",
                  "type": "string"
                },
                "tlsTrustedCertificates": {
                  "description": "Trusted certificates for TLS connection to the OAuth server.",
                  "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"
                },
                "tokenEndpointUri": {
                  "description": "Authorization server token endpoint URI.",
                  "type": "string"
                },
                "type": {
                  "description": "Authentication type. Currently the supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, and 'oauth'. `scram-sha-256` and `scram-sha-512` types use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 Authentication, respectively. `plain` type uses SASL PLAIN Authentication. `oauth` type uses SASL OAUTHBEARER Authentication. The `tls` type uses TLS Client Authentication. The `tls` type is supported only over TLS connections.",
                  "enum": [
                    "tls",
                    "scram-sha-256",
                    "scram-sha-512",
                    "plain",
                    "oauth"
                  ],
                  "type": "string"
                },
                "username": {
                  "description": "Username used for the authentication.",
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "bootstrapServers": {
              "description": "A list of host:port pairs for establishing the initial connection to the Kafka cluster.",
              "type": "string"
            },
            "config": {
              "description": "The MirrorMaker consumer config. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, group.id, sasl., security., 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
            },
            "groupId": {
              "description": "A unique string that identifies the consumer group this consumer belongs to.",
              "type": "string"
            },
            "numStreams": {
              "description": "Specifies the number of consumer stream threads to create.",
              "minimum": 1,
              "type": "integer"
            },
            "offsetCommitInterval": {
              "description": "Specifies the offset auto-commit interval in ms. Default value is 60000.",
              "type": "integer"
            },
            "tls": {
              "description": "TLS configuration for connecting MirrorMaker to the 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": [
            "bootstrapServers",
            "groupId"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "image": {
          "description": "The container image used for Kafka MirrorMaker 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"
        },
        "include": {
          "description": "List of topics which are included for mirroring. This option allows any regular expression using Java-style regular expressions. Mirroring two topics named A and B is achieved by using the expression `A\\|B`. Or, as a special case, you can mirror all topics using the regular expression `*`. You can also specify multiple regular expressions separated by commas.",
          "type": "string"
        },
        "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 MirrorMaker.",
          "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. Only 'jmxPrometheusExporter' supported currently.",
              "enum": [
                "jmxPrometheusExporter"
              ],
              "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
            }
          },
          "required": [
            "type",
            "valueFrom"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "producer": {
          "description": "Configuration of target cluster.",
          "properties": {
            "abortOnSendFailure": {
              "description": "Flag to set the MirrorMaker to exit on a failed send. Default value is `true`.",
              "type": "boolean"
            },
            "authentication": {
              "description": "Authentication configuration for connecting to the cluster.",
              "properties": {
                "accessToken": {
                  "description": "Link to Kubernetes Secret containing the access token which was obtained from the authorization server.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "accessTokenIsJwt": {
                  "description": "Configure whether access token should be treated as JWT. This should be set to `false` if the authorization server returns opaque tokens. Defaults to `true`.",
                  "type": "boolean"
                },
                "accessTokenLocation": {
                  "description": "Path to the token file containing an access token to be used for authentication.",
                  "type": "string"
                },
                "audience": {
                  "description": "OAuth audience to use when authenticating against the authorization server. Some authorization servers require the audience to be explicitly set. The possible values depend on how the authorization server is configured. By default, `audience` is not specified when performing the token endpoint request.",
                  "type": "string"
                },
                "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.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Secret containing the certificate.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "secretName",
                    "certificate",
                    "key"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "clientAssertion": {
                  "description": "Link to Kubernetes secret containing the client assertion which was manually configured for the client.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "clientAssertionLocation": {
                  "description": "Path to the file containing the client assertion to be used for authentication.",
                  "type": "string"
                },
                "clientAssertionType": {
                  "description": "The client assertion type. If not set, and either `clientAssertion` or `clientAssertionLocation` is configured, this value defaults to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.",
                  "type": "string"
                },
                "clientId": {
                  "description": "OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.",
                  "type": "string"
                },
                "clientSecret": {
                  "description": "Link to Kubernetes Secret containing the OAuth client secret which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "connectTimeoutSeconds": {
                  "description": "The connect timeout in seconds when connecting to authorization server. If not set, the effective connect timeout is 60 seconds.",
                  "type": "integer"
                },
                "disableTlsHostnameVerification": {
                  "description": "Enable or disable TLS hostname verification. Default value is `false`.",
                  "type": "boolean"
                },
                "enableMetrics": {
                  "description": "Enable or disable OAuth metrics. Default value is `false`.",
                  "type": "boolean"
                },
                "httpRetries": {
                  "description": "The maximum number of retries to attempt if an initial HTTP request fails. If not set, the default is to not attempt any retries.",
                  "type": "integer"
                },
                "httpRetryPauseMs": {
                  "description": "The pause to take before retrying a failed HTTP request. If not set, the default is to not pause at all but to immediately repeat a request.",
                  "type": "integer"
                },
                "includeAcceptHeader": {
                  "description": "Whether the Accept header should be set in requests to the authorization servers. The default value is `true`.",
                  "type": "boolean"
                },
                "maxTokenExpirySeconds": {
                  "description": "Set or limit time-to-live of the access tokens to the specified number of seconds. This should be set if the authorization server returns opaque tokens.",
                  "type": "integer"
                },
                "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
                },
                "readTimeoutSeconds": {
                  "description": "The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds.",
                  "type": "integer"
                },
                "refreshToken": {
                  "description": "Link to Kubernetes Secret containing the refresh token which can be used to obtain access token from the authorization server.",
                  "properties": {
                    "key": {
                      "description": "The key under which the secret value is stored in the Kubernetes Secret.",
                      "type": "string"
                    },
                    "secretName": {
                      "description": "The name of the Kubernetes Secret containing the secret value.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "secretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "saslExtensions": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "SASL extensions parameters.",
                  "type": "object"
                },
                "scope": {
                  "description": "OAuth scope to use when authenticating against the authorization server. Some authorization servers require this to be set. The possible values depend on how authorization server is configured. By default `scope` is not specified when doing the token endpoint request.",
                  "type": "string"
                },
                "tlsTrustedCertificates": {
                  "description": "Trusted certificates for TLS connection to the OAuth server.",
                  "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"
                },
                "tokenEndpointUri": {
                  "description": "Authorization server token endpoint URI.",
                  "type": "string"
                },
                "type": {
                  "description": "Authentication type. Currently the supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, and 'oauth'. `scram-sha-256` and `scram-sha-512` types use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 Authentication, respectively. `plain` type uses SASL PLAIN Authentication. `oauth` type uses SASL OAUTHBEARER Authentication. The `tls` type uses TLS Client Authentication. The `tls` type is supported only over TLS connections.",
                  "enum": [
                    "tls",
                    "scram-sha-256",
                    "scram-sha-512",
                    "plain",
                    "oauth"
                  ],
                  "type": "string"
                },
                "username": {
                  "description": "Username used for the authentication.",
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "bootstrapServers": {
              "description": "A list of host:port pairs for establishing the initial connection to the Kafka cluster.",
              "type": "string"
            },
            "config": {
              "description": "The MirrorMaker producer config. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, sasl., security., 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 to the 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": [
            "bootstrapServers"
          ],
          "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 `Deployment`.",
          "minimum": 0,
          "type": "integer"
        },
        "resources": {
          "description": "CPU and memory resources to reserve.",
          "properties": {
            "claims": {
              "items": {
                "properties": {
                  "name": {
                    "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
        },
        "template": {
          "description": "Template to specify how Kafka MirrorMaker resources, `Deployments` and `Pods`, are generated.",
          "properties": {
            "deployment": {
              "description": "Template for Kafka MirrorMaker `Deployment`.",
              "properties": {
                "deploymentStrategy": {
                  "description": "Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.",
                  "enum": [
                    "RollingUpdate",
                    "Recreate"
                  ],
                  "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
            },
            "mirrorMakerContainer": {
              "description": "Template for Kafka MirrorMaker 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
            },
            "pod": {
              "description": "Template for Kafka MirrorMaker `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
                },
                "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"
                    },
                    "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"
                    },
                    "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": {},
                          "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": {
                            "type": "string"
                          },
                          "sizeLimit": {
                            "properties": {
                              "amount": {
                                "type": "string"
                              },
                              "format": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "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 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 MirrorMaker `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
            },
            "serviceAccount": {
              "description": "Template for the Kafka MirrorMaker 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 MirrorMaker.",
          "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": [
                "jaeger",
                "opentelemetry"
              ],
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "version": {
          "description": "The Kafka MirrorMaker version. Defaults to the latest version. Consult the documentation to understand the process required to upgrade or downgrade the version.",
          "type": "string"
        },
        "whitelist": {
          "description": "List of topics which are included for mirroring. This option allows any regular expression using Java-style regular expressions. Mirroring two topics named A and B is achieved by using the expression `A\\|B`. Or, as a special case, you can mirror all topics using the regular expression `*`. You can also specify multiple regular expressions separated by commas.",
          "type": "string"
        }
      },
      "required": [
        "replicas",
        "consumer",
        "producer"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "The status of Kafka MirrorMaker.",
      "properties": {
        "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"
        },
        "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"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
