All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.infobip.kafkistry.model.acl.kt Maven / Gradle / Ivy

package com.infobip.kafkistry.model

//////////////////////////////////
// ACL - Access Control Lists
//////////////////////////////////

typealias PrincipalId = String
typealias TransactionalId = String

data class PrincipalAclRules(
    val principal: PrincipalId,
    val description: String,
    val owner: String,
    val rules: List,
)

data class AclRule(
    val presence: Presence,
    val host: String,
    val resource: AclResource,
    val operation: AclOperation,
)

data class AclResource(
    val type: Type,
    val name: String,
    val namePattern: NamePattern,
) {
    enum class Type {
        TOPIC, GROUP, CLUSTER, TRANSACTIONAL_ID, DELEGATION_TOKEN
    }

    enum class NamePattern {
        LITERAL, PREFIXED
    }
}

data class AclOperation(
    val type: Type,
    val policy: Policy,
) {

    enum class Policy {
        ALLOW, DENY
    }

    enum class Type {
        ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, IDEMPOTENT_WRITE
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy