AivenKafkaArgs

AivenKafkaArgs = AivenKafkaJsonArgs | AivenKafkaDefinitionArgs

Input arguments for AivenKafka; typed-definition and JSON-file modes are mutually exclusive.

Remarks

Map keys determine child Pulumi logical identity. Renaming a key changes that child's logical name; changing topicName or username while retaining its key does not. Typed and JSON modes cannot be mixed.

Example

CODE
const topics = defineAivenKafkaTopics({
  orders: { create: { topicName: 'company.orders.v1', partitions: 6, replication: 3 } },
});
const users = defineAivenKafkaUsers({
  producer: { create: { username: 'svc-orders-producer' } },
});
const definition = defineAivenKafkaDefinition({
  topics,
  users,
  acls: {
    write: { create: { permission: 'write', topic: topics.orders, username: users.producer } },
    publicRead: { create: { permission: 'read', topic: { literal: 'public-*' }, username: users.producer } },
  },
});
const kafka = new AivenKafka({
  identity: 'orders',
  service: { project: 'platform', serviceName: 'kafka-main' },
  definition,
});
CODE
const kafka = new AivenKafka({
  identity: 'platformEvents',
  service: { project: 'platform', serviceName: 'kafka-main' },
  topicsFilePath: 'config/kafka-topics.json',
  usersFilePath: 'config/kafka-users.json',
  aclsFilePath: 'config/kafka-acls.json',
});
// config/kafka-topics.json:
// { "events": { "create": { "topicName": "events", "partitions": 3, "replication": 3 } } }