{
  "properties": {
    "spec": {
      "additionalProperties": false,
      "properties": {
        "clusterDomain": {
          "description": "Cluster internal domain (used to build service FQDNs). Default to 'cluster.local'",
          "type": [
            "string",
            "null"
          ]
        },
        "commonAffinities": {
          "additionalProperties": false,
          "description": "Common affinities added to all managed resources",
          "properties": {
            "nodeAffinity": {
              "additionalProperties": false,
              "properties": {
                "preferredDuringSchedulingIgnoredDuringExecution": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "preference": {
                        "additionalProperties": false,
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "matchFields": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "weight": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "requiredDuringSchedulingIgnoredDuringExecution": {
                  "additionalProperties": false,
                  "properties": {
                    "nodeSelectorTerms": {
                      "items": {
                        "additionalProperties": false,
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "matchFields": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          }
                        },
                        "type": "object"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "podAffinity": {
              "additionalProperties": false,
              "properties": {
                "preferredDuringSchedulingIgnoredDuringExecution": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "podAffinityTerm": {
                        "additionalProperties": false,
                        "properties": {
                          "labelSelector": {
                            "additionalProperties": false,
                            "properties": {
                              "matchExpressions": {
                                "items": {
                                  "additionalProperties": false,
                                  "properties": {
                                    "key": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "operator": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "values": {
                                      "items": {
                                        "type": "string"
                                      },
                                      "type": [
                                        "array",
                                        "null"
                                      ]
                                    }
                                  },
                                  "type": "object"
                                },
                                "type": [
                                  "array",
                                  "null"
                                ]
                              },
                              "matchLabels": {
                                "additionalProperties": {
                                  "type": "string"
                                },
                                "type": [
                                  "object",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "matchLabelKeys": {
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "mismatchLabelKeys": {
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "namespaceSelector": {
                            "additionalProperties": false,
                            "properties": {
                              "matchExpressions": {
                                "items": {
                                  "additionalProperties": false,
                                  "properties": {
                                    "key": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "operator": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "values": {
                                      "items": {
                                        "type": "string"
                                      },
                                      "type": [
                                        "array",
                                        "null"
                                      ]
                                    }
                                  },
                                  "type": "object"
                                },
                                "type": [
                                  "array",
                                  "null"
                                ]
                              },
                              "matchLabels": {
                                "additionalProperties": {
                                  "type": "string"
                                },
                                "type": [
                                  "object",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "namespaces": {
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "topologyKey": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "weight": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "requiredDuringSchedulingIgnoredDuringExecution": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "labelSelector": {
                        "additionalProperties": false,
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "matchLabelKeys": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "mismatchLabelKeys": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "namespaceSelector": {
                        "additionalProperties": false,
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "namespaces": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "topologyKey": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "podAntiAffinity": {
              "additionalProperties": false,
              "properties": {
                "preferredDuringSchedulingIgnoredDuringExecution": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "podAffinityTerm": {
                        "additionalProperties": false,
                        "properties": {
                          "labelSelector": {
                            "additionalProperties": false,
                            "properties": {
                              "matchExpressions": {
                                "items": {
                                  "additionalProperties": false,
                                  "properties": {
                                    "key": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "operator": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "values": {
                                      "items": {
                                        "type": "string"
                                      },
                                      "type": [
                                        "array",
                                        "null"
                                      ]
                                    }
                                  },
                                  "type": "object"
                                },
                                "type": [
                                  "array",
                                  "null"
                                ]
                              },
                              "matchLabels": {
                                "additionalProperties": {
                                  "type": "string"
                                },
                                "type": [
                                  "object",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "matchLabelKeys": {
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "mismatchLabelKeys": {
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "namespaceSelector": {
                            "additionalProperties": false,
                            "properties": {
                              "matchExpressions": {
                                "items": {
                                  "additionalProperties": false,
                                  "properties": {
                                    "key": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "operator": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "values": {
                                      "items": {
                                        "type": "string"
                                      },
                                      "type": [
                                        "array",
                                        "null"
                                      ]
                                    }
                                  },
                                  "type": "object"
                                },
                                "type": [
                                  "array",
                                  "null"
                                ]
                              },
                              "matchLabels": {
                                "additionalProperties": {
                                  "type": "string"
                                },
                                "type": [
                                  "object",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "namespaces": {
                            "items": {
                              "type": "string"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "topologyKey": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "weight": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "requiredDuringSchedulingIgnoredDuringExecution": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "labelSelector": {
                        "additionalProperties": false,
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "matchLabelKeys": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "mismatchLabelKeys": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "namespaceSelector": {
                        "additionalProperties": false,
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "operator": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": [
                                    "array",
                                    "null"
                                  ]
                                }
                              },
                              "type": "object"
                            },
                            "type": [
                              "array",
                              "null"
                            ]
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "namespaces": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "array",
                          "null"
                        ]
                      },
                      "topologyKey": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "commonAnnotations": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Common annotations added to all managed resources",
          "type": [
            "object",
            "null"
          ]
        },
        "commonExpositions": {
          "additionalProperties": false,
          "description": "Common exposition settings that applies to all managed resources",
          "properties": {
            "gatewayRoute": {
              "additionalProperties": false,
              "description": "Common Gateway route specification (such as reference name, reference namespace etc.). Default reference name is 'default'.",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Route if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether a Gateway Route should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "gatewayRefName": {
                  "description": "The parent Gateway reference name, sets the parentRefs.name property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefNamespace": {
                  "description": "The parent Gateway reference namespace, sets the parentRefs.namespace property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefSectionName": {
                  "description": "The parent Gateway reference section name, sets the parentRefs.sectionName property",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "ingress": {
              "additionalProperties": false,
              "description": "Common ingress specification (such as class name, etc.)",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Ingress if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "className": {
                  "description": "When exposed, sets the ingressClassName property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether Ingress should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "generateCert": {
                  "description": "Whether operator should generate self-signed certificate for this ingress",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "secretRef": {
                  "description": "Existing Secret holding TLS key and certificate name",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "type": {
              "description": "Type of exposition for Microcks services. Default is 'INGRESS'.",
              "enum": [
                "GATEWAYROUTE",
                "INGRESS",
                "NONE"
              ],
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "commonLabels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Common labels to add to all managed resources",
          "type": [
            "object",
            "null"
          ]
        },
        "commonTolerations": {
          "description": "Common tolerations added to all managed resources",
          "items": {
            "additionalProperties": false,
            "properties": {
              "effect": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "key": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "operator": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "tolerationSeconds": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "features": {
          "additionalProperties": false,
          "description": "Configuration of optional features in Microcks",
          "properties": {
            "aiCopilot": {
              "additionalProperties": false,
              "description": "Configuration for AI Copilot related features",
              "properties": {
                "enabled": {
                  "description": "Enable/disable this feature. Default is false",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "implementation": {
                  "description": "The implementation to use for AI Copilot feature",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "openai": {
                  "additionalProperties": false,
                  "description": "Configuration of OpenAI access",
                  "properties": {
                    "apiKey": {
                      "description": "The OpenAI API key to use",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "apiUrl": {
                      "description": "The OpenAI API URL to use",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "maxTokens": {
                      "description": "The maximum number of tokens to generate/transfer",
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "model": {
                      "description": "The model to use for OpenAI API calls",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "timeout": {
                      "description": "The timeout for OpenAI API calls",
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "async": {
              "additionalProperties": false,
              "description": "Configuration for asynchronous features",
              "properties": {
                "amqp": {
                  "additionalProperties": false,
                  "description": "Configuration of AMQP broker access",
                  "properties": {
                    "password": {
                      "description": "The password to use for authenticating to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "url": {
                      "description": "The URL to use for connecting to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "username": {
                      "description": "The username to use for authenticating to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "defaultAvroEncoding": {
                  "description": "Default Avro encoding mode for publishing mock messages",
                  "enum": [
                    "RAW",
                    "REGISTRY"
                  ],
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "defaultBinding": {
                  "description": "Default protocol binding to use if no specified in AsyncAPI document",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "defaultFrequency": {
                  "description": "Default frequency for publishing async mock messages",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "enabled": {
                  "description": "Enable/disable this feature. Default is false",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "env": {
                  "description": "Environment variables for Async Minion component",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "value": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "valueFrom": {
                        "additionalProperties": false,
                        "properties": {
                          "configMapKeyRef": {
                            "additionalProperties": false,
                            "properties": {
                              "key": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "optional": {
                                "type": [
                                  "boolean",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "fieldRef": {
                            "additionalProperties": false,
                            "properties": {
                              "apiVersion": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "fieldPath": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "resourceFieldRef": {
                            "additionalProperties": false,
                            "properties": {
                              "containerName": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "divisor": {
                                "oneOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "x-kubernetes-int-or-string": true
                              },
                              "resource": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          },
                          "secretKeyRef": {
                            "additionalProperties": false,
                            "properties": {
                              "key": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "optional": {
                                "type": [
                                  "boolean",
                                  "null"
                                ]
                              }
                            },
                            "type": [
                              "object",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "googlepubsub": {
                  "additionalProperties": false,
                  "description": "Configuration of Google PubSub access",
                  "properties": {
                    "project": {
                      "description": "The Google Cloud Platform (GCP) project to use for connecting to PubSub broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "serviceAccountSecretRef": {
                      "additionalProperties": false,
                      "description": "A Secret reference holding the GCP serviceAccount authentication token JSON file",
                      "properties": {
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "image": {
                  "additionalProperties": false,
                  "description": "The container image to use for Async Minion component",
                  "properties": {
                    "digest": {
                      "description": "The digest of the image",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "registry": {
                      "description": "The registry where to pull this image (docker.io, quay.io, internal one...)",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repository": {
                      "description": "The repository name of the image",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tag": {
                      "description": "The tag of the image",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "kafka": {
                  "additionalProperties": false,
                  "description": "Configuration of Kafka broker access and/or install",
                  "properties": {
                    "authentication": {
                      "additionalProperties": false,
                      "description": "Specification of authentication method when using external Kafka",
                      "properties": {
                        "keystoreSecretRef": {
                          "additionalProperties": false,
                          "description": "Reference to Secret holding client private key when using MTLS",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "keystoreType": {
                          "description": "Type of keystore where to find private key when using MTLS. PKCS12 and JKS are supported",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "saslJaasConfig": {
                          "description": "Additional JAAS config for SASL_TLS authentication type",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "saslMechanism": {
                          "description": "SASL mechanism used when using SASL_TLS authentication type",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "truststoreSecretRef": {
                          "additionalProperties": false,
                          "description": "Reference to Secret holding cluster certificate for TLS transport",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "truststoreType": {
                          "description": "Type of truststore where to find cluster certificate for TLS transport. PKCS12 and JKS are supported",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "type": {
                          "description": "Type of authentication method for connecting to external Kafka broker",
                          "enum": [
                            "NONE",
                            "SASL_SSL",
                            "SSL"
                          ],
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "enableKraft": {
                      "description": "Enable Kafka KRaft mode (no Zookeeper)? Default to true",
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "ingressClassName": {
                      "description": "When exposed via ingress, sets the ingressClassName property in the Ingress resources",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "install": {
                      "description": "Install Kafka broker or reuse an existing instance? Default to true",
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "persistent": {
                      "description": "Use persistent storage or ephemeral one? Default to false",
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "resources": {
                      "additionalProperties": false,
                      "description": "Kubernetes resource requirements for Kafka broker",
                      "properties": {
                        "claims": {
                          "items": {
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "type": "object"
                          },
                          "type": [
                            "array",
                            "null"
                          ]
                        },
                        "limits": {
                          "additionalProperties": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              }
                            ],
                            "x-kubernetes-int-or-string": true
                          },
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "requests": {
                          "additionalProperties": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              }
                            ],
                            "x-kubernetes-int-or-string": true
                          },
                          "type": [
                            "object",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "schemaRegistry": {
                      "additionalProperties": false,
                      "description": "Specification of Schema registry connection",
                      "properties": {
                        "confluentCompatibility": {
                          "description": "Whether you should use the Confluent compatibility API layer. Default to true.",
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "credentialsSource": {
                          "description": "The source of credentials for authenticating the connection to Schema Registry. Defaults to USER_INFO.",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "url": {
                          "description": "The URL for accessing external Schema Registry",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "username": {
                          "description": "The username for authenticating the connection to Schema Registry",
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "url": {
                      "description": "The URL to use for either exposing embedded Kafka broker or connecting external broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "volumeSize": {
                      "description": "Size of persistent storage volume if persistent",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "zkResources": {
                      "additionalProperties": false,
                      "description": "Kubernetes resource requirements for Zookeeper ensemble",
                      "properties": {
                        "claims": {
                          "items": {
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "type": "object"
                          },
                          "type": [
                            "array",
                            "null"
                          ]
                        },
                        "limits": {
                          "additionalProperties": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              }
                            ],
                            "x-kubernetes-int-or-string": true
                          },
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "requests": {
                          "additionalProperties": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              }
                            ],
                            "x-kubernetes-int-or-string": true
                          },
                          "type": [
                            "object",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "mqtt": {
                  "additionalProperties": false,
                  "description": "Configuration of MQTT broker access",
                  "properties": {
                    "password": {
                      "description": "The password to use for authenticating to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "url": {
                      "description": "The URL to use for connecting to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "username": {
                      "description": "The username to use for authenticating to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "nats": {
                  "additionalProperties": false,
                  "description": "Configuration of NATS broker access",
                  "properties": {
                    "password": {
                      "description": "The password to use for authenticating to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "url": {
                      "description": "The URL to use for connecting to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "username": {
                      "description": "The username to use for authenticating to the broker",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "sns": {
                  "additionalProperties": false,
                  "description": "Configuration of Amazon SNS access",
                  "properties": {
                    "credentialsProfile": {
                      "description": "The name of profile to use for connecting when using profile credentials type",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "credentialsSecretRef": {
                      "additionalProperties": false,
                      "description": "A secret reference holding the credentials information for the chosen type",
                      "properties": {
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "credentialsType": {
                      "description": "The type of credentials provider to use for connecting. Either env-variable or profile.",
                      "enum": [
                        "env-variable",
                        "profile"
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "region": {
                      "description": "The Amazon region to use for connecting to this service",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "sqs": {
                  "additionalProperties": false,
                  "description": "Configuration of Amazon SQS access",
                  "properties": {
                    "credentialsProfile": {
                      "description": "The name of profile to use for connecting when using profile credentials type",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "credentialsSecretRef": {
                      "additionalProperties": false,
                      "description": "A secret reference holding the credentials information for the chosen type",
                      "properties": {
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "credentialsType": {
                      "description": "The type of credentials provider to use for connecting. Either env-variable or profile.",
                      "enum": [
                        "env-variable",
                        "profile"
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "region": {
                      "description": "The Amazon region to use for connecting to this service",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "ws": {
                  "additionalProperties": false,
                  "description": "Configuration of WebSocket exposition",
                  "properties": {
                    "gatewayRoute": {
                      "additionalProperties": false,
                      "description": "Configuration to apply to HTTPRoute if created",
                      "properties": {
                        "annotations": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "description": "Annotations to apply to Route if created",
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "expose": {
                          "description": "Whether a Gateway Route should be exposed (ie. created)",
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "gatewayRefName": {
                          "description": "The parent Gateway reference name, sets the parentRefs.name property",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "gatewayRefNamespace": {
                          "description": "The parent Gateway reference namespace, sets the parentRefs.namespace property",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "gatewayRefSectionName": {
                          "description": "The parent Gateway reference section name, sets the parentRefs.sectionName property",
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "ingress": {
                      "additionalProperties": false,
                      "description": "Configuration to apply to Ingress if created",
                      "properties": {
                        "annotations": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "description": "Annotations to apply to Ingress if created",
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "className": {
                          "description": "When exposed, sets the ingressClassName property",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "expose": {
                          "description": "Whether Ingress should be exposed (ie. created)",
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "generateCert": {
                          "description": "Whether operator should generate self-signed certificate for this ingress",
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "secretRef": {
                          "description": "Existing Secret holding TLS key and certificate name",
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "microcksHub": {
              "additionalProperties": false,
              "description": "Configuration for Microcks Hub related features",
              "properties": {
                "allowedRoles": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "enabled": {
                  "description": "Enable/disable this feature. Default is false.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "repositoryFilter": {
              "additionalProperties": false,
              "description": "Configuration for repository filtering features",
              "properties": {
                "enabled": {
                  "description": "Enable/disable this feature. Default is false",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "labelKey": {
                  "description": "The label key to consider for repository filtering",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "labelLabel": {
                  "description": "The label of label used for repository filtering",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "labelList": {
                  "description": "The list of labels (separated by ,) to display on services list",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "repositoryTenancy": {
              "additionalProperties": false,
              "description": "Configuration for repository tenancy features",
              "properties": {
                "artifactImportAllowedRoles": {
                  "description": "The list of roles (separated by ,) that are allowed to import artifacts",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "enabled": {
                  "description": "Enable/disable this feature. Default is false",
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "keycloak": {
          "additionalProperties": false,
          "description": "Configuration of Keycloak access and/or install",
          "properties": {
            "enabled": {
              "description": "Enable Keycloak for authentication. Default to true.",
              "type": [
                "boolean",
                "null"
              ]
            },
            "gatewayRoute": {
              "additionalProperties": false,
              "description": "Configuration to apply to HTTPRoute if created",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Route if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether a Gateway Route should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "gatewayRefName": {
                  "description": "The parent Gateway reference name, sets the parentRefs.name property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefNamespace": {
                  "description": "The parent Gateway reference namespace, sets the parentRefs.namespace property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefSectionName": {
                  "description": "The parent Gateway reference section name, sets the parentRefs.sectionName property",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "image": {
              "additionalProperties": false,
              "description": "The container image to use for Keycloak",
              "properties": {
                "digest": {
                  "description": "The digest of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registry": {
                  "description": "The registry where to pull this image (docker.io, quay.io, internal one...)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repository": {
                  "description": "The repository name of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tag": {
                  "description": "The tag of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "ingress": {
              "additionalProperties": false,
              "description": "Configuration to apply to Ingress if created",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Ingress if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "className": {
                  "description": "When exposed, sets the ingressClassName property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether Ingress should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "generateCert": {
                  "description": "Whether operator should generate self-signed certificate for this ingress",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "secretRef": {
                  "description": "Existing Secret holding TLS key and certificate name",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "install": {
              "description": "Install Keycloak or reuse an existing instance? Default to true.",
              "type": [
                "boolean",
                "null"
              ]
            },
            "openshift": {
              "additionalProperties": false,
              "description": "Configuration of OpenShift specific settings",
              "properties": {
                "route": {
                  "additionalProperties": false,
                  "description": "Allow configuration of settings for OpenShift routes",
                  "properties": {
                    "enabled": {
                      "description": "Whether operator should use Route API if on OpenShift",
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "tlsCaCertificate": {
                      "description": "TLS CA certificate for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsCertificate": {
                      "description": "TLS certificate for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsDestinationCaCertificate": {
                      "description": "TLS destination CA certificate for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsInsecureEdgeTerminationPolicy": {
                      "description": "TLS insecure edge termination policy",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsKey": {
                      "description": "TLS private key for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsTermination": {
                      "description": "Type of OpenShift route to create ('edge', 'passthrough', 'reencrypt'",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "operatorServiceAccountEnabled": {
              "description": "Flag to enable/disable the Service Account dedicated to the operator for connecting to Keycloak. Default to true.",
              "type": [
                "boolean",
                "null"
              ]
            },
            "persistent": {
              "description": "Use persistent storage or ephemeral one? Default to true.",
              "type": [
                "boolean",
                "null"
              ]
            },
            "postgresImage": {
              "additionalProperties": false,
              "description": "The container image to use for PostgreSQL database",
              "properties": {
                "digest": {
                  "description": "The digest of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registry": {
                  "description": "The registry where to pull this image (docker.io, quay.io, internal one...)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repository": {
                  "description": "The repository name of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tag": {
                  "description": "The tag of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "privateUrl": {
              "description": "A private URL - a full URL here - used by the Microcks component to internally join Keycloak. This is also known as `backendUrl` in Keycloak. When specified, the `keycloak.url` is used as `frontendUrl` in Keycloak terms.",
              "type": [
                "string",
                "null"
              ]
            },
            "pvcAnnotations": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Annotations to be added to managed Persistent Volume Claim",
              "type": [
                "object",
                "null"
              ]
            },
            "realm": {
              "description": "Keycloak realm to use for authentication on Microcks",
              "type": [
                "string",
                "null"
              ]
            },
            "resources": {
              "additionalProperties": false,
              "description": "Kubernetes resource requirements for Keycloak service",
              "properties": {
                "claims": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "limits": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "serviceAccount": {
              "description": "Service Account for connecting external services to Microcks",
              "type": [
                "string",
                "null"
              ]
            },
            "serviceAccountCredentials": {
              "description": "Service Account credentials for external services",
              "type": [
                "string",
                "null"
              ]
            },
            "storageClassName": {
              "description": "Name of storage class to use if not relying on default",
              "type": [
                "string",
                "null"
              ]
            },
            "url": {
              "description": "Keycloak root URL to use for access and Ingress if created",
              "type": [
                "string",
                "null"
              ]
            },
            "volumeSize": {
              "description": "Size of persistent storage volume if persistent",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "microcks": {
          "additionalProperties": false,
          "description": "Configuration of main Microcks service",
          "properties": {
            "env": {
              "description": "Environment variables for Microcks service",
              "items": {
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "value": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "valueFrom": {
                    "additionalProperties": false,
                    "properties": {
                      "configMapKeyRef": {
                        "additionalProperties": false,
                        "properties": {
                          "key": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "optional": {
                            "type": [
                              "boolean",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "fieldRef": {
                        "additionalProperties": false,
                        "properties": {
                          "apiVersion": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "fieldPath": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "resourceFieldRef": {
                        "additionalProperties": false,
                        "properties": {
                          "containerName": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "divisor": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "x-kubernetes-int-or-string": true
                          },
                          "resource": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      },
                      "secretKeyRef": {
                        "additionalProperties": false,
                        "properties": {
                          "key": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "optional": {
                            "type": [
                              "boolean",
                              "null"
                            ]
                          }
                        },
                        "type": [
                          "object",
                          "null"
                        ]
                      }
                    },
                    "type": [
                      "object",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "extraProperties": {
              "additionalProperties": {
                "x-kubernetes-preserve-unknown-fields": true
              },
              "description": "Extra properties to integration into application-extra configuration",
              "type": [
                "object",
                "null"
              ]
            },
            "gatewayRoute": {
              "additionalProperties": false,
              "description": "Configuration to apply to HTTPRoute if created",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Route if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether a Gateway Route should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "gatewayRefName": {
                  "description": "The parent Gateway reference name, sets the parentRefs.name property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefNamespace": {
                  "description": "The parent Gateway reference namespace, sets the parentRefs.namespace property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefSectionName": {
                  "description": "The parent Gateway reference section name, sets the parentRefs.sectionName property",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "grpcGatewayRoute": {
              "additionalProperties": false,
              "description": "Configuration to apply to GRPCRoute for gRPC if creates",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Route if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether a Gateway Route should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "gatewayRefName": {
                  "description": "The parent Gateway reference name, sets the parentRefs.name property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefNamespace": {
                  "description": "The parent Gateway reference namespace, sets the parentRefs.namespace property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "gatewayRefSectionName": {
                  "description": "The parent Gateway reference section name, sets the parentRefs.sectionName property",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "grpcIngress": {
              "additionalProperties": false,
              "description": "Configuration to apply to Ingress for gRPC if created",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Ingress if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "className": {
                  "description": "When exposed, sets the ingressClassName property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether Ingress should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "generateCert": {
                  "description": "Whether operator should generate self-signed certificate for this ingress",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "secretRef": {
                  "description": "Existing Secret holding TLS key and certificate name",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "image": {
              "additionalProperties": false,
              "description": "The container image to use for Microcks service",
              "properties": {
                "digest": {
                  "description": "The digest of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registry": {
                  "description": "The registry where to pull this image (docker.io, quay.io, internal one...)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repository": {
                  "description": "The repository name of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tag": {
                  "description": "The tag of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "ingress": {
              "additionalProperties": false,
              "description": "Configuration to apply to Ingress if created",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations to apply to Ingress if created",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "className": {
                  "description": "When exposed, sets the ingressClassName property",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expose": {
                  "description": "Whether Ingress should be exposed (ie. created)",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "generateCert": {
                  "description": "Whether operator should generate self-signed certificate for this ingress",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "secretRef": {
                  "description": "Existing Secret holding TLS key and certificate name",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "logLevel": {
              "description": "Allow configuration of logging level. Defaults to INFO",
              "enum": [
                "DEBUG",
                "ERROR",
                "INFO",
                "WARN"
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "mockInvocationStats": {
              "description": "Enable/disable statistics for mocks invocation. Defaults to true",
              "type": [
                "boolean",
                "null"
              ]
            },
            "openshift": {
              "additionalProperties": false,
              "description": "Configuration of OpenShift specific settings",
              "properties": {
                "route": {
                  "additionalProperties": false,
                  "description": "Allow configuration of settings for OpenShift routes",
                  "properties": {
                    "enabled": {
                      "description": "Whether operator should use Route API if on OpenShift",
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "tlsCaCertificate": {
                      "description": "TLS CA certificate for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsCertificate": {
                      "description": "TLS certificate for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsDestinationCaCertificate": {
                      "description": "TLS destination CA certificate for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsInsecureEdgeTerminationPolicy": {
                      "description": "TLS insecure edge termination policy",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsKey": {
                      "description": "TLS private key for reencrypt termination",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tlsTermination": {
                      "description": "Type of OpenShift route to create ('edge', 'passthrough', 'reencrypt'",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "replicas": {
              "description": "Number of desired pods for Microcks service",
              "type": [
                "integer",
                "null"
              ]
            },
            "resources": {
              "additionalProperties": false,
              "description": "Kubernetes resource requirements for Microcks service",
              "properties": {
                "claims": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "limits": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "url": {
              "description": "The URL to use for exposing Microcks main ingress",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "mongoDB": {
          "additionalProperties": false,
          "properties": {
            "database": {
              "description": "MongoDB database name in case you're reusing existing one. Only if install if false.",
              "type": [
                "string",
                "null"
              ]
            },
            "image": {
              "additionalProperties": false,
              "description": "The container image to use for MongoDB",
              "properties": {
                "digest": {
                  "description": "The digest of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registry": {
                  "description": "The registry where to pull this image (docker.io, quay.io, internal one...)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repository": {
                  "description": "The repository name of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tag": {
                  "description": "The tag of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "install": {
              "description": "Install MongoDB or reuse an existing instance? Default to true.",
              "type": [
                "boolean",
                "null"
              ]
            },
            "persistent": {
              "description": "Use persistent storage or ephemeral one? Default to true",
              "type": [
                "boolean",
                "null"
              ]
            },
            "pvcAnnotations": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Annotations to be added to managed Persistent Volume Claim",
              "type": [
                "object",
                "null"
              ]
            },
            "resources": {
              "additionalProperties": false,
              "description": "Kubernetes resource requirements for MongoDB",
              "properties": {
                "claims": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "limits": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "secretRef": {
              "additionalProperties": false,
              "description": "Reference of a Secret containing username and password keys for connecting to existing MongoDB instance",
              "properties": {
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "securityContext": {
              "additionalProperties": false,
              "description": "Security context for MongoDB deployment",
              "properties": {
                "appArmorProfile": {
                  "additionalProperties": false,
                  "properties": {
                    "localhostProfile": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "type": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "fsGroup": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "fsGroupChangePolicy": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "runAsGroup": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "runAsNonRoot": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "runAsUser": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "seLinuxOptions": {
                  "additionalProperties": false,
                  "properties": {
                    "level": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "role": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "type": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "user": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "seccompProfile": {
                  "additionalProperties": false,
                  "properties": {
                    "localhostProfile": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "type": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "supplementalGroups": {
                  "items": {
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "sysctls": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "value": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "windowsOptions": {
                  "additionalProperties": false,
                  "properties": {
                    "gmsaCredentialSpec": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gmsaCredentialSpecName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "hostProcess": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "runAsUserName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "storageClassName": {
              "description": "Name of storage class to use if not relying on default",
              "type": [
                "string",
                "null"
              ]
            },
            "uri": {
              "description": "MongoDB root URI to use for access",
              "type": [
                "string",
                "null"
              ]
            },
            "uriParameters": {
              "description": "Parameters added to MongoDB URI connection string. Only if install if false.",
              "type": [
                "string",
                "null"
              ]
            },
            "volumeSize": {
              "description": "Size of persistent storage volume if persistent",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "mongodb": {
          "additionalProperties": false,
          "description": "Configuration of MongoDB access and/or install",
          "properties": {
            "database": {
              "description": "MongoDB database name in case you're reusing existing one. Only if install if false.",
              "type": [
                "string",
                "null"
              ]
            },
            "image": {
              "additionalProperties": false,
              "description": "The container image to use for MongoDB",
              "properties": {
                "digest": {
                  "description": "The digest of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registry": {
                  "description": "The registry where to pull this image (docker.io, quay.io, internal one...)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repository": {
                  "description": "The repository name of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tag": {
                  "description": "The tag of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "install": {
              "description": "Install MongoDB or reuse an existing instance? Default to true.",
              "type": [
                "boolean",
                "null"
              ]
            },
            "persistent": {
              "description": "Use persistent storage or ephemeral one? Default to true",
              "type": [
                "boolean",
                "null"
              ]
            },
            "pvcAnnotations": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Annotations to be added to managed Persistent Volume Claim",
              "type": [
                "object",
                "null"
              ]
            },
            "resources": {
              "additionalProperties": false,
              "description": "Kubernetes resource requirements for MongoDB",
              "properties": {
                "claims": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "limits": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "secretRef": {
              "additionalProperties": false,
              "description": "Reference of a Secret containing username and password keys for connecting to existing MongoDB instance",
              "properties": {
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "securityContext": {
              "additionalProperties": false,
              "description": "Security context for MongoDB deployment",
              "properties": {
                "appArmorProfile": {
                  "additionalProperties": false,
                  "properties": {
                    "localhostProfile": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "type": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "fsGroup": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "fsGroupChangePolicy": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "runAsGroup": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "runAsNonRoot": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "runAsUser": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "seLinuxOptions": {
                  "additionalProperties": false,
                  "properties": {
                    "level": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "role": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "type": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "user": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "seccompProfile": {
                  "additionalProperties": false,
                  "properties": {
                    "localhostProfile": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "type": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "supplementalGroups": {
                  "items": {
                    "type": "integer"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "sysctls": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "value": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "windowsOptions": {
                  "additionalProperties": false,
                  "properties": {
                    "gmsaCredentialSpec": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gmsaCredentialSpecName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "hostProcess": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "runAsUserName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "storageClassName": {
              "description": "Name of storage class to use if not relying on default",
              "type": [
                "string",
                "null"
              ]
            },
            "uri": {
              "description": "MongoDB root URI to use for access",
              "type": [
                "string",
                "null"
              ]
            },
            "uriParameters": {
              "description": "Parameters added to MongoDB URI connection string. Only if install if false.",
              "type": [
                "string",
                "null"
              ]
            },
            "volumeSize": {
              "description": "Size of persistent storage volume if persistent",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "postman": {
          "additionalProperties": false,
          "description": "Configuration of Postman runtime",
          "properties": {
            "image": {
              "additionalProperties": false,
              "description": "The container image to use for Postman runtime",
              "properties": {
                "digest": {
                  "description": "The digest of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "registry": {
                  "description": "The registry where to pull this image (docker.io, quay.io, internal one...)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repository": {
                  "description": "The repository name of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tag": {
                  "description": "The tag of the image",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "replicas": {
              "description": "Number of desired pods for Postman runtime",
              "type": [
                "integer",
                "null"
              ]
            },
            "resources": {
              "additionalProperties": false,
              "description": "Kubernetes resource requirements for Postman runtime",
              "properties": {
                "claims": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "limits": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "x-kubernetes-int-or-string": true
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                }
              },
              "type": [
                "object",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "version": {
          "description": "The Microcks version",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": [
        "object",
        "null"
      ]
    },
    "status": {
      "additionalProperties": false,
      "properties": {
        "conditions": {
          "description": "List of status conditions",
          "items": {
            "additionalProperties": false,
            "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",
                  "null"
                ]
              },
              "message": {
                "description": "Human-readable message indicating details about the condition's last transition",
                "type": [
                  "string",
                  "null"
                ]
              },
              "reason": {
                "description": "The reason for the condition's last transition (a single word in CamelCase)",
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "description": "The status of the condition",
                "enum": [
                  "DEPLOYING",
                  "ERROR",
                  "PREEXISTING",
                  "READY",
                  "UNKNOWN"
                ],
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": {
                "description": "The unique identifier of a condition, used to distinguish between other conditions in the resource",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "keycloakUrl": {
          "description": "The URL to access Keycloak once installation completed",
          "type": [
            "string",
            "null"
          ]
        },
        "message": {
          "type": [
            "string",
            "null"
          ]
        },
        "microcksUrl": {
          "description": "The URL to access Microcks once installation completed",
          "type": [
            "string",
            "null"
          ]
        },
        "observedGeneration": {
          "description": "Reconciled generation",
          "type": [
            "integer",
            "null"
          ]
        },
        "status": {
          "description": "Global status of the reconciliation",
          "enum": [
            "DEPLOYING",
            "ERROR",
            "PREEXISTING",
            "READY",
            "UNKNOWN"
          ],
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}