{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "Korvet Admin API",
    "version" : "v1"
  },
  "paths" : {
    "/api/v1/users/{username}" : {
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "Get a user",
        "operationId" : "get",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Users" ],
        "summary" : "Update a user's password and/or role",
        "description" : "Changing your own password requires currentPassword; admin resets of other accounts must omit it. The last remaining ADMIN cannot be demoted.",
        "operationId" : "update",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateUserRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Users" ],
        "summary" : "Delete a user",
        "operationId" : "delete",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          }
        }
      }
    },
    "/api/v1/topics/{name}" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "Get a topic",
        "operationId" : "get_1",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Topics" ],
        "summary" : "Update a topic",
        "operationId" : "update_1",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateTopicRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Topics" ],
        "summary" : "Delete a topic",
        "operationId" : "delete_1",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          }
        }
      }
    },
    "/api/v1/credentials/{username}" : {
      "get" : {
        "tags" : [ "Credentials" ],
        "summary" : "Get a credential",
        "operationId" : "get_2",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CredentialResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Credentials" ],
        "summary" : "Rotate a credential",
        "operationId" : "update_2",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateCredentialRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CredentialResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Credentials" ],
        "summary" : "Delete a credential",
        "operationId" : "delete_2",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          }
        }
      }
    },
    "/api/v1/users" : {
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "List users",
        "operationId" : "list",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserListResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Users" ],
        "summary" : "Create a user",
        "operationId" : "create",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateUserRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "List topics",
        "operationId" : "list_1",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicListResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Topics" ],
        "summary" : "Create a topic",
        "operationId" : "create_1",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateTopicRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage/offload-jobs/{id}/retry" : {
      "post" : {
        "tags" : [ "Storage" ],
        "summary" : "Retry a failed or cancelled offload job",
        "description" : "Resets the job to pending with zero attempts so the storage worker's next offload scan retries the segment. Only failed or cancelled jobs can be retried; any other status responds 409.",
        "operationId" : "retry",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OffloadJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage/offload-jobs/{id}/cancel" : {
      "post" : {
        "tags" : [ "Storage" ],
        "summary" : "Cancel a pending or failed offload job",
        "description" : "Marks the job cancelled so the storage worker skips the segment until the job is retried. The segment's local data is kept. Only pending or failed jobs can be cancelled; running, done, or already-cancelled jobs respond 409.",
        "operationId" : "cancel",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OffloadJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/setup/admin" : {
      "post" : {
        "tags" : [ "Setup" ],
        "summary" : "Create the first admin user",
        "operationId" : "createFirstAdmin",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateUserRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FirstAdminSetupResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/loggers/{name}" : {
      "post" : {
        "tags" : [ "Logging" ],
        "summary" : "Update a runtime logger level",
        "description" : "Sets or clears the explicit runtime level for a visible logger. Send null to clear the explicit level and inherit from the parent logger.",
        "operationId" : "update_3",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateRuntimeLoggerRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RuntimeLogger"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/credentials" : {
      "get" : {
        "tags" : [ "Credentials" ],
        "summary" : "List credentials",
        "operationId" : "list_2",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CredentialListResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Credentials" ],
        "summary" : "Create a credential",
        "operationId" : "create_2",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateCredentialRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CredentialResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/consumer-groups/{groupId}/reset-offsets" : {
      "post" : {
        "tags" : [ "Consumer Groups" ],
        "summary" : "Reset consumer group offsets",
        "description" : "Clears the group's committed offsets and stream delivery state so consumers restart according to their own auto.offset.reset policy. With dryRun=true, nothing is mutated: the response previews the per-partition offset state the reset would clear (targetOffset is always null because the reset clears state rather than committing a broker-chosen offset). Without dryRun the reset is applied and the response is 204.",
        "operationId" : "resetOffsets",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "dryRun",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResetOffsetsPreviewResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/logout" : {
      "post" : {
        "tags" : [ "Auth" ],
        "summary" : "Log out and clear the session cookie",
        "operationId" : "logout",
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/auth/login" : {
      "post" : {
        "tags" : [ "Auth" ],
        "summary" : "Log in and receive a session cookie",
        "operationId" : "login",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LoginRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/v1/acls" : {
      "get" : {
        "tags" : [ "ACLs" ],
        "summary" : "List principals that have ACL rules",
        "operationId" : "listPrincipals",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AclPrincipalListResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "ACLs" ],
        "summary" : "Add an ACL rule",
        "description" : "resourceType defaults to TOPIC and resource defaults to topic, so the legacy {principal, topic, operation} shape keeps working. Resource names match exact, 'prefix*', or '*'.",
        "operationId" : "create_3",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AclRuleDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AclRuleDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics/{name}/stats" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "Get topic traffic stats",
        "description" : "Returns current per-topic counters derived from persisted topic metrics, current-process broker meters, and local storage metadata. The accumulated section contains persisted or storage-derived snapshots; the current section contains local JVM meter counters. Historical buckets, persisted activity timestamps, and persisted auto-created status are reserved for a later phase.",
        "operationId" : "stats",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicStatsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics/{name}/segment-partitions" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "List per-partition segment summaries for a topic",
        "operationId" : "listPartitionSummaries",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PartitionSegmentSummaryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics/{name}/partitions" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "List topic partition stats",
        "description" : "Returns current per-partition stream metadata derived from topic registry and storage state. Phase 1 does not include rates, byte sizes, historical data, alerts, or storage control operations.",
        "operationId" : "listPartitions",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicPartitionStatsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics/{name}/partitions/{partition}/segments" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "List segments for a topic partition",
        "operationId" : "listSegments",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partition",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SegmentListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics/{name}/partitions/{partition}/segments/{segmentId}" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "Get segment details",
        "description" : "Returns local Redis backing-stream metadata and, when available, read-only remote object-store and Iceberg metadata (null otherwise).",
        "operationId" : "getSegment",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partition",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "segmentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SegmentDetailResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics/{name}/messages" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "Browse topic messages",
        "description" : "Read-only message browsing backed by existing Korvet stream reads. Phase 1 supports forward reads from earliest, Kafka offset, or timestamp cursors with offset/limit pagination. Latest-N browsing, schema-aware decoding, and full header decoding are reserved for later phases.",
        "operationId" : "listMessages",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "Topic name.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partition",
          "in" : "query",
          "description" : "Optional partition number. Omit to browse across all partitions.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "seek",
          "in" : "query",
          "description" : "Read cursor. Supported values are earliest, offset, and timestamp.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "seekOffset",
          "in" : "query",
          "description" : "Kafka offset to start from when seek=offset. This is distinct from page offset. Example: 29212804978737150.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timestamp",
          "in" : "query",
          "description" : "Epoch milliseconds used as the stream timestamp cursor when seek=timestamp.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Zero-based page row offset. Defaults to 0. offset + limit must not exceed 10000.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Maximum rows to return. Defaults to 100 and is capped at 100.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "decode",
          "in" : "query",
          "description" : "Payload decode mode. Supported values are raw, utf8, and json.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "direction",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicMessageListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topics/all/segment-summaries" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "List per-topic segment summaries",
        "operationId" : "listTopicSummaries",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicSegmentSummaryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/topic-partitions" : {
      "get" : {
        "tags" : [ "Topics" ],
        "summary" : "List partition stats for all topics",
        "operationId" : "list_3",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicPartitionStatsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage/redis-streams" : {
      "get" : {
        "tags" : [ "Storage" ],
        "summary" : "Inspect local Redis Streams",
        "description" : "Returns point-in-time metadata for physical Redis Streams that currently back configured topic partitions. The inventory is derived from topic and segment metadata and does not scan Redis. Missing streams remain distinguishable from unavailable metadata reads.",
        "operationId" : "list_4",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RedisStreamListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage/redis-streams/runtime" : {
      "get" : {
        "tags" : [ "Storage" ],
        "summary" : "Get Redis Streams runtime state",
        "description" : "Returns the local Redis Streams write circuit-breaker state without exposing failure details.",
        "operationId" : "getRuntime",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RedisStreamsRuntimeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage/offload-jobs" : {
      "get" : {
        "tags" : [ "Storage" ],
        "summary" : "List storage offload jobs",
        "description" : "Returns offload jobs merged from live segment state and the durable job records the storage worker maintains (attempts, timestamps, errors, manual cancel/retry state). Query parameters: status (repeatable; pending, running, done, failed, cancelled), offset (zero-based row offset, default 0), and limit (default 100, maximum 500).",
        "operationId" : "list_5",
        "parameters" : [ {
          "name" : "status",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OffloadJobListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/storage-stats" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "Get storage stats",
        "description" : "Returns remote storage diagnostics. When no remote tier is configured, remoteStorage.status is NOT_AVAILABLE. When configured, remoteStorage includes status, queueDepth, segmentsPerMin, bytesPerMin, archiveLatency percentiles, archiveFailures by error type, lagOldestSeconds (age of the oldest un-archived segment; null until reported), and endpoint.",
        "operationId" : "storageStats",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StorageStats"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/security/status" : {
      "get" : {
        "tags" : [ "Security" ],
        "summary" : "Get broker security status",
        "description" : "Returns read-only TLS and SASL posture values derived from the running configuration. Secrets, key material, and certificate paths are not returned.",
        "operationId" : "status",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SecurityStatusResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/schema-registry/subjects" : {
      "get" : {
        "tags" : [ "Schema Registry" ],
        "summary" : "List schema subjects with UI metadata",
        "description" : "Returns each registered subject enriched with the fields the Schemas page needs (schema type, latest version, version count, effective compatibility) plus the topic derived from the default TopicNameStrategy when that topic exists. Other subject naming strategies leave the topic unbound. Assembling this server-side avoids the per-subject request fan-out the Schemas page would otherwise make.",
        "operationId" : "subjects",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SchemaSubjectListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/metrics" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "Get curated metrics snapshot",
        "operationId" : "metrics",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MetricsSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/metrics/topics" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "Get per-topic metrics",
        "description" : "Returns per-topic produce/fetch rates and latency percentiles, ordered by topic name. Rates are per-step counter deltas from the in-process history store averaged over a rolling lookback window, so they read 0 until the first step (korvet.admin.metrics-history.interval, default 15s) completes. Each entry also carries samples — the topic's per-step produced-traffic history over the retention window, oldest first, empty when the topic has no history series (series cap, or broker restart). topic filters the response to one topic; total reflects all matching topics so partial pages are detectable.",
        "operationId" : "topicMetrics",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        }, {
          "name" : "topic",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TopicMetricsListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/metrics/history" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "Get sampled metrics history",
        "description" : "Returns per-step curated metrics captured in-process (default every 15s, ~1h retention, korvet.admin.metrics-history.*), oldest first. Counter-backed fields are per-second rates over each step; no client-side delta math is needed. The buffer is in-memory only: it starts empty on every restart and holds no more than retention/interval samples.",
        "operationId" : "metricsHistory",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MetricsHistoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/metrics/consumer-lag" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "Get aggregate consumer lag",
        "description" : "Returns per-group total/max lag in one call, cheap enough for dashboard polling. Lag sums the storage-reported undelivered counts; partitions whose lag is unknowable are counted in partitionsWithUnknownLag and the totals are lower bounds when that count is non-zero.",
        "operationId" : "consumerLag",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConsumerGroupLagListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/loggers" : {
      "get" : {
        "tags" : [ "Logging" ],
        "summary" : "List runtime logger levels",
        "description" : "Returns the current runtime logger levels from Spring Boot's logging system. Changes made through the runtime logging API are process-local and do not survive restart.",
        "operationId" : "list_6",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RuntimeLoggerListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/health" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "Get health",
        "operationId" : "health",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/HealthSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/consumer-groups" : {
      "get" : {
        "tags" : [ "Consumer Groups" ],
        "summary" : "List consumer groups",
        "operationId" : "list_7",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConsumerGroupListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/consumer-groups/{groupId}" : {
      "get" : {
        "tags" : [ "Consumer Groups" ],
        "summary" : "Get consumer group details",
        "operationId" : "get_3",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConsumerGroupDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/consumer-groups/{groupId}/offsets" : {
      "get" : {
        "tags" : [ "Consumer Groups" ],
        "summary" : "List consumer group offsets",
        "description" : "Returns the current committed/current offset, end offset, lag, and available stream group metadata for a consumer group. Lag is a storage-reported undelivered message count and excludes delivered-but-uncommitted pending messages.",
        "operationId" : "offsets",
        "parameters" : [ {
          "name" : "groupId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "topic",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partition",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConsumerGroupOffsetsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/configuration/system" : {
      "get" : {
        "tags" : [ "Configuration" ],
        "summary" : "Get system configuration",
        "description" : "Returns read-only, effective startup-bound configuration values. Durations are milliseconds, sizes are bytes, and secrets are not returned.",
        "operationId" : "system",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SystemConfigurationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/configuration/runtime-policies" : {
      "get" : {
        "tags" : [ "Configuration" ],
        "summary" : "List runtime policies",
        "operationId" : "runtimePolicies",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RuntimePolicyListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/brokers" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "List brokers",
        "operationId" : "brokers",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BrokerListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/status" : {
      "get" : {
        "tags" : [ "Auth" ],
        "summary" : "Report whether authentication is required and the caller's role",
        "operationId" : "status_1",
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AuthStatus"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/acls/{principal}" : {
      "get" : {
        "tags" : [ "ACLs" ],
        "summary" : "List ACL rules for a principal",
        "operationId" : "list_8",
        "parameters" : [ {
          "name" : "principal",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AclRuleListResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "ACLs" ],
        "summary" : "Delete an ACL rule",
        "description" : "Identify the rule by topic (legacy) or by resourceType + resource.",
        "operationId" : "delete_3",
        "parameters" : [ {
          "name" : "principal",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "topic",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "resourceType",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "TOPIC", "GROUP" ]
          }
        }, {
          "name" : "resource",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "operation",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "READ", "WRITE" ]
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content"
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "UpdateUserRequest" : {
        "type" : "object",
        "properties" : {
          "password" : {
            "type" : "string",
            "maxLength" : 128,
            "minLength" : 8,
            "pattern" : "\\S+"
          },
          "currentPassword" : {
            "type" : "string"
          },
          "role" : {
            "type" : "string",
            "enum" : [ "ADMIN", "VIEWER" ]
          }
        }
      },
      "UserResponse" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string"
          },
          "role" : {
            "type" : "string",
            "enum" : [ "ADMIN", "VIEWER" ]
          }
        }
      },
      "TopicConfigDto" : {
        "type" : "object",
        "properties" : {
          "partitions" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          },
          "retentionTime" : {
            "type" : "string"
          },
          "retentionBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "compression" : {
            "type" : "string",
            "enum" : [ "none", "gzip", "snappy", "lz4", "zstd" ]
          },
          "offsetSequenceBits" : {
            "type" : "integer",
            "format" : "int32",
            "maximum" : 16,
            "minimum" : 1
          },
          "remoteStorageEnabled" : {
            "type" : "boolean"
          },
          "localRetentionTime" : {
            "type" : "string"
          },
          "localRetentionBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "segmentTime" : {
            "type" : "string"
          },
          "segmentBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "cleanupPolicy" : {
            "type" : "string",
            "enum" : [ "DELETE", "COMPACT", "COMPACT_DELETE" ]
          },
          "messageTimestampType" : {
            "type" : "string",
            "enum" : [ "NoTimestampType", "CreateTime", "LogAppendTime" ]
          },
          "logAppendTimestampHeader" : {
            "type" : "boolean"
          }
        }
      },
      "UpdateTopicRequest" : {
        "type" : "object",
        "properties" : {
          "config" : {
            "$ref" : "#/components/schemas/TopicConfigDto"
          },
          "inheritLocalRetentionTime" : {
            "type" : "boolean"
          }
        },
        "required" : [ "config" ]
      },
      "TopicConfigFieldResponse" : {
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : "string"
          },
          "effective" : {
            "type" : "string"
          },
          "override" : {
            "type" : "string"
          },
          "pattern" : {
            "type" : "string"
          },
          "default" : {
            "type" : "string"
          },
          "source" : {
            "type" : "string"
          },
          "applyMode" : {
            "type" : "string"
          },
          "editable" : {
            "type" : "boolean"
          },
          "pinned" : {
            "type" : "boolean"
          }
        }
      },
      "TopicResponse" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string"
          },
          "config" : {
            "$ref" : "#/components/schemas/TopicConfigDto"
          },
          "configFields" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicConfigFieldResponse"
            }
          }
        }
      },
      "UpdateCredentialRequest" : {
        "type" : "object",
        "properties" : {
          "password" : {
            "type" : "string",
            "maxLength" : 128,
            "minLength" : 8,
            "pattern" : "\\S+"
          },
          "mechanism" : {
            "type" : "string",
            "pattern" : "PLAIN|SCRAM-SHA-256"
          }
        },
        "required" : [ "password" ]
      },
      "CredentialResponse" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string"
          },
          "mechanism" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "CreateUserRequest" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          },
          "password" : {
            "type" : "string",
            "maxLength" : 128,
            "minLength" : 8,
            "pattern" : "\\S+"
          },
          "role" : {
            "type" : "string",
            "enum" : [ "ADMIN", "VIEWER" ]
          }
        },
        "required" : [ "password", "username" ]
      },
      "CreateTopicRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "minLength" : 1
          },
          "config" : {
            "$ref" : "#/components/schemas/TopicConfigDto"
          }
        },
        "required" : [ "name" ]
      },
      "OffloadJobDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "segment" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string"
          },
          "attempts" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxAttempts" : {
            "type" : "integer",
            "format" : "int32"
          },
          "startedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "finishedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "durationMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "FirstAdminSetupResponse" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string"
          }
        }
      },
      "UpdateRuntimeLoggerRequest" : {
        "type" : "object",
        "properties" : {
          "configuredLevel" : {
            "type" : "string"
          }
        }
      },
      "RuntimeLogger" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "configuredLevel" : {
            "type" : "string"
          },
          "effectiveLevel" : {
            "type" : "string"
          }
        }
      },
      "CreateCredentialRequest" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string",
            "maxLength" : 64,
            "minLength" : 3,
            "pattern" : "[\\w.\\-]+"
          },
          "password" : {
            "type" : "string",
            "maxLength" : 128,
            "minLength" : 8,
            "pattern" : "\\S+"
          },
          "mechanism" : {
            "type" : "string",
            "pattern" : "PLAIN|SCRAM-SHA-256"
          }
        },
        "required" : [ "password", "username" ]
      },
      "ResetOffsetPreviewPartition" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "committedOffset" : {
            "type" : "string"
          },
          "currentOffset" : {
            "type" : "string"
          },
          "endOffset" : {
            "type" : "string"
          },
          "pendingCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "targetOffset" : {
            "type" : "string"
          }
        }
      },
      "ResetOffsetsPreviewResponse" : {
        "type" : "object",
        "properties" : {
          "groupId" : {
            "type" : "string"
          },
          "partitionCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "partitions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ResetOffsetPreviewPartition"
            }
          }
        }
      },
      "LoginRequest" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string",
            "minLength" : 1
          },
          "password" : {
            "type" : "string",
            "minLength" : 1
          }
        },
        "required" : [ "password", "username" ]
      },
      "AclRuleDto" : {
        "type" : "object",
        "properties" : {
          "principal" : {
            "type" : "string",
            "minLength" : 1
          },
          "topic" : {
            "type" : "string"
          },
          "resourceType" : {
            "type" : "string",
            "enum" : [ "TOPIC", "GROUP" ]
          },
          "resource" : {
            "type" : "string"
          },
          "operation" : {
            "type" : "string",
            "enum" : [ "READ", "WRITE" ]
          }
        },
        "required" : [ "operation", "principal" ]
      },
      "UserListResponse" : {
        "type" : "object",
        "properties" : {
          "users" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserResponse"
            }
          }
        }
      },
      "TopicListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicSummary"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TopicSummary" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string"
          },
          "partitions" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "Accumulated" : {
        "type" : "object",
        "properties" : {
          "producedMessages" : {
            "type" : "integer",
            "format" : "int64"
          },
          "producedBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "messageCount" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "Current" : {
        "type" : "object",
        "properties" : {
          "produceRecords" : {
            "type" : "number",
            "format" : "double"
          },
          "produceRequests" : {
            "type" : "number",
            "format" : "double"
          },
          "fetchRequests" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "TopicStatsResponse" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "accumulated" : {
            "$ref" : "#/components/schemas/Accumulated"
          },
          "current" : {
            "$ref" : "#/components/schemas/Current"
          }
        }
      },
      "PartitionSegmentSummary" : {
        "type" : "object",
        "properties" : {
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "segmentCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "messageCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "byteSize" : {
            "type" : "integer",
            "format" : "int64"
          },
          "latestTimestamp" : {
            "type" : "integer",
            "format" : "int64"
          },
          "localCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "remoteCount" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "PartitionSegmentSummaryResponse" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PartitionSegmentSummary"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TopicPartitionStats" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "streamKey" : {
            "type" : "string"
          },
          "firstStreamId" : {
            "type" : "string"
          },
          "firstOffset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "lastStreamId" : {
            "type" : "string"
          },
          "endOffset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "messageCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "localStorageEnabled" : {
            "type" : "boolean"
          },
          "remoteStorageEnabled" : {
            "type" : "boolean"
          },
          "status" : {
            "type" : "string"
          },
          "sizeBytes" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "TopicPartitionStatsResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicPartitionStats"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SegmentItem" : {
        "type" : "object",
        "properties" : {
          "segmentId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "state" : {
            "type" : "string"
          },
          "tier" : {
            "type" : "string"
          },
          "open" : {
            "type" : "boolean"
          },
          "messageCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "byteSize" : {
            "type" : "integer",
            "format" : "int64"
          },
          "startId" : {
            "type" : "string"
          },
          "endId" : {
            "type" : "string"
          },
          "startTimestamp" : {
            "type" : "integer",
            "format" : "int64"
          },
          "endTimestamp" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "SegmentListResponse" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SegmentItem"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "LocalSegmentStore" : {
        "type" : "object",
        "properties" : {
          "streamKey" : {
            "type" : "string"
          },
          "length" : {
            "type" : "integer",
            "format" : "int64"
          },
          "firstId" : {
            "type" : "string"
          },
          "lastId" : {
            "type" : "string"
          }
        }
      },
      "RemoteSegmentDataFile" : {
        "type" : "object",
        "properties" : {
          "location" : {
            "type" : "string"
          },
          "bucket" : {
            "type" : "string"
          },
          "objectKey" : {
            "type" : "string"
          },
          "sizeBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "recordCount" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "RemoteSegmentStore" : {
        "type" : "object",
        "properties" : {
          "format" : {
            "type" : "string"
          },
          "table" : {
            "type" : "string"
          },
          "catalog" : {
            "type" : "string"
          },
          "dataFiles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RemoteSegmentDataFile"
            }
          }
        }
      },
      "SegmentDetailResponse" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "segmentId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "state" : {
            "type" : "string"
          },
          "tier" : {
            "type" : "string"
          },
          "open" : {
            "type" : "boolean"
          },
          "messageCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "byteSize" : {
            "type" : "integer",
            "format" : "int64"
          },
          "startId" : {
            "type" : "string"
          },
          "endId" : {
            "type" : "string"
          },
          "startTimestamp" : {
            "type" : "integer",
            "format" : "int64"
          },
          "endTimestamp" : {
            "type" : "integer",
            "format" : "int64"
          },
          "localStore" : {
            "$ref" : "#/components/schemas/LocalSegmentStore"
          },
          "remoteStore" : {
            "$ref" : "#/components/schemas/RemoteSegmentStore"
          }
        }
      },
      "TopicMessageField" : {
        "type" : "object",
        "properties" : {
          "preview" : {
            "type" : "string"
          },
          "value" : { },
          "encoding" : {
            "type" : "string"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "truncated" : {
            "type" : "boolean"
          },
          "error" : {
            "type" : "string"
          },
          "decodeStatus" : {
            "type" : "string",
            "enum" : [ "decoded", "raw", "schema-not-found", "decode-error" ]
          }
        }
      },
      "TopicMessageHeader" : {
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : "string"
          },
          "value" : {
            "$ref" : "#/components/schemas/TopicMessageField"
          }
        }
      },
      "TopicMessageItem" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "streamId" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "integer",
            "format" : "int64"
          },
          "recordTimestamp" : {
            "type" : "integer",
            "format" : "int64"
          },
          "key" : {
            "$ref" : "#/components/schemas/TopicMessageField"
          },
          "value" : {
            "$ref" : "#/components/schemas/TopicMessageField"
          },
          "headers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicMessageHeader"
            }
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TopicMessageListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicMessageItem"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int64"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "limit" : {
            "type" : "integer",
            "format" : "int32"
          },
          "nextOffset" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "TopicSegmentSummary" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "partitions" : {
            "type" : "integer",
            "format" : "int32"
          },
          "segmentCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "messageCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "byteSize" : {
            "type" : "integer",
            "format" : "int64"
          },
          "localCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "remoteCount" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "TopicSegmentSummaryResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicSegmentSummary"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "RedisStreamItem" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "key" : {
            "type" : "string"
          },
          "length" : {
            "type" : "integer",
            "format" : "int64"
          },
          "firstId" : {
            "type" : "string"
          },
          "lastId" : {
            "type" : "string"
          },
          "memoryBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "status" : {
            "type" : "string"
          }
        }
      },
      "RedisStreamListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RedisStreamItem"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CircuitBreaker" : {
        "type" : "object",
        "properties" : {
          "state" : {
            "type" : "string"
          },
          "openUntil" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "RedisStreamsRuntimeResponse" : {
        "type" : "object",
        "properties" : {
          "circuitBreaker" : {
            "$ref" : "#/components/schemas/CircuitBreaker"
          }
        }
      },
      "OffloadJobListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OffloadJobDto"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "limit" : {
            "type" : "integer",
            "format" : "int32"
          },
          "counts" : {
            "$ref" : "#/components/schemas/OffloadJobStatusCounts"
          }
        }
      },
      "OffloadJobStatusCounts" : {
        "type" : "object",
        "properties" : {
          "pending" : {
            "type" : "integer",
            "format" : "int64"
          },
          "running" : {
            "type" : "integer",
            "format" : "int64"
          },
          "done" : {
            "type" : "integer",
            "format" : "int64"
          },
          "failed" : {
            "type" : "integer",
            "format" : "int64"
          },
          "cancelled" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "StorageStats" : {
        "type" : "object",
        "properties" : {
          "remoteStorage" : {
            "type" : "object",
            "additionalProperties" : { }
          }
        }
      },
      "ListenerSecurityStatus" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "enabled" : {
            "type" : "boolean"
          },
          "bindHost" : {
            "type" : "string"
          },
          "bindPort" : {
            "type" : "integer",
            "format" : "int32"
          },
          "advertisedHost" : {
            "type" : "string"
          },
          "advertisedPort" : {
            "type" : "integer",
            "format" : "int32"
          },
          "tls" : {
            "$ref" : "#/components/schemas/TlsSecurityStatus"
          },
          "sasl" : {
            "$ref" : "#/components/schemas/SaslSecurityStatus"
          }
        }
      },
      "SaslSecurityStatus" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "mechanisms" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "SecurityStatusResponse" : {
        "type" : "object",
        "properties" : {
          "tls" : {
            "$ref" : "#/components/schemas/TlsSecurityStatus"
          },
          "sasl" : {
            "$ref" : "#/components/schemas/SaslSecurityStatus"
          },
          "listeners" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ListenerSecurityStatus"
            }
          }
        }
      },
      "TlsSecurityStatus" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "certificateConfigured" : {
            "type" : "boolean"
          },
          "keyConfigured" : {
            "type" : "boolean"
          },
          "trustCertificateConfigured" : {
            "type" : "boolean"
          },
          "clientAuthRequired" : {
            "type" : "boolean"
          }
        }
      },
      "SchemaSubjectListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SchemaSubjectSummary"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SchemaSubjectSummary" : {
        "type" : "object",
        "properties" : {
          "subject" : {
            "type" : "string"
          },
          "topic" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "latestVersion" : {
            "type" : "integer",
            "format" : "int32"
          },
          "versionCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "compat" : {
            "type" : "string"
          }
        }
      },
      "LatencyPercentiles" : {
        "type" : "object",
        "properties" : {
          "p50Ms" : {
            "type" : "number",
            "format" : "double"
          },
          "p95Ms" : {
            "type" : "number",
            "format" : "double"
          },
          "p99Ms" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "MetricsSnapshot" : {
        "type" : "object",
        "properties" : {
          "topics" : {
            "type" : "integer",
            "format" : "int32"
          },
          "groups" : {
            "type" : "integer",
            "format" : "int32"
          },
          "activeConnections" : {
            "type" : "number",
            "format" : "double"
          },
          "messagesIn" : {
            "type" : "number",
            "format" : "double"
          },
          "bytesIn" : {
            "type" : "number",
            "format" : "double"
          },
          "produceRequests" : {
            "type" : "number",
            "format" : "double"
          },
          "fetchRequests" : {
            "type" : "number",
            "format" : "double"
          },
          "bytesOut" : {
            "type" : "number",
            "format" : "double"
          },
          "requestLatency" : {
            "$ref" : "#/components/schemas/LatencyPercentiles"
          },
          "backpressureConnections" : {
            "type" : "number",
            "format" : "double"
          },
          "rebalances" : {
            "type" : "number",
            "format" : "double"
          },
          "brokerFailures" : {
            "type" : "number",
            "format" : "double"
          },
          "lossyRecords" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "TopicHistorySample" : {
        "type" : "object",
        "properties" : {
          "timestamp" : {
            "type" : "string",
            "format" : "date-time"
          },
          "produceRecordsPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "produceBytesPerSecond" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "TopicMetricsEntry" : {
        "type" : "object",
        "properties" : {
          "topic" : {
            "type" : "string"
          },
          "produceRecordsPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "produceBytesPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "produceRequestsPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "fetchRequestsPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "produceLatency" : {
            "$ref" : "#/components/schemas/LatencyPercentiles"
          },
          "fetchLatency" : {
            "$ref" : "#/components/schemas/LatencyPercentiles"
          },
          "samples" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicHistorySample"
            }
          }
        }
      },
      "TopicMetricsListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TopicMetricsEntry"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "MetricsHistoryPoint" : {
        "type" : "object",
        "properties" : {
          "timestamp" : {
            "type" : "string",
            "format" : "date-time"
          },
          "activeConnections" : {
            "type" : "number",
            "format" : "double"
          },
          "backpressureConnections" : {
            "type" : "number",
            "format" : "double"
          },
          "messagesInPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "bytesInPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "bytesOutPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "produceRequestsPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "fetchRequestsPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "rebalancesPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "brokerFailuresPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "lossyRecordsPerSecond" : {
            "type" : "number",
            "format" : "double"
          },
          "requestLatency" : {
            "$ref" : "#/components/schemas/LatencyPercentiles"
          }
        }
      },
      "MetricsHistoryResponse" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "intervalSeconds" : {
            "type" : "number",
            "format" : "double"
          },
          "retentionSeconds" : {
            "type" : "number",
            "format" : "double"
          },
          "samples" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MetricsHistoryPoint"
            }
          }
        }
      },
      "ConsumerGroupLagListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConsumerGroupLagSummary"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ConsumerGroupLagSummary" : {
        "type" : "object",
        "properties" : {
          "groupId" : {
            "type" : "string"
          },
          "state" : {
            "type" : "string"
          },
          "memberCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalLag" : {
            "type" : "integer",
            "format" : "int64"
          },
          "maxLag" : {
            "type" : "integer",
            "format" : "int64"
          },
          "partitionsWithUnknownLag" : {
            "type" : "integer",
            "format" : "int32"
          },
          "lastCommitTimestamp" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "RuntimeLoggerListResponse" : {
        "type" : "object",
        "properties" : {
          "levels" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RuntimeLogger"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "HealthCheckAction" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "label" : {
            "type" : "string"
          },
          "method" : {
            "type" : "string"
          },
          "path" : {
            "type" : "string"
          }
        }
      },
      "HealthCheckDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "UP", "DEGRADED", "DOWN", "UNKNOWN", "NOT_AVAILABLE" ]
          },
          "severity" : {
            "type" : "string",
            "enum" : [ "OK", "INFO", "WARNING", "CRITICAL" ]
          },
          "scope" : {
            "type" : "string"
          },
          "targetLabel" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string"
          },
          "durationMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "lastCheckedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/HealthCheckAction"
            }
          }
        }
      },
      "HealthComponent" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string"
          }
        }
      },
      "HealthSnapshot" : {
        "type" : "object",
        "properties" : {
          "status" : {
            "type" : "string"
          },
          "details" : {
            "$ref" : "#/components/schemas/HealthComponent"
          },
          "checks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/HealthCheckDto"
            }
          }
        }
      },
      "CredentialListResponse" : {
        "type" : "object",
        "properties" : {
          "credentials" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CredentialResponse"
            }
          }
        }
      },
      "ConsumerGroupListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConsumerGroupSummary"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ConsumerGroupSummary" : {
        "type" : "object",
        "properties" : {
          "groupId" : {
            "type" : "string"
          },
          "memberCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "state" : {
            "type" : "string"
          }
        }
      },
      "ConsumerGroupDetail" : {
        "type" : "object",
        "properties" : {
          "groupId" : {
            "type" : "string"
          },
          "state" : {
            "type" : "string"
          },
          "protocolType" : {
            "type" : "string"
          },
          "protocol" : {
            "type" : "string"
          },
          "generationId" : {
            "type" : "integer",
            "format" : "int32"
          },
          "leaderId" : {
            "type" : "string"
          },
          "members" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConsumerGroupMember"
            }
          }
        }
      },
      "ConsumerGroupMember" : {
        "type" : "object",
        "properties" : {
          "memberId" : {
            "type" : "string"
          },
          "clientId" : {
            "type" : "string"
          },
          "host" : {
            "type" : "string"
          },
          "assignedPartitions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "ConsumerGroupOffset" : {
        "type" : "object",
        "properties" : {
          "groupId" : {
            "type" : "string"
          },
          "topic" : {
            "type" : "string"
          },
          "partition" : {
            "type" : "integer",
            "format" : "int32"
          },
          "committedOffset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "currentOffset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "endOffset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "lag" : {
            "type" : "integer",
            "format" : "int64"
          },
          "lastDeliveredId" : {
            "type" : "string"
          },
          "pendingCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "lastCommitTimestamp" : {
            "type" : "string",
            "format" : "date-time"
          },
          "assignedMemberId" : {
            "type" : "string"
          },
          "assignedClientId" : {
            "type" : "string"
          }
        }
      },
      "ConsumerGroupOffsetsResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConsumerGroupOffset"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "Local" : {
        "type" : "object",
        "properties" : {
          "redisOverrideConfigured" : {
            "type" : "boolean"
          },
          "compressionCodec" : {
            "type" : "string"
          },
          "writeConnections" : {
            "type" : "integer",
            "format" : "int32"
          },
          "writeWaitReplicas" : {
            "type" : "integer",
            "format" : "int32"
          },
          "writeWaitTimeoutMs" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "Remote" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "path" : {
            "type" : "string"
          },
          "scheme" : {
            "type" : "string"
          },
          "metricsEnabled" : {
            "type" : "boolean"
          },
          "icebergTargetFileSizeBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "icebergRowGroupSizeBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "s3Region" : {
            "type" : "string"
          },
          "s3Endpoint" : {
            "type" : "string"
          },
          "s3AccessKeyConfigured" : {
            "type" : "boolean"
          },
          "s3SecretAccessKeyConfigured" : {
            "type" : "boolean"
          },
          "s3PathStyleAccess" : {
            "type" : "boolean"
          }
        }
      },
      "SystemAdminConfiguration" : {
        "type" : "object",
        "properties" : {
          "bootstrapEnabled" : {
            "type" : "boolean"
          },
          "securityEnabled" : {
            "type" : "boolean"
          },
          "firstRunSetupEnabled" : {
            "type" : "boolean"
          },
          "jwtExpiryMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "jwtSecretConfigured" : {
            "type" : "boolean"
          }
        }
      },
      "SystemBrokerConfiguration" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "id" : {
            "type" : "integer",
            "format" : "int32"
          },
          "host" : {
            "type" : "string"
          },
          "port" : {
            "type" : "integer",
            "format" : "int32"
          },
          "advertisedHost" : {
            "type" : "string"
          },
          "advertisedPort" : {
            "type" : "integer",
            "format" : "int32"
          },
          "bossThreads" : {
            "type" : "integer",
            "format" : "int32"
          },
          "workerThreads" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxRequestBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "fetchPartitionMaxBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "fetchMaxWaitMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "responseQueueTimeoutMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "produceTimeoutMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "tlsEnabled" : {
            "type" : "boolean"
          },
          "certFileConfigured" : {
            "type" : "boolean"
          },
          "keyFileConfigured" : {
            "type" : "boolean"
          },
          "trustCertFileConfigured" : {
            "type" : "boolean"
          },
          "clientAuthRequired" : {
            "type" : "boolean"
          },
          "aclEnabled" : {
            "type" : "boolean"
          },
          "rebalanceDelayMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "rebalanceThreads" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxPendingBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "resumePendingBytes" : {
            "type" : "integer",
            "format" : "int64"
          },
          "metricsOffsetRefreshIntervalMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "metricsOffsetCardinalityCap" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SystemConfigurationResponse" : {
        "type" : "object",
        "properties" : {
          "namespace" : {
            "type" : "string"
          },
          "sasl" : {
            "$ref" : "#/components/schemas/SystemSaslConfiguration"
          },
          "broker" : {
            "$ref" : "#/components/schemas/SystemBrokerConfiguration"
          },
          "redis" : {
            "$ref" : "#/components/schemas/SystemRedisConfiguration"
          },
          "storage" : {
            "$ref" : "#/components/schemas/SystemStorageConfiguration"
          },
          "schemaRegistry" : {
            "$ref" : "#/components/schemas/SystemSchemaRegistryConfiguration"
          },
          "admin" : {
            "$ref" : "#/components/schemas/SystemAdminConfiguration"
          },
          "ui" : {
            "$ref" : "#/components/schemas/SystemUiConfiguration"
          }
        }
      },
      "SystemRedisConfiguration" : {
        "type" : "object",
        "properties" : {
          "uriConfigured" : {
            "type" : "boolean"
          },
          "host" : {
            "type" : "string"
          },
          "port" : {
            "type" : "integer",
            "format" : "int32"
          },
          "timeoutMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "cluster" : {
            "type" : "boolean"
          },
          "usernameConfigured" : {
            "type" : "boolean"
          },
          "passwordConfigured" : {
            "type" : "boolean"
          },
          "ioThreads" : {
            "type" : "integer",
            "format" : "int32"
          },
          "poolSize" : {
            "type" : "integer",
            "format" : "int32"
          },
          "poolMaxWaitMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "metricsEnabled" : {
            "type" : "boolean"
          }
        }
      },
      "SystemSaslConfiguration" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "mechanisms" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "SystemSchemaRegistryConfiguration" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "defaultCompatibility" : {
            "type" : "string"
          },
          "validateProduce" : {
            "type" : "boolean"
          }
        }
      },
      "SystemStorageConfiguration" : {
        "type" : "object",
        "properties" : {
          "local" : {
            "$ref" : "#/components/schemas/Local"
          },
          "remote" : {
            "$ref" : "#/components/schemas/Remote"
          },
          "worker" : {
            "$ref" : "#/components/schemas/Worker"
          }
        }
      },
      "SystemUiConfiguration" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          }
        }
      },
      "Worker" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "tickIntervalMs" : {
            "type" : "integer",
            "format" : "int64"
          },
          "leaseDurationMs" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "RuntimePolicy" : {
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "currentValue" : {
            "type" : "string"
          },
          "defaultValue" : {
            "type" : "string"
          },
          "source" : {
            "type" : "string"
          },
          "scope" : {
            "type" : "string"
          },
          "applyMode" : {
            "type" : "string"
          },
          "editable" : {
            "type" : "boolean"
          },
          "lastChangedAt" : {
            "type" : "string"
          }
        }
      },
      "RuntimePolicyListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RuntimePolicy"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "BrokerDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32"
          },
          "host" : {
            "type" : "string"
          },
          "port" : {
            "type" : "integer",
            "format" : "int32"
          },
          "rack" : {
            "type" : "string"
          },
          "bindHost" : {
            "type" : "string"
          },
          "bindPort" : {
            "type" : "integer",
            "format" : "int32"
          },
          "tls" : {
            "type" : "boolean"
          },
          "sasl" : {
            "type" : "boolean"
          },
          "saslMechanism" : {
            "type" : "string"
          },
          "connections" : {
            "type" : "integer",
            "format" : "int32"
          },
          "lastHeartbeat" : {
            "type" : "string",
            "format" : "date-time"
          },
          "uptime" : {
            "type" : "string"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "BrokerListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BrokerDto"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "AuthStatus" : {
        "type" : "object",
        "properties" : {
          "securityEnabled" : {
            "type" : "boolean"
          },
          "firstRunSetupRequired" : {
            "type" : "boolean"
          },
          "oidcEnabled" : {
            "type" : "boolean"
          },
          "oidcProvider" : {
            "type" : "string"
          },
          "username" : {
            "type" : "string"
          },
          "role" : {
            "type" : "string",
            "enum" : [ "ADMIN", "VIEWER" ]
          }
        }
      },
      "AclPrincipalListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "AclRuleListResponse" : {
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AclRuleDto"
            }
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      }
    }
  }
}
