public final class PubsubResourceManager
extends java.lang.Object
implements org.apache.beam.it.common.ResourceManager
The class provides an interaction with the real Pub/Sub client, with operations related to management of topics and subscriptions.
| Modifier and Type | Class and Description | 
|---|---|
| static class  | PubsubResourceManager.BuilderBuilder for  PubsubResourceManager. | 
| Modifier and Type | Method and Description | 
|---|---|
| static PubsubResourceManager.Builder | builder(java.lang.String testName,
       java.lang.String projectId,
       com.google.api.gax.core.CredentialsProvider credentialsProvider) | 
| void | cleanupAll()Delete any topics or subscriptions created by this manager. | 
| java.lang.String | createSchema(com.google.pubsub.v1.Schema.Type schemaType,
            java.lang.String schemaDefinition,
            com.google.pubsub.v1.Encoding dataEncoding,
            com.google.pubsub.v1.TopicName schemaTopic)Registers a new schema of the given type and definition, then assigns it to the specified
 topic. | 
| com.google.pubsub.v1.SubscriptionName | createSubscription(com.google.pubsub.v1.TopicName topicName,
                  java.lang.String subscriptionName)Creates a subscription at the specific topic, with a given name. | 
| com.google.pubsub.v1.TopicName | createTopic(java.lang.String topicName)Creates a topic with the given name on Pub/Sub. | 
| com.google.pubsub.v1.TopicName | createTopicWithoutPrefix(java.lang.String topicName)Creates a topic with the given name on Pub/Sub. | 
| java.lang.String | getTestId()Return the test ID this Resource Manager uses to manage Pub/Sub instances. | 
| java.lang.String | publish(com.google.pubsub.v1.TopicName topic,
       java.util.Map<java.lang.String,java.lang.String> attributes,
       com.google.protobuf.ByteString data)Publishes a message with the given data to the publisher context's topic. | 
| com.google.pubsub.v1.PullResponse | pull(com.google.pubsub.v1.SubscriptionName subscriptionName,
    int maxMessages)Pulls messages from the given subscription. | 
public static PubsubResourceManager.Builder builder(java.lang.String testName, java.lang.String projectId, com.google.api.gax.core.CredentialsProvider credentialsProvider)
public java.lang.String getTestId()
public com.google.pubsub.v1.TopicName createTopic(java.lang.String topicName)
topicName - Topic name to create. The underlying implementation may not use the topic name
     directly, and can add a prefix or a suffix to identify specific executions.public com.google.pubsub.v1.TopicName createTopicWithoutPrefix(java.lang.String topicName)
topicName - Topic name to create. The underlying implementation will use the topic name
     directly.public com.google.pubsub.v1.SubscriptionName createSubscription(com.google.pubsub.v1.TopicName topicName,
                                                                java.lang.String subscriptionName)
topicName - Topic Name reference to add the subscription.subscriptionName - Name of the subscription to use. Note that the underlying
     implementation may not use the subscription name literally, and can use a prefix or a
     suffix to identify specific executions.public java.lang.String publish(com.google.pubsub.v1.TopicName topic,
                                java.util.Map<java.lang.String,java.lang.String> attributes,
                                com.google.protobuf.ByteString data)
                         throws org.apache.beam.it.gcp.pubsub.PubsubResourceManagerException
topic - Reference to the topic to send the message.attributes - Attributes to send with the message.data - Byte data to send.org.apache.beam.it.gcp.pubsub.PubsubResourceManagerExceptionpublic com.google.pubsub.v1.PullResponse pull(com.google.pubsub.v1.SubscriptionName subscriptionName,
                                              int maxMessages)
subscriptionName - Name of the subscription to use.public java.lang.String createSchema(com.google.pubsub.v1.Schema.Type schemaType,
                                     java.lang.String schemaDefinition,
                                     com.google.pubsub.v1.Encoding dataEncoding,
                                     com.google.pubsub.v1.TopicName schemaTopic)
schemaType - the type of schema to create (e.g. AVRO, PROTOBUF)schemaDefinition - the definition of the schema to create in AVRO or Protobuf syntax.dataEncoding - the encoding of the data in pubsub (e.g. BINARY_ENCODING, JSON)schemaTopic - the name of the topic to which assign the schema.public void cleanupAll()
cleanupAll in interface org.apache.beam.it.common.ResourceManager