docs: def get_published_topics(self):
          """Get a list of published topics for this instance.
  
          Streams applications publish streams to a a topic that can be subscribed to by other
          applications. This allows a microservice approach where publishers
          and subscribers are independent of each other.
  
          A published stream has a topic and a schema. It is recommended that a
          topic is only associated with a single schema.
  
          Streams may be published and subscribed by applications regardless of the
          implementation language. For example a Python application can publish
          a stream of JSON tuples that are subscribed to by SPL and Java applications.
  
          Returns:
               list(PublishedTopic): List of currently published topics.
          """
          published_topics = []
          # A topic can be published multiple times
          # (typically with the same schema) but the
          # returned list only wants to contain a topic,schema
          # pair once. I.e. the list of topics being published is
          # being returned, not the list of streams.
          seen_topics = {}
          for es in self.get_exported_streams():
              pt = es._as_published_topic()
              if pt is not None:
                  if pt.topic in seen_topics:
                      if pt.schema is None:
                          continue
                      if pt.schema in seen_topics[pt.topic]:
                          continue
                      seen_topics[pt.topic].append(pt.schema)
                  else:
                      seen_topics[pt.topic] = [pt.schema]
                  published_topics.append(pt)
  
          return published_topics