# Topic operator ## Environments - Sta: https://orgs.sta.masstack.com/v1 - Prod: https://orgs.masstack.com/v1 ## List topics ### Request GET `/topics/clusters/:cluster/productdomains/:productdomain/subjects/:subject/versions/:version/` ### Example responses: #### Available topics for selected version (multitenant topic found) Status code: `200` Posible values for `$.topics[*].status`: * `in_sync`: indicates that the topic has already been created and it is available * `topic_in_standby`: The topic has been correctly defined in the configuration, but it hasn't been created yet. ``` { "topics": [ { "cluster": "bss", "product_domain": "appointments", "version": "v1", "subject": "updatestatus", "topic_full_name": "bss.appointments.updatestatus.v1.ahimas", "num_partitions": 1, "replication_factor": 3, "tenant": { "tenant_id": 17, "position_of_bit": 15, "org": "ahimas", "name": "ahimas", "iam": "authz.ahimas", "tier": 4 }, "status": "in_sync" }, { "cluster": "bss", "product_domain": "billing", "version": "v1", "subject": "bonusconsumption", "topic_full_name": "bss.billing.bonusconsumption.v1.ahimas", "num_partitions": 1, "replication_factor": 3, "tenant": { "tenant_id": 17, "position_of_bit": 15, "org": "ahimas", "name": "ahimas", "iam": "authz.ahimas", "tier": 4 }, "status": "in_sync" } ] } ``` #### Multitenant topic not found If multitenant topic is not found it means that it hasn't been defined in the topic-operator configuration in the monorepo. Status code: `404` ``` { "error": "Topic not found" } ``` ## Create topic POST `/topics/clusters/:cluster/productdomains/:productdomain/subjects/:subject/versions/:version/tenants/:tenantid` ### Example responses: #### Topic created successfully Status: `200` or `201` (It will be `201` but the current deployed version responds with `200`) #### Error creating topic Status: `500` (it will be changed to `400` BadRequest) > "couldn't get the Avro schema associated to topic with subject: roamingnotification2 and TenantID: vodafone doesn't exists in configuration"