lib/karafka/schemas/consumer_group_topic.rb



# frozen_string_literal: true

module Karafka
  module Schemas
    # Consumer group topic validation rules
    ConsumerGroupTopic = Dry::Validation.Schema do
      required(:id).filled(:str?, format?: Karafka::Schemas::TOPIC_REGEXP)
      required(:name).filled(:str?, format?: Karafka::Schemas::TOPIC_REGEXP)
      required(:backend).filled(included_in?: %i[inline sidekiq])
      required(:consumer).filled
      required(:parser).filled
      required(:max_bytes_per_partition).filled(:int?, gteq?: 0)
      required(:start_from_beginning).filled(:bool?)
      required(:batch_consuming).filled(:bool?)
      required(:persistent).filled(:bool?)
    end
  end
end