diff --git a/google-cloud-pubsub/samples/acceptance/quickstart_test.rb b/google-cloud-pubsub/samples/acceptance/quickstart_test.rb index f36075a15ca5..2721fb1b7553 100644 --- a/google-cloud-pubsub/samples/acceptance/quickstart_test.rb +++ b/google-cloud-pubsub/samples/acceptance/quickstart_test.rb @@ -16,17 +16,18 @@ require_relative "../quickstart.rb" describe "quickstart" do - let(:pubsub) { Google::Cloud::Pubsub.new } + let(:pubsub) { Google::Cloud::PubSub.new } let(:topic_id) { random_topic_id } + let(:topic_admin) { pubsub.topic_admin } it "supports quickstart_create_topic" do assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do quickstart topic_id: topic_id end - topic = pubsub.topic topic_id + topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) assert topic # cleanup - topic.delete + topic_admin.delete_topic topic: topic.name end end diff --git a/google-cloud-pubsub/samples/acceptance/schemas_test.rb b/google-cloud-pubsub/samples/acceptance/schemas_test.rb index c44eb1387bbb..8548639762eb 100644 --- a/google-cloud-pubsub/samples/acceptance/schemas_test.rb +++ b/google-cloud-pubsub/samples/acceptance/schemas_test.rb @@ -28,16 +28,19 @@ describe "schemas" do - let(:pubsub) { Google::Cloud::Pubsub.new } + let(:pubsub) { Google::Cloud::PubSub.new } let(:schema_id) { random_schema_id } let(:topic_id) { random_topic_id } let(:subscription_id) { random_subscription_id } let(:avsc_file) { File.expand_path "data/us-states.avsc", __dir__ } + let(:topic_admin) { pubsub.topic_admin } + let(:subscription_admin) { pubsub.subscription_admin } + let(:schemas) { pubsub.schemas } after do - @subscription.delete if @subscription - @topic.delete if @topic - @schema.delete if @schema + subscription_admin.delete_subscription subscription: @subscription.name if @subscription + topic_admin.delete_topic topic: @topic.name if @topic + schemas.delete_schema name: @schema.name if @schema end it "supports pubsub_create_schema, pubsub_get_schema, pubsub_list_schemas, pubsub_delete_schema" do @@ -45,7 +48,7 @@ assert_output "Schema projects/#{pubsub.project}/schemas/#{schema_id} created.\n" do create_avro_schema schema_id: schema_id, avsc_file: avsc_file end - @schema = pubsub.schema schema_id + @schema = schemas.get_schema name: pubsub.schema_path(schema_id) assert @schema assert_equal "projects/#{pubsub.project}/schemas/#{schema_id}", @schema.name @@ -75,13 +78,19 @@ let(:record) { { "name" => "Alaska", "post_abbr" => "AK" } } it "supports pubsub_create_topic_with_schema, pubsub_publish_avro_records with binary encoding" do - @schema = pubsub.create_schema schema_id, :avro, avsc_definition + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :AVRO, + definition: avsc_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id + # pubsub_create_topic_with_schema assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do - create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :binary + create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :BINARY end - @topic = pubsub.topic topic_id + @topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) assert @topic assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name @@ -92,13 +101,18 @@ end it "supports pubsub_create_topic_with_schema, pubsub_publish_avro_records with JSON encoding" do - @schema = pubsub.create_schema schema_id, :avro, avsc_definition + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :AVRO, + definition: avsc_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id # pubsub_create_topic_with_schema assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do - create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :json + create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :JSON end - @topic = pubsub.topic topic_id + @topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) assert @topic assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name @@ -109,15 +123,28 @@ end it "supports pubsub_subscribe_avro_records with binary encoding" do - @schema = pubsub.create_schema schema_id, :avro, avsc_definition - @topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :binary + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :AVRO, + definition: avsc_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id + + schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id), + encoding: :BINARY + + + @topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id), + schema_settings: schema_settings - @subscription = @topic.subscribe random_subscription_id + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name writer = Avro::IO::DatumWriter.new avro_schema buffer = StringIO.new writer.write record, Avro::IO::BinaryEncoder.new(buffer) - @topic.publish buffer + publisher = pubsub.publisher @topic.name + publisher.publish buffer sleep 5 # pubsub_subscribe_avro_records @@ -129,12 +156,24 @@ end it "supports pubsub_subscribe_avro_records with JSON encoding" do - @schema = pubsub.create_schema schema_id, :avro, avsc_definition - @topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :json + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :AVRO, + definition: avsc_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id + schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id), + encoding: :JSON - @subscription = @topic.subscribe random_subscription_id - @topic.publish record.to_json + @topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id), + schema_settings: schema_settings + + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name + + publisher = pubsub.publisher @topic.name + publisher.publish record.to_json sleep 5 # pubsub_subscribe_avro_records @@ -153,13 +192,19 @@ let(:revision_file) { File.expand_path "data/us-states-revision.proto", __dir__ } it "supports pubsub_create_topic_with_schema, pubsub_publish_proto_messages with binary encoding" do - @schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :PROTOCOL_BUFFER, + definition: proto_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id # pubsub_create_topic_with_schema assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do - create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :binary + create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :BINARY end - @topic = pubsub.topic topic_id + + @topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) assert @topic assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name @@ -170,13 +215,19 @@ end it "supports pubsub_create_topic_with_schema, pubsub_publish_proto_messages with JSON encoding" do - @schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :PROTOCOL_BUFFER, + definition: proto_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id # pubsub_create_topic_with_schema assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do - create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :json + create_topic_with_schema topic_id: topic_id, schema_id: schema_id, message_encoding: :JSON end - @topic = pubsub.topic topic_id + + @topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) assert @topic assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", @topic.name @@ -187,13 +238,25 @@ end it "supports pubsub_subscribe_proto_messages with binary encoding" do - @schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition - @topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :binary + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :PROTOCOL_BUFFER, + definition: proto_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id + + schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id), + encoding: :BINARY + + @topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id), + schema_settings: schema_settings - @subscription = @topic.subscribe random_subscription_id + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name state = Utilities::StateProto.new name: "Alaska", post_abbr: "AK" - @topic.publish Utilities::StateProto.encode(state) + publisher = pubsub.publisher @topic.name + publisher.publish Utilities::StateProto.encode(state) sleep 5 # pubsub_subscribe_proto_messages @@ -205,13 +268,25 @@ end it "supports pubsub_subscribe_proto_messages with JSON encoding" do - @schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition - @topic = pubsub.create_topic random_topic_id, schema_name: schema_id, message_encoding: :json + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :PROTOCOL_BUFFER, + definition: proto_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id - @subscription = @topic.subscribe random_subscription_id + schema_settings = Google::Cloud::PubSub::V1::SchemaSettings.new schema: pubsub.schema_path(schema_id), + encoding: :JSON + + @topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id), + schema_settings: schema_settings + + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name state = Utilities::StateProto.new name: "Alaska", post_abbr: "AK" - @topic.publish Utilities::StateProto.encode_json(state) + publisher = pubsub.publisher @topic.name + publisher.publish Utilities::StateProto.encode_json(state) sleep 5 # pubsub_subscribe_proto_messages @@ -223,7 +298,13 @@ end it "supports pubsub_commit_proto_schema & pubsub_commit_list_schema_revisions" do - @schema = pubsub.create_schema schema_id, :protocol_buffer, proto_definition + schema = Google::Cloud::PubSub::V1::Schema.new name: schema_id, + type: :PROTOCOL_BUFFER, + definition: proto_definition + @schema = schemas.create_schema parent: pubsub.project_path, + schema: schema, + schema_id: schema_id + rev_id = @schema.revision_id # pubsub_commit_proto_schema diff --git a/google-cloud-pubsub/samples/acceptance/subscriptions_test.rb b/google-cloud-pubsub/samples/acceptance/subscriptions_test.rb index 84523cace8e0..877132d4db55 100644 --- a/google-cloud-pubsub/samples/acceptance/subscriptions_test.rb +++ b/google-cloud-pubsub/samples/acceptance/subscriptions_test.rb @@ -34,29 +34,32 @@ require "google/cloud/bigquery" describe "subscriptions" do - let(:pubsub) { Google::Cloud::Pubsub.new } + let(:pubsub) { Google::Cloud::PubSub.new } let(:endpoint) { "https://#{pubsub.project}.appspot.com/push" } let(:role) { "roles/pubsub.subscriber" } let(:service_account_email) { "serviceAccount:kokoro@#{pubsub.project}.iam.gserviceaccount.com" } + let(:topic_admin) { pubsub.topic_admin } + let(:subscription_admin) { pubsub.subscription_admin } before :all do - @topic = pubsub.create_topic random_topic_id + @topic = topic_admin.create_topic name: pubsub.topic_path(random_topic_id) @created_subscriptions = [] end after :all do - @topic.delete + topic_admin.delete_topic topic: @topic.name if @topic @created_subscriptions.each do |sub| - pubsub.subscription(sub).delete + subscription_admin.delete_subscription subscription: pubsub.subscription_path(sub) end end before do - @subscription = @topic.subscribe random_subscription_id + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name end after do - @subscription.delete if @subscription + subscription_admin.delete_subscription subscription: @subscription.name if @subscription @subscription = nil cleanup_bq @table, @dataset if @table end @@ -67,11 +70,9 @@ assert_output "Push endpoint updated.\n" do update_push_configuration subscription_id: @subscription.name, new_endpoint: endpoint end - @subscription = @topic.subscription @subscription.name + @subscription = subscription_admin.get_subscription subscription: @subscription.name assert @subscription - assert_equal endpoint, @subscription.endpoint - assert @subscription.push_config - assert_equal endpoint, @subscription.push_config.endpoint + assert_equal endpoint, @subscription.push_config.push_endpoint # pubsub_list_subscriptions out, _err = capture_io do @@ -82,11 +83,13 @@ # pubsub_set_subscription_policy set_subscription_policy subscription_id: @subscription.name, role: role, service_account_email: service_account_email - @subscription.reload! - assert_equal [service_account_email], @subscription.policy.roles[role] + @subscription = subscription_admin.get_subscription subscription: @subscription.name + policy = pubsub.iam.get_iam_policy resource: @subscription.name + + assert_equal [service_account_email], policy.bindings.first.members # pubsub_get_subscription_policy - assert_output "Subscription policy:\n#{@subscription.policy.roles}\n" do + assert_output "Subscription policy:\n#{policy.bindings.first.role}\n" do get_subscription_policy subscription_id: @subscription.name end @@ -104,12 +107,15 @@ assert_output "Subscription #{@subscription.name} deleted.\n" do delete_subscription subscription_id: @subscription.name end - @subscription = @topic.subscription @subscription.name - refute @subscription + assert_raises Google::Cloud::NotFoundError do + subscription_admin.get_subscription subscription: @subscription.name + end + @subscription = nil end it "supports pubsub_subscriber_sync_pull" do - @topic.publish "This is a test message." + publisher = pubsub.publisher @topic.name + publisher.publish "This is a test message." sleep 5 # pubsub_subscriber_sync_pull @@ -124,18 +130,19 @@ project_id = pubsub.project topic_id = @topic.name subscription_id = random_subscription_id + + subscription_admin.create_subscription name: pubsub.subscription_path(subscription_id), + topic: @topic.name @created_subscriptions << subscription_id - @topic.subscribe subscription_id, enable_exactly_once_delivery: true + publisher = pubsub.publisher @topic.name - @topic.publish "This is a test message." + publisher.publish "This is a test message." sleep 5 expect_with_retry "pubsub_subscriber_async_pull_with_ack_response" do out, _err = capture_io do - PubsubSubscriberExactlyOnceDelivery.new.subscriber_exactly_once_delivery project_id: project_id, - topic_id: topic_id, - subscription_id: subscription_id + subscriber_exactly_once_delivery project_id: project_id, subscription_id: subscription_id end assert_includes out, "Received message: This is a test message." @@ -144,7 +151,8 @@ end it "supports pubsub_subscriber_async_pull, pubsub_quickstart_subscriber" do - @topic.publish "This is a test message." + publisher = pubsub.publisher @topic.name + publisher.publish "This is a test message." sleep 5 # pubsub_subscriber_async_pull @@ -157,7 +165,8 @@ end it "supports pubsub_subscriber_async_pull_custom_attributes" do - @topic.publish "This is a test message.", origin: "ruby-sample" + publisher = pubsub.publisher @topic.name + publisher.publish "This is a test message.", origin: "ruby-sample" sleep 5 # pubsub_subscriber_async_pull_custom_attributes @@ -172,7 +181,8 @@ end it "supports pubsub_subscriber_flow_settings" do - @topic.publish "This is a test message." + publisher = pubsub.publisher @topic.name + publisher.publish "This is a test message." sleep 5 # pubsub_subscriber_flow_settings @@ -184,7 +194,8 @@ end it "supports pubsub_subscriber_concurrency_control" do - @topic.publish "This is a test message." + publisher = pubsub.publisher @topic.name + publisher.publish "This is a test message." sleep 5 # pubsub_subscriber_concurrency_control @@ -196,7 +207,8 @@ end it "supports pubsub_subscriber_sync_pull_with_lease" do - @topic.publish "This is a test message." + publisher = pubsub.publisher @topic.name + publisher.publish "This is a test message." sleep 5 # # pubsub_subscriber_sync_pull_with_lease @@ -219,10 +231,10 @@ filter = "attributes.author=\"unknown\"" assert_output "Created subscription with filtering enabled: #{subscription_id}\n" do - PubsubCreateSubscriptionWithFilter.new.create_subscription_with_filter project_id: project_id, - topic_id: topic_id, - subscription_id: subscription_id, - filter: filter + create_subscription_with_filter project_id: project_id, + topic_id: @topic.name, + subscription_id: subscription_id, + filter: filter end end @@ -233,11 +245,9 @@ @created_subscriptions << subscription_id assert_output "Created subscription with exactly once delivery enabled: #{subscription_id}\n" do - PubsubCreateSubscriptionWithExactlyOnceDelivery.new.create_subscription_with_exactly_once_delivery( - project_id: project_id, - topic_id: topic_id, - subscription_id: subscription_id - ) + create_subscription_with_exactly_once_delivery project_id: project_id, + topic_id: topic_id, + subscription_id: subscription_id end end diff --git a/google-cloud-pubsub/samples/acceptance/topics_test.rb b/google-cloud-pubsub/samples/acceptance/topics_test.rb index 652ff3121418..a2e584e2a5a5 100644 --- a/google-cloud-pubsub/samples/acceptance/topics_test.rb +++ b/google-cloud-pubsub/samples/acceptance/topics_test.rb @@ -30,22 +30,25 @@ require_relative "../pubsub_publisher_batch_settings.rb" require_relative "../pubsub_publisher_concurrency_control.rb" require_relative "../pubsub_publisher_flow_control.rb" +require_relative "../pubsub_publisher_with_compression.rb" require_relative "../pubsub_quickstart_publisher.rb" require_relative "../pubsub_resume_publish_with_ordering_keys.rb" require_relative "../pubsub_set_topic_policy.rb" require_relative "../pubsub_test_topic_permissions.rb" describe "topics" do - let(:pubsub) { Google::Cloud::Pubsub.new } + let(:pubsub) { Google::Cloud::PubSub.new } let(:role) { "roles/pubsub.publisher" } let(:service_account_email) { "serviceAccount:kokoro@#{pubsub.project}.iam.gserviceaccount.com" } let(:topic_id) { random_topic_id } let(:subscription_id) { random_subscription_id } let(:dead_letter_topic_id) { random_topic_id } + let(:topic_admin) { pubsub.topic_admin } + let(:subscription_admin) { pubsub.subscription_admin } after do - @subscription.delete if @subscription - @topic.delete if @topic + subscription_admin.delete_subscription subscription: @subscription.name if @subscription + topic_admin.delete_topic topic: @topic.name if @topic end it "supports pubsub_create_topic, pubsub_list_topics, pubsub_set_topic_policy, pubsub_get_topic_policy, pubsub_test_topic_permissions, pubsub_delete_topic" do @@ -53,7 +56,7 @@ assert_output "Topic projects/#{pubsub.project}/topics/#{topic_id} created.\n" do create_topic topic_id: topic_id end - topic = pubsub.topic topic_id + topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) assert topic assert_equal "projects/#{pubsub.project}/topics/#{topic_id}", topic.name @@ -66,11 +69,12 @@ # pubsub_set_topic_policy set_topic_policy topic_id: topic.name, role: role, service_account_email: service_account_email - topic.reload! - assert_equal [service_account_email], topic.policy.roles[role] + policy = pubsub.iam.get_iam_policy resource: pubsub.topic_path(topic_id) + + assert_equal [service_account_email], policy.bindings.first.members # pubsub_get_topic_policy - assert_output "Topic policy:\n#{topic.policy.roles}\n" do + assert_output "Topic policy:\n#{policy.bindings.first.role}\n" do get_topic_policy topic_id: topic_id end @@ -83,24 +87,26 @@ assert_output "Topic #{topic_id} deleted.\n" do delete_topic topic_id: topic_id end - topic = pubsub.topic topic_id - refute topic + + assert_raises Google::Cloud::NotFoundError do + topic_admin.get_topic topic: pubsub.topic_path(topic_id) + end end it "supports pubsub_create_pull_subscription, pubsub_list_topic_subscriptions, pubsub_quickstart_publisher, pubsub_subscriber_sync_pull" do #setup - @topic = pubsub.create_topic topic_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) # pubsub_create_pull_subscription assert_output "Pull subscription #{subscription_id} created.\n" do create_pull_subscription topic_id: topic_id, subscription_id: subscription_id end - @subscription = @topic.subscription subscription_id + @subscription = subscription_admin.get_subscription subscription: pubsub.subscription_path(subscription_id) assert @subscription assert_equal "projects/#{pubsub.project}/subscriptions/#{subscription_id}", @subscription.name # pubsub_list_topic_subscriptions - assert_output "Subscriptions in topic #{@topic.name}:\n#{@subscription.name}\n" do + assert_output "Subscriptions in topic #{topic_id}:\n#{@subscription.name}\n" do list_topic_subscriptions topic_id: topic_id end @@ -119,16 +125,16 @@ it "supports pubsub_enable_subscription_ordering, pubsub_publish_with_ordering_keys, pubsub_resume_publish_with_ordering_keys" do #setup - @topic = pubsub.create_topic topic_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) # pubsub_enable_subscription_ordering assert_output "Pull subscription #{subscription_id} created with message ordering.\n" do enable_subscription_ordering topic_id: topic_id, subscription_id: subscription_id end - @subscription = @topic.subscription subscription_id + @subscription = subscription_admin.get_subscription subscription: pubsub.subscription_path(subscription_id) assert @subscription assert_equal "projects/#{pubsub.project}/subscriptions/#{subscription_id}", @subscription.name - assert @subscription.message_ordering? + assert @subscription.enable_message_ordering # pubsub_publish_with_ordering_keys assert_output "Messages published with ordering key.\n" do @@ -137,7 +143,8 @@ messages = [] expect_with_retry "pubsub_publish_with_ordering_keys" do - @subscription.pull(immediate: false, max: 20).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 20).each do |message| messages << message message.acknowledge! end @@ -160,7 +167,8 @@ messages = [] expect_with_retry "pubsub_resume_publish_with_ordering_keys" do - @subscription.pull(immediate: false, max: 20).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 20).each do |message| messages << message message.acknowledge! end @@ -177,25 +185,26 @@ it "supports pubsub_create_push_subscription" do #setup - @topic = pubsub.create_topic topic_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + endpoint = "https://#{pubsub.project}.appspot.com/push" # pubsub_create_pull_subscription assert_output "Push subscription #{subscription_id} created.\n" do create_push_subscription topic_id: topic_id, subscription_id: subscription_id, endpoint: endpoint end - @subscription = @topic.subscription subscription_id + + @subscription = subscription_admin.get_subscription subscription: pubsub.subscription_path(subscription_id) assert @subscription assert_equal "projects/#{pubsub.project}/subscriptions/#{subscription_id}", @subscription.name - assert_equal endpoint, @subscription.endpoint - assert @subscription.push_config - assert_equal endpoint, @subscription.push_config.endpoint + assert_equal endpoint, @subscription.push_config.push_endpoint end it "supports pubsub_dead_letter_create_subscription, pubsub_dead_letter_update_subscription, pubsub_dead_letter_delivery_attempt" do #setup - @topic = pubsub.create_topic topic_id - @dead_letter_topic = pubsub.create_topic dead_letter_topic_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + + @dead_letter_topic = topic_admin.create_topic name: pubsub.topic_path(dead_letter_topic_id) begin # pubsub_dead_letter_create_subscription @@ -206,23 +215,25 @@ end assert_includes out, "Created subscription #{subscription_id} with dead letter topic #{dead_letter_topic_id}." - @subscription = @topic.subscription subscription_id + @subscription = subscription_admin.get_subscription subscription: pubsub.subscription_path(subscription_id) assert @subscription assert_equal "projects/#{pubsub.project}/subscriptions/#{subscription_id}", @subscription.name - assert @subscription.dead_letter_topic - assert_equal "projects/#{pubsub.project}/topics/#{dead_letter_topic_id}", @subscription.dead_letter_topic.name - assert_equal 10, @subscription.dead_letter_max_delivery_attempts + assert @subscription.dead_letter_policy + assert_equal "projects/#{pubsub.project}/topics/#{dead_letter_topic_id}", @subscription.dead_letter_policy.dead_letter_topic + assert_equal 10, @subscription.dead_letter_policy.max_delivery_attempts # pubsub_dead_letter_update_subscription assert_output "Max delivery attempts is now 20.\n" do dead_letter_update_subscription subscription_id: subscription_id end - @subscription.reload! - assert @subscription.dead_letter_topic - assert_equal "projects/#{pubsub.project}/topics/#{dead_letter_topic_id}", @subscription.dead_letter_topic.name - assert_equal 20, @subscription.dead_letter_max_delivery_attempts - @topic.publish "This is a dead letter topic test message." + @subscription = subscription_admin.get_subscription subscription: pubsub.subscription_path(subscription_id) + assert @subscription.dead_letter_policy + assert_equal "projects/#{pubsub.project}/topics/#{dead_letter_topic_id}", @subscription.dead_letter_policy.dead_letter_topic + assert_equal 20, @subscription.dead_letter_policy.max_delivery_attempts + + publisher = pubsub.publisher @topic.name + publisher.publish "This is a dead letter topic test message." # pubsub_dead_letter_delivery_attempt expect_with_retry "pubsub_dead_letter_delivery_attempt" do out, _err = capture_io do @@ -236,19 +247,20 @@ assert_output "Removed dead letter topic from #{subscription_id} subscription.\n" do dead_letter_remove subscription_id: subscription_id end - @subscription.reload! - refute @subscription.dead_letter_topic - refute @subscription.dead_letter_max_delivery_attempts + @subscription = subscription_admin.get_subscription subscription: pubsub.subscription_path(subscription_id) + refute @subscription.dead_letter_policy ensure - @dead_letter_topic.delete + topic_admin.delete_topic topic: @dead_letter_topic.name end end it "supports pubsub_publish" do #setup - @topic = pubsub.create_topic topic_id - @subscription = @topic.subscribe random_subscription_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name # pubsub_publish assert_output "Message published asynchronously.\n" do @@ -257,7 +269,8 @@ messages = [] expect_with_retry "pubsub_publish" do - @subscription.pull(immediate: false, max: 1).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 1).each do |message| messages << message message.acknowledge! end @@ -268,18 +281,19 @@ it "supports pubsub_publisher_with_compression" do #setup - sample = SampleLoader.load "pubsub_publisher_with_compression.rb" - @topic = pubsub.create_topic topic_id - @subscription = @topic.subscribe random_subscription_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name # pubsub_publisher_with_compression assert_output /Published a compressed message of message ID:/ do - sample.run project_id: pubsub.project, topic_id: topic_id + pubsub_publisher_with_compression project_id: pubsub.project, topic_id: topic_id end messages = [] expect_with_retry "pubsub_publisher_with_compression" do - @subscription.pull(immediate: false, max: 1).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 1).each do |message| messages << message message.acknowledge! end @@ -290,8 +304,9 @@ it "supports pubsub_publish_custom_attributes" do #setup - @topic = pubsub.create_topic topic_id - @subscription = @topic.subscribe random_subscription_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name # pubsub_publish_custom_attributes assert_output "Message with custom attributes published asynchronously.\n" do @@ -300,7 +315,8 @@ messages = [] expect_with_retry "pubsub_publish_custom_attributes" do - @subscription.pull(immediate: false, max: 1).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 1).each do |message| messages << message message.acknowledge! end @@ -314,8 +330,9 @@ it "supports pubsub_publisher_batch_settings" do #setup - @topic = pubsub.create_topic topic_id - @subscription = @topic.subscribe random_subscription_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name # pubsub_publisher_batch_settings assert_output "Messages published asynchronously in batch.\n" do @@ -324,7 +341,8 @@ messages = [] expect_with_retry "pubsub_publisher_batch_settings" do - @subscription.pull(immediate: false, max: 20).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 20).each do |message| messages << message message.acknowledge! end @@ -339,8 +357,9 @@ it "supports pubsub_publisher_concurrency_control" do #setup - @topic = pubsub.create_topic topic_id - @subscription = @topic.subscribe random_subscription_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name # pubsub_publisher_concurrency_control assert_output "Message published asynchronously.\n" do @@ -349,7 +368,8 @@ messages = [] expect_with_retry "pubsub_publisher_concurrency_control" do - @subscription.pull(immediate: false, max: 1).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 1).each do |message| messages << message message.acknowledge! end @@ -360,8 +380,9 @@ it "supports pubsub_publisher_flow_control" do #setup - @topic = pubsub.create_topic topic_id - @subscription = @topic.subscribe random_subscription_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name # pubsub_publisher_flow_control assert_output "Published messages with flow control settings to #{topic_id}.\n" do @@ -371,8 +392,9 @@ it "supports publish_with_error_handler" do #setup - @topic = pubsub.create_topic topic_id - @subscription = @topic.subscribe random_subscription_id + @topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) + @subscription = subscription_admin.create_subscription name: pubsub.subscription_path(random_subscription_id), + topic: @topic.name # publish_with_error_handler assert_output "Message published asynchronously.\n" do @@ -381,7 +403,8 @@ messages = [] expect_with_retry "pubsub_publish" do - @subscription.pull(immediate: false, max: 1).each do |message| + subscriber = pubsub.subscriber @subscription.name + subscriber.pull(immediate: false, max: 1).each do |message| messages << message message.acknowledge! end diff --git a/google-cloud-pubsub/samples/pubsub_commit_proto_schema.rb b/google-cloud-pubsub/samples/pubsub_commit_proto_schema.rb index dd95195da400..6efcf07ecae7 100644 --- a/google-cloud-pubsub/samples/pubsub_commit_proto_schema.rb +++ b/google-cloud-pubsub/samples/pubsub_commit_proto_schema.rb @@ -19,12 +19,18 @@ def commit_proto_schema schema_id:, proto_file: # schema_id = "your-schema-id" # proto_file = "path/to/a/proto_file.proto" - pubsub = Google::Cloud::Pubsub.new - schema = pubsub.schema schema_id + pubsub = Google::Cloud::PubSub.new + + schemas = pubsub.schemas + + schema = schemas.get_schema name: pubsub.schema_path(schema_id) definition = File.read proto_file - result = schema.commit definition, :protocol_buffer + schema.definition = definition + + result = schemas.commit_schema name: schema.name, + schema: schema puts "Schema commited with revision #{result.revision_id}." result diff --git a/google-cloud-pubsub/samples/pubsub_create_avro_schema.rb b/google-cloud-pubsub/samples/pubsub_create_avro_schema.rb index 457f72768b70..bfa398c4ea50 100644 --- a/google-cloud-pubsub/samples/pubsub_create_avro_schema.rb +++ b/google-cloud-pubsub/samples/pubsub_create_avro_schema.rb @@ -19,10 +19,19 @@ def create_avro_schema schema_id:, avsc_file: # schema_id = "your-schema-id" # avsc_file = "path/to/an/avro/schema/file/(.avsc)/formatted/in/json" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new definition = File.read avsc_file - schema = pubsub.create_schema schema_id, :avro, definition + + schemas = pubsub.schemas + + schema = schemas.create_schema parent: pubsub.project_path, + schema: { + name: schema_id, + type: :AVRO, + definition: definition + }, + schema_id: schema_id puts "Schema #{schema.name} created." # [END pubsub_create_avro_schema] diff --git a/google-cloud-pubsub/samples/pubsub_create_bigquery_subscription.rb b/google-cloud-pubsub/samples/pubsub_create_bigquery_subscription.rb index 722d32a088ac..a4e042de5bb6 100644 --- a/google-cloud-pubsub/samples/pubsub_create_bigquery_subscription.rb +++ b/google-cloud-pubsub/samples/pubsub_create_bigquery_subscription.rb @@ -12,31 +12,31 @@ # See the License for the specific language governing permissions and # limitations under the License. -# [START pubsub_create_bigquery_subscription] require "google/cloud/pubsub" ## # Shows how to create a BigQuery subscription where messages published # to a topic populates a BigQuery table. # -# @param project_id [String] -# Your Google Cloud project (e.g. "my-project") -# @param topic_id [String] -# Your topic name (e.g. "my-secret") -# @param subscription_id [String] -# ID for new subscription to be created (e.g. "my-subscription") -# @param bigquery_table_id [String] -# ID of bigquery table (e.g "my-project:dataset-id.table-id") -# def pubsub_create_bigquery_subscription project_id:, topic_id:, subscription_id:, bigquery_table_id: - pubsub = Google::Cloud::Pubsub.new project_id: project_id - topic = pubsub.topic topic_id - subscription = topic.subscribe subscription_id, - bigquery_config: { - table: bigquery_table_id, - write_metadata: true - } + # [START pubsub_create_bigquery_subscription] + # project_id = "your-project-id" + # topic_id = "your-topic-id" + # subscription_id = "your-subscription-id" + # bigquery_table_id = "my-project:dataset-id.table-id" + pubsub = Google::Cloud::PubSub.new project_id: project_id + + subscription_admin = pubsub.subscription_admin + + subscription = subscription_admin.create_subscription \ + name: pubsub.subscription_path(subscription_id), + topic: pubsub.topic_path(topic_id), + bigquery_config: { + table: bigquery_table_id, + write_metadata: true + } + puts "BigQuery subscription created: #{subscription_id}." puts "Table for subscription is: #{bigquery_table_id}" + # [END pubsub_create_bigquery_subscription] end -# [END pubsub_create_bigquery_subscription] diff --git a/google-cloud-pubsub/samples/pubsub_create_proto_schema.rb b/google-cloud-pubsub/samples/pubsub_create_proto_schema.rb index c925e544b602..b79f136bf040 100644 --- a/google-cloud-pubsub/samples/pubsub_create_proto_schema.rb +++ b/google-cloud-pubsub/samples/pubsub_create_proto_schema.rb @@ -19,7 +19,7 @@ def create_proto_schema schema_id:, proto_file: # schema_id = "your-schema-id" # proto_file = "path/to/a/proto/file/(.proto)/formatted/in/protocol/buffers" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new definition = File.read proto_file schema = pubsub.create_schema schema_id, :protocol_buffer, definition diff --git a/google-cloud-pubsub/samples/pubsub_create_pull_subscription.rb b/google-cloud-pubsub/samples/pubsub_create_pull_subscription.rb index 2a10130f8356..0f832df1594c 100644 --- a/google-cloud-pubsub/samples/pubsub_create_pull_subscription.rb +++ b/google-cloud-pubsub/samples/pubsub_create_pull_subscription.rb @@ -19,10 +19,12 @@ def create_pull_subscription topic_id:, subscription_id: # topic_id = "your-topic-id" # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - subscription = topic.subscribe subscription_id + subscription_admin = pubsub.subscription_admin + + subscription = subscription_admin.create_subscription name: pubsub.subscription_path(subscription_id), + topic: pubsub.topic_path(topic_id) puts "Pull subscription #{subscription_id} created." # [END pubsub_create_pull_subscription] diff --git a/google-cloud-pubsub/samples/pubsub_create_push_subscription.rb b/google-cloud-pubsub/samples/pubsub_create_push_subscription.rb index 8ab5a8839c57..2b170c6dff1a 100644 --- a/google-cloud-pubsub/samples/pubsub_create_push_subscription.rb +++ b/google-cloud-pubsub/samples/pubsub_create_push_subscription.rb @@ -20,11 +20,15 @@ def create_push_subscription topic_id:, subscription_id:, endpoint: # subscription_id = "your-subscription-id" # endpoint = "https://your-test-project.appspot.com/push" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - subscription = topic.subscribe subscription_id, - endpoint: endpoint + subscription_admin = pubsub.subscription_admin + + push_config = Google::Cloud::PubSub::V1::PushConfig.new push_endpoint: endpoint + subscription = subscription_admin.create_subscription \ + name: pubsub.subscription_path(subscription_id), + topic: pubsub.topic_path(topic_id), + push_config: push_config puts "Push subscription #{subscription_id} created." # [END pubsub_create_push_subscription] diff --git a/google-cloud-pubsub/samples/pubsub_create_subscription_with_exactly_once_delivery.rb b/google-cloud-pubsub/samples/pubsub_create_subscription_with_exactly_once_delivery.rb index 6c742050970b..72b112a1f569 100644 --- a/google-cloud-pubsub/samples/pubsub_create_subscription_with_exactly_once_delivery.rb +++ b/google-cloud-pubsub/samples/pubsub_create_subscription_with_exactly_once_delivery.rb @@ -12,33 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. -# [START pubsub_create_subscription_with_exactly_once_delivery] require "google/cloud/pubsub" # Shows how to create a new subscription with exactly once delivery enabled -class PubsubCreateSubscriptionWithExactlyOnceDelivery - def create_subscription_with_exactly_once_delivery project_id:, topic_id:, subscription_id: - pubsub = Google::Cloud::Pubsub.new project_id: project_id - topic = pubsub.topic topic_id - subscription = topic.subscribe subscription_id, enable_exactly_once_delivery: true - puts "Created subscription with exactly once delivery enabled: #{subscription_id}" - end +def create_subscription_with_exactly_once_delivery project_id:, topic_id:, subscription_id: + # [START pubsub_create_subscription_with_exactly_once_delivery] + # project_id = "your-project-id" + # topic_id = "your-topic-id" + # subscription_id = "your-subscription-id" - def self.run - # TODO(developer): Replace these variables before running the sample. - project_id = "your-project-id" - topic_id = "your-topic-id" - subscription_id = "id-for-new-subcription" - pubsub_create_subscription_with_exactly_once_delivery = PubsubCreateSubscriptionWithExactlyOnceDelivery.new - pubsub_create_subscription_with_exactly_once_delivery.create_subscription_with_exactly_once_delivery( - project_id: project_id, - topic_id: topic_id, - subscription_id: subscription_id - ) - end -end + pubsub = Google::Cloud::PubSub.new project_id: project_id + + subscription_admin = pubsub.subscription_admin + + subscription = subscription_admin.create_subscription \ + name: pubsub.subscription_path(subscription_id), + topic: pubsub.topic_path(topic_id), + enable_exactly_once_delivery: true -if $PROGRAM_NAME == __FILE__ - PubsubCreateSubscriptionWithExactlyOnceDelivery.run + puts "Created subscription with exactly once delivery enabled: #{subscription_id}" + # [END pubsub_create_subscription_with_exactly_once_delivery] end -# [END pubsub_create_subscription_with_exactly_once_delivery] diff --git a/google-cloud-pubsub/samples/pubsub_create_subscription_with_filter.rb b/google-cloud-pubsub/samples/pubsub_create_subscription_with_filter.rb index 8a7c1133f9d3..ef82ee01521c 100644 --- a/google-cloud-pubsub/samples/pubsub_create_subscription_with_filter.rb +++ b/google-cloud-pubsub/samples/pubsub_create_subscription_with_filter.rb @@ -12,32 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. -# [START pubsub_create_subscription_with_filter] require "google/cloud/pubsub" # Shows how to create a new subscription with filter for a given topic -class PubsubCreateSubscriptionWithFilter - def create_subscription_with_filter project_id:, topic_id:, subscription_id:, filter: - pubsub = Google::Cloud::Pubsub.new project_id: project_id - topic = pubsub.topic topic_id - subscription = topic.subscribe subscription_id, filter: filter - puts "Created subscription with filtering enabled: #{subscription_id}" - end +def create_subscription_with_filter project_id:, topic_id:, subscription_id:, filter: + # [START pubsub_create_subscription_with_filter] + # project_id = "your-project-id" + # topic_id = "your-topic-id" + # subscription_id = "your-subscription-id" + # filter = "attributes.author=\"unknown\"" - def self.run - # TODO(developer): Replace these variables before running the sample. - project_id = "your-project-id" - topic_id = "your-topic-id" - subscription_id = "id-for-new-subcription" - filter = "attributes.author=\"unknown\"" - PubsubCreateSubscriptionWithFilter.new.create_subscription_with_filter project_id: project_id, - topic_id: topic_id, - subscription_id: subscription_id, - filter: filter - end -end + pubsub = Google::Cloud::PubSub.new project_id: project_id + + subscription_admin = pubsub.subscription_admin -if $PROGRAM_NAME == __FILE__ - PubsubCreateSubscriptionWithFilter.run + subscription = subscription_admin.create_subscription \ + name: pubsub.subscription_path(subscription_id), + topic: pubsub.topic_path(topic_id), + filter: filter + puts "Created subscription with filtering enabled: #{subscription_id}" + # [END pubsub_create_subscription_with_filter] end -# [END pubsub_create_subscription_with_filter] diff --git a/google-cloud-pubsub/samples/pubsub_create_topic.rb b/google-cloud-pubsub/samples/pubsub_create_topic.rb index c97029ca4bac..1fe99401d4b3 100644 --- a/google-cloud-pubsub/samples/pubsub_create_topic.rb +++ b/google-cloud-pubsub/samples/pubsub_create_topic.rb @@ -18,9 +18,11 @@ def create_topic topic_id: # [START pubsub_create_topic] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.create_topic topic_id + topic_admin = pubsub.topic_admin + + topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) puts "Topic #{topic.name} created." # [END pubsub_create_topic] diff --git a/google-cloud-pubsub/samples/pubsub_create_topic_with_schema.rb b/google-cloud-pubsub/samples/pubsub_create_topic_with_schema.rb index 6a4bd4daa978..c6a590d559c9 100644 --- a/google-cloud-pubsub/samples/pubsub_create_topic_with_schema.rb +++ b/google-cloud-pubsub/samples/pubsub_create_topic_with_schema.rb @@ -19,11 +19,17 @@ def create_topic_with_schema topic_id:, schema_id:, message_encoding: # topic_id = "your-topic-id" # schema_id = "your-schema-id" # Choose either BINARY or JSON as valid message encoding in this topic. - # message_encoding = :binary + # message_encoding = :BINARY - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.create_topic topic_id, schema_name: schema_id, message_encoding: message_encoding + topic_admin = pubsub.topic_admin + + topic = topic_admin.create_topic name: pubsub.topic_path(topic_id), + schema_settings: { + schema: pubsub.schema_path(schema_id), + encoding: message_encoding + } puts "Topic #{topic.name} created." # [END pubsub_create_topic_with_schema] diff --git a/google-cloud-pubsub/samples/pubsub_dead_letter_create_subscription.rb b/google-cloud-pubsub/samples/pubsub_dead_letter_create_subscription.rb index baf5054842f3..e29e78c4704a 100644 --- a/google-cloud-pubsub/samples/pubsub_dead_letter_create_subscription.rb +++ b/google-cloud-pubsub/samples/pubsub_dead_letter_create_subscription.rb @@ -20,13 +20,19 @@ def dead_letter_create_subscription topic_id:, subscription_id:, dead_letter_top # subscription_id = "your-subscription-id" # dead_letter_topic_id = "your-dead-letter-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - dead_letter_topic = pubsub.topic dead_letter_topic_id - subscription = topic.subscribe subscription_id, - dead_letter_topic: dead_letter_topic, - dead_letter_max_delivery_attempts: 10 + subscription_admin = pubsub.subscription_admin + + dl_topic_path = pubsub.topic_path dead_letter_topic_id + + subscription = subscription_admin.create_subscription \ + name: pubsub.subscription_path(subscription_id), + topic: pubsub.topic_path(topic_id), + dead_letter_policy: { + dead_letter_topic: pubsub.topic_path(dead_letter_topic_id), + max_delivery_attempts: 10 + } puts "Created subscription #{subscription_id} with dead letter topic #{dead_letter_topic_id}." puts "To process dead letter messages, remember to add a subscription to your dead letter topic." diff --git a/google-cloud-pubsub/samples/pubsub_dead_letter_delivery_attempt.rb b/google-cloud-pubsub/samples/pubsub_dead_letter_delivery_attempt.rb index bc5667751fbc..0cdd91e8eff7 100644 --- a/google-cloud-pubsub/samples/pubsub_dead_letter_delivery_attempt.rb +++ b/google-cloud-pubsub/samples/pubsub_dead_letter_delivery_attempt.rb @@ -18,10 +18,11 @@ def dead_letter_delivery_attempt subscription_id: # [START pubsub_dead_letter_delivery_attempt] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscription.pull(immediate: false).each do |message| + subscriber = pubsub.subscriber subscription_id + + subscriber.pull(immediate: false).each do |message| puts "Received message: #{message.data}" puts "Delivery Attempt: #{message.delivery_attempt}" message.acknowledge! diff --git a/google-cloud-pubsub/samples/pubsub_dead_letter_remove.rb b/google-cloud-pubsub/samples/pubsub_dead_letter_remove.rb index 25afd9364b7f..d9c466e289e6 100644 --- a/google-cloud-pubsub/samples/pubsub_dead_letter_remove.rb +++ b/google-cloud-pubsub/samples/pubsub_dead_letter_remove.rb @@ -18,10 +18,19 @@ def dead_letter_remove subscription_id: # [START pubsub_dead_letter_remove] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new + + subscription_admin = pubsub.subscription_admin + + subscription = subscription_admin.get_subscription \ + subscription: pubsub.subscription_path(subscription_id) + subscription.dead_letter_policy = nil + + subscription_admin.update_subscription subscription: subscription, + update_mask: { + paths: ["dead_letter_policy"] + } - subscription = pubsub.subscription subscription_id - subscription.remove_dead_letter_policy puts "Removed dead letter topic from #{subscription_id} subscription." # [END pubsub_dead_letter_remove] end diff --git a/google-cloud-pubsub/samples/pubsub_dead_letter_update_subscription.rb b/google-cloud-pubsub/samples/pubsub_dead_letter_update_subscription.rb index c52de03cdd59..d9e432cf2913 100644 --- a/google-cloud-pubsub/samples/pubsub_dead_letter_update_subscription.rb +++ b/google-cloud-pubsub/samples/pubsub_dead_letter_update_subscription.rb @@ -20,10 +20,19 @@ def dead_letter_update_subscription subscription_id: # role = "roles/pubsub.publisher" # service_account_email = "serviceAccount:account_name@project_name.iam.gserviceaccount.com" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscription.dead_letter_max_delivery_attempts = 20 - puts "Max delivery attempts is now #{subscription.dead_letter_max_delivery_attempts}." + subscription_admin = pubsub.subscription_admin + + subscription = subscription_admin.get_subscription subscription: pubsub.subscription_path(subscription_id) + + subscription.dead_letter_policy.max_delivery_attempts = 20 + + subscription_admin.update_subscription subscription: subscription, + update_mask: { + paths: ["dead_letter_policy"] + } + + puts "Max delivery attempts is now #{subscription.dead_letter_policy.max_delivery_attempts}." # [END pubsub_dead_letter_update_subscription] end diff --git a/google-cloud-pubsub/samples/pubsub_delete_schema.rb b/google-cloud-pubsub/samples/pubsub_delete_schema.rb index 1994540ddafe..9f013d3ba57e 100644 --- a/google-cloud-pubsub/samples/pubsub_delete_schema.rb +++ b/google-cloud-pubsub/samples/pubsub_delete_schema.rb @@ -18,10 +18,11 @@ def delete_schema schema_id: # [START pubsub_delete_schema] # schema_id = "your-schema-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - schema = pubsub.schema schema_id - schema.delete + schemas = pubsub.schemas + + result = schemas.delete_schema name: pubsub.schema_path(schema_id) puts "Schema #{schema_id} deleted." # [END pubsub_delete_schema] diff --git a/google-cloud-pubsub/samples/pubsub_delete_subscription.rb b/google-cloud-pubsub/samples/pubsub_delete_subscription.rb index d1ff415b815b..893d030c3701 100644 --- a/google-cloud-pubsub/samples/pubsub_delete_subscription.rb +++ b/google-cloud-pubsub/samples/pubsub_delete_subscription.rb @@ -18,10 +18,11 @@ def delete_subscription subscription_id: # [START pubsub_delete_subscription] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscription.delete + subscription_admin = pubsub.subscription_admin + + subscription_admin.delete_subscription subscription: pubsub.subscription_path(subscription_id) puts "Subscription #{subscription_id} deleted." # [END pubsub_delete_subscription] diff --git a/google-cloud-pubsub/samples/pubsub_delete_topic.rb b/google-cloud-pubsub/samples/pubsub_delete_topic.rb index 74c7dc0cc689..e95a819284a5 100644 --- a/google-cloud-pubsub/samples/pubsub_delete_topic.rb +++ b/google-cloud-pubsub/samples/pubsub_delete_topic.rb @@ -18,10 +18,11 @@ def delete_topic topic_id: # [START pubsub_delete_topic] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - topic.delete + topic_admin = pubsub.topic_admin + + topic_admin.delete_topic topic: pubsub.topic_path(topic_id) puts "Topic #{topic_id} deleted." # [END pubsub_delete_topic] diff --git a/google-cloud-pubsub/samples/pubsub_detach_subscription.rb b/google-cloud-pubsub/samples/pubsub_detach_subscription.rb index 20a81be7434b..4d7b7c1d227f 100644 --- a/google-cloud-pubsub/samples/pubsub_detach_subscription.rb +++ b/google-cloud-pubsub/samples/pubsub_detach_subscription.rb @@ -18,14 +18,17 @@ def detach_subscription subscription_id: # [START pubsub_detach_subscription] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscription.detach + topic_admin = pubsub.topic_admin + subscription_admin = pubsub.subscription_admin + subscription_path = pubsub.subscription_path subscription_id + + topic_admin.detach_subscription subscription: subscription_path sleep 120 - subscription.reload! - if subscription.detached? + subscription = subscription_admin.get_subscription subscription: subscription_path + if subscription.detached puts "Subscription is detached." else puts "Subscription is NOT detached." diff --git a/google-cloud-pubsub/samples/pubsub_enable_subscription_ordering.rb b/google-cloud-pubsub/samples/pubsub_enable_subscription_ordering.rb index 77fffa71ce07..86969613c9f9 100644 --- a/google-cloud-pubsub/samples/pubsub_enable_subscription_ordering.rb +++ b/google-cloud-pubsub/samples/pubsub_enable_subscription_ordering.rb @@ -19,11 +19,14 @@ def enable_subscription_ordering topic_id:, subscription_id: # topic_id = "your-topic-id" # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - subscription = topic.subscribe subscription_id, - message_ordering: true + subscription_admin = pubsub.subscription_admin + + subscription = subscription_admin.create_subscription \ + name: pubsub.subscription_path(subscription_id), + topic: pubsub.topic_path(topic_id), + enable_message_ordering: true puts "Pull subscription #{subscription_id} created with message ordering." # [END pubsub_enable_subscription_ordering] diff --git a/google-cloud-pubsub/samples/pubsub_get_schema.rb b/google-cloud-pubsub/samples/pubsub_get_schema.rb index aa1394eb7735..06702ca9f960 100644 --- a/google-cloud-pubsub/samples/pubsub_get_schema.rb +++ b/google-cloud-pubsub/samples/pubsub_get_schema.rb @@ -18,9 +18,11 @@ def get_schema schema_id: # [START pubsub_get_schema] # schema_id = "your-schema-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - schema = pubsub.schema schema_id + schemas = pubsub.schemas + + schema = schemas.get_schema name: pubsub.schema_path(schema_id) puts "Schema #{schema.name} retrieved." # [END pubsub_get_schema] diff --git a/google-cloud-pubsub/samples/pubsub_get_subscription_policy.rb b/google-cloud-pubsub/samples/pubsub_get_subscription_policy.rb index 77123e9e2335..c3cd3bdc42f6 100644 --- a/google-cloud-pubsub/samples/pubsub_get_subscription_policy.rb +++ b/google-cloud-pubsub/samples/pubsub_get_subscription_policy.rb @@ -18,12 +18,13 @@ def get_subscription_policy subscription_id: # [START pubsub_get_subscription_policy] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - policy = subscription.policy + subscription_admin = pubsub.subscription_admin + + policy = pubsub.iam.get_iam_policy resource: pubsub.subscription_path(subscription_id) puts "Subscription policy:" - puts policy.roles + puts policy.bindings.first.role # [END pubsub_get_subscription_policy] end diff --git a/google-cloud-pubsub/samples/pubsub_get_topic_policy.rb b/google-cloud-pubsub/samples/pubsub_get_topic_policy.rb index 830f9a0d4d34..81bf3834d7a3 100644 --- a/google-cloud-pubsub/samples/pubsub_get_topic_policy.rb +++ b/google-cloud-pubsub/samples/pubsub_get_topic_policy.rb @@ -18,12 +18,13 @@ def get_topic_policy topic_id: # [START pubsub_get_topic_policy] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - policy = topic.policy + topic_admin = pubsub.topic_admin + + policy = pubsub.iam.get_iam_policy resource: pubsub.topic_path(topic_id) puts "Topic policy:" - puts policy.roles + puts policy.bindings.first.role # [END pubsub_get_topic_policy] end diff --git a/google-cloud-pubsub/samples/pubsub_list_schema_revisions.rb b/google-cloud-pubsub/samples/pubsub_list_schema_revisions.rb index d67fa0d639d6..35692b3081a3 100644 --- a/google-cloud-pubsub/samples/pubsub_list_schema_revisions.rb +++ b/google-cloud-pubsub/samples/pubsub_list_schema_revisions.rb @@ -18,11 +18,13 @@ def list_schema_revisions schema_id: # [START pubsub_list_schema_revisions] # schema_id = "your-schema-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - schema = pubsub.schema schema_id + schemas = pubsub.schemas - response = schema.list_revisions + response = schemas.list_schema_revisions \ + name: pubsub.schema_path(schema_id), + view: Google::Cloud::PubSub::V1::SchemaView::FULL puts "Listed revisions of schema #{schema_id}" response.each do |revision_schema| diff --git a/google-cloud-pubsub/samples/pubsub_list_schemas.rb b/google-cloud-pubsub/samples/pubsub_list_schemas.rb index 3aa86e4cca10..65709cbb6c8a 100644 --- a/google-cloud-pubsub/samples/pubsub_list_schemas.rb +++ b/google-cloud-pubsub/samples/pubsub_list_schemas.rb @@ -17,9 +17,13 @@ def list_schemas # [START pubsub_list_schemas] - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - schemas = pubsub.schemas + schema_service = pubsub.schemas + + schemas = schema_service.list_schemas \ + parent: pubsub.project_path, + view: Google::Cloud::PubSub::V1::SchemaView::FULL puts "Schemas in project:" schemas.each do |schema| diff --git a/google-cloud-pubsub/samples/pubsub_list_subscriptions.rb b/google-cloud-pubsub/samples/pubsub_list_subscriptions.rb index 19af47db5aef..8ba67134cbb4 100644 --- a/google-cloud-pubsub/samples/pubsub_list_subscriptions.rb +++ b/google-cloud-pubsub/samples/pubsub_list_subscriptions.rb @@ -17,9 +17,11 @@ def list_subscriptions # [START pubsub_list_subscriptions] - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscriptions = pubsub.list_subscriptions + subscription_admin = pubsub.subscription_admin + + subscriptions = subscription_admin.list_subscriptions project: pubsub.project_path puts "Subscriptions:" subscriptions.each do |subscription| diff --git a/google-cloud-pubsub/samples/pubsub_list_topic_subscriptions.rb b/google-cloud-pubsub/samples/pubsub_list_topic_subscriptions.rb index 82b19ad19316..1e463d71144d 100644 --- a/google-cloud-pubsub/samples/pubsub_list_topic_subscriptions.rb +++ b/google-cloud-pubsub/samples/pubsub_list_topic_subscriptions.rb @@ -18,14 +18,15 @@ def list_topic_subscriptions topic_id: # [START pubsub_list_topic_subscriptions] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - subscriptions = topic.subscriptions + topic_admin = pubsub.topic_admin - puts "Subscriptions in topic #{topic.name}:" - subscriptions.each do |subscription| - puts subscription.name + response = topic_admin.list_topic_subscriptions topic: pubsub.topic_path(topic_id) + + puts "Subscriptions in topic #{topic_id}:" + response.subscriptions.each do |subscription_name| + puts subscription_name end # [END pubsub_list_topic_subscriptions] end diff --git a/google-cloud-pubsub/samples/pubsub_list_topics.rb b/google-cloud-pubsub/samples/pubsub_list_topics.rb index 7c7bd4225248..08ba5c4d2af6 100644 --- a/google-cloud-pubsub/samples/pubsub_list_topics.rb +++ b/google-cloud-pubsub/samples/pubsub_list_topics.rb @@ -17,9 +17,11 @@ def list_topics # [START pubsub_list_topics] - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topics = pubsub.topics + topic_admin = pubsub.topic_admin + + topics = topic_admin.list_topics project: pubsub.project_path puts "Topics in project:" topics.each do |topic| diff --git a/google-cloud-pubsub/samples/pubsub_publish.rb b/google-cloud-pubsub/samples/pubsub_publish.rb index b74035227806..b8fe1270cada 100644 --- a/google-cloud-pubsub/samples/pubsub_publish.rb +++ b/google-cloud-pubsub/samples/pubsub_publish.rb @@ -18,15 +18,16 @@ def publish_message_async topic_id: # [START pubsub_publish] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - topic.publish_async "This is a test message." do |result| + publisher = pubsub.publisher topic_id + + publisher.publish_async "This is a test message." do |result| raise "Failed to publish the message." unless result.succeeded? puts "Message published asynchronously." end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop.wait! + publisher.async_publisher.stop.wait! # [END pubsub_publish] end diff --git a/google-cloud-pubsub/samples/pubsub_publish_avro_records.rb b/google-cloud-pubsub/samples/pubsub_publish_avro_records.rb index d82bc20e1dcc..77e34420e616 100644 --- a/google-cloud-pubsub/samples/pubsub_publish_avro_records.rb +++ b/google-cloud-pubsub/samples/pubsub_publish_avro_records.rb @@ -19,24 +19,31 @@ def publish_avro_records topic_id:, avsc_file: # topic_id = "your-topic-id" # avsc_file = "path/to/an/avro/schema/file/(.avsc)/formatted/in/json" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id + topic_admin = pubsub.topic_admin + + topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) + + encoding = topic.schema_settings.encoding + + publisher = pubsub.publisher topic_id record = { "name" => "Alaska", "post_abbr" => "AK" } - if topic.message_encoding_binary? + case encoding + when :BINARY require "avro" avro_schema = Avro::Schema.parse File.read(avsc_file) writer = Avro::IO::DatumWriter.new avro_schema buffer = StringIO.new encoder = Avro::IO::BinaryEncoder.new buffer writer.write record, encoder - topic.publish buffer + publisher.publish buffer puts "Published binary-encoded AVRO message." - elsif topic.message_encoding_json? + when :JSON require "json" - topic.publish record.to_json + publisher.publish record.to_json puts "Published JSON-encoded AVRO message." else raise "No encoding specified in #{topic.name}." diff --git a/google-cloud-pubsub/samples/pubsub_publish_custom_attributes.rb b/google-cloud-pubsub/samples/pubsub_publish_custom_attributes.rb index 078839367909..80d686243b8d 100644 --- a/google-cloud-pubsub/samples/pubsub_publish_custom_attributes.rb +++ b/google-cloud-pubsub/samples/pubsub_publish_custom_attributes.rb @@ -18,18 +18,19 @@ def publish_message_async_with_custom_attributes topic_id: # [START pubsub_publish_custom_attributes] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new + + publisher = pubsub.publisher topic_id - topic = pubsub.topic topic_id # Add two attributes, origin and username, to the message - topic.publish_async "This is a test message.", - origin: "ruby-sample", - username: "gcp" do |result| + publisher.publish_async "This is a test message.", + origin: "ruby-sample", + username: "gcp" do |result| raise "Failed to publish the message." unless result.succeeded? puts "Message with custom attributes published asynchronously." end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop.wait! + publisher.async_publisher.stop.wait! # [END pubsub_publish_custom_attributes] end diff --git a/google-cloud-pubsub/samples/pubsub_publish_proto_messages.rb b/google-cloud-pubsub/samples/pubsub_publish_proto_messages.rb index ef761ffde010..45b379b93773 100644 --- a/google-cloud-pubsub/samples/pubsub_publish_proto_messages.rb +++ b/google-cloud-pubsub/samples/pubsub_publish_proto_messages.rb @@ -19,17 +19,24 @@ def publish_proto_messages topic_id: # [START pubsub_publish_proto_messages] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id + topic_admin = pubsub.topic_admin + + publisher = pubsub.publisher topic_id + + topic = topic_admin.get_topic topic: pubsub.topic_path(topic_id) + + encoding = topic.schema_settings.encoding state = Utilities::StateProto.new name: "Alaska", post_abbr: "AK" - if topic.message_encoding_binary? - topic.publish Utilities::StateProto.encode(state) + case encoding + when :BINARY + publisher.publish Utilities::StateProto.encode(state) puts "Published binary-encoded protobuf message." - elsif topic.message_encoding_json? - topic.publish Utilities::StateProto.encode_json(state) + when :JSON + publisher.publish Utilities::StateProto.encode_json(state) puts "Published JSON-encoded protobuf message." else raise "No encoding specified in #{topic.name}." diff --git a/google-cloud-pubsub/samples/pubsub_publish_with_error_handler.rb b/google-cloud-pubsub/samples/pubsub_publish_with_error_handler.rb index d742a3c85371..d7324f670053 100644 --- a/google-cloud-pubsub/samples/pubsub_publish_with_error_handler.rb +++ b/google-cloud-pubsub/samples/pubsub_publish_with_error_handler.rb @@ -18,7 +18,7 @@ def publish_with_error_handler topic_id: # [START pubsub_publish_with_error_handler] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new topic = pubsub.topic topic_id diff --git a/google-cloud-pubsub/samples/pubsub_publish_with_ordering_keys.rb b/google-cloud-pubsub/samples/pubsub_publish_with_ordering_keys.rb index 3ea786ff7c17..1d49fecd6968 100644 --- a/google-cloud-pubsub/samples/pubsub_publish_with_ordering_keys.rb +++ b/google-cloud-pubsub/samples/pubsub_publish_with_ordering_keys.rb @@ -18,22 +18,23 @@ def publish_ordered_messages topic_id: # [START pubsub_publish_with_ordering_keys] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new endpoint: "us-east1-pubsub.googleapis.com:443" + pubsub = Google::Cloud::PubSub.new # Start sending messages in one request once the size of all queued messages # reaches 1 MB or the number of queued messages reaches 20 - topic = pubsub.topic topic_id, async: { + publisher = pubsub.publisher topic_id, async: { max_bytes: 1_000_000, max_messages: 20 } - topic.enable_message_ordering! + + publisher.enable_message_ordering! 10.times do |i| - topic.publish_async "This is message ##{i}.", - ordering_key: "ordering-key" + publisher.publish_async "This is message ##{i}.", + ordering_key: "ordering-key" end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop! + publisher.async_publisher.stop! puts "Messages published with ordering key." # [END pubsub_publish_with_ordering_keys] end diff --git a/google-cloud-pubsub/samples/pubsub_publisher_batch_settings.rb b/google-cloud-pubsub/samples/pubsub_publisher_batch_settings.rb index b9527df41396..c06b962b1f5c 100644 --- a/google-cloud-pubsub/samples/pubsub_publisher_batch_settings.rb +++ b/google-cloud-pubsub/samples/pubsub_publisher_batch_settings.rb @@ -18,20 +18,20 @@ def publish_messages_async_with_batch_settings topic_id: # [START pubsub_publisher_batch_settings] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new # Start sending messages in one request once the size of all queued messages # reaches 1 MB or the number of queued messages reaches 20 - topic = pubsub.topic topic_id, async: { + publisher = pubsub.publisher topic_id, async: { max_bytes: 1_000_000, max_messages: 20 } 10.times do |i| - topic.publish_async "This is message ##{i}." + publisher.publish_async "This is message ##{i}." end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop.wait! + publisher.async_publisher.stop.wait! puts "Messages published asynchronously in batch." # [END pubsub_publisher_batch_settings] end diff --git a/google-cloud-pubsub/samples/pubsub_publisher_concurrency_control.rb b/google-cloud-pubsub/samples/pubsub_publisher_concurrency_control.rb index 95523a901da8..85cd5009a7d7 100644 --- a/google-cloud-pubsub/samples/pubsub_publisher_concurrency_control.rb +++ b/google-cloud-pubsub/samples/pubsub_publisher_concurrency_control.rb @@ -18,9 +18,9 @@ def publish_messages_async_with_concurrency_control topic_id: # [START pubsub_publisher_concurrency_control] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id, async: { + publisher = pubsub.publisher topic_id, async: { threads: { # Use exactly one thread for publishing message and exactly one thread # for executing callbacks @@ -28,12 +28,12 @@ def publish_messages_async_with_concurrency_control topic_id: callback: 1 } } - topic.publish_async "This is a test message." do |result| + publisher.publish_async "This is a test message." do |result| raise "Failed to publish the message." unless result.succeeded? puts "Message published asynchronously." end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop.wait! + publisher.async_publisher.stop.wait! # [END pubsub_publisher_concurrency_control] end diff --git a/google-cloud-pubsub/samples/pubsub_publisher_flow_control.rb b/google-cloud-pubsub/samples/pubsub_publisher_flow_control.rb index ba1c16679541..2fdb846b06b0 100644 --- a/google-cloud-pubsub/samples/pubsub_publisher_flow_control.rb +++ b/google-cloud-pubsub/samples/pubsub_publisher_flow_control.rb @@ -18,9 +18,9 @@ def publish_messages_async_with_flow_control topic_id: # [START pubsub_publisher_flow_control] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id, async: { + publisher = pubsub.publisher topic_id, async: { # Configure how many messages the publisher client can hold in memory # and what to do when messages exceed the limit. flow_control: { @@ -33,13 +33,13 @@ def publish_messages_async_with_flow_control topic_id: } # Rapidly publishing 1000 messages in a loop may be constrained by flow control. 1000.times do |i| - topic.publish_async "message #{i}" do |result| + publisher.publish_async "message #{i}" do |result| raise "Failed to publish the message." unless result.succeeded? end end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop.wait! + publisher.async_publisher.stop.wait! puts "Published messages with flow control settings to #{topic_id}." # [END pubsub_publisher_flow_control] end diff --git a/google-cloud-pubsub/samples/pubsub_publisher_with_compression.rb b/google-cloud-pubsub/samples/pubsub_publisher_with_compression.rb index 1e4bf926a75c..11c4ef72e254 100644 --- a/google-cloud-pubsub/samples/pubsub_publisher_with_compression.rb +++ b/google-cloud-pubsub/samples/pubsub_publisher_with_compression.rb @@ -12,38 +12,36 @@ # See the License for the specific language governing permissions and # limitations under the License. -# [START pubsub_publisher_with_compression] require "google/cloud/pubsub" ## # Shows how to create a BigQuery subscription where messages published # to a topic populates a BigQuery table. # -# @param project_id [String] -# Your Google Cloud project (e.g. "my-project") -# @param topic_id [String] -# Your topic name (e.g. "my-secret") -# def pubsub_publisher_with_compression project_id:, topic_id: - pubsub = Google::Cloud::Pubsub.new project_id: project_id + # [START pubsub_publisher_with_compression] + # project_id = "your-project-id" + # topic_id = "your-topic-id" + + pubsub = Google::Cloud::PubSub.new project_id: project_id # Enable compression and configure the compression threshold to 10 bytes (default to 240 B). # Publish requests of sizes > 10 B (excluding the request headers) will get compressed. - topic = pubsub.topic topic_id, async: { + publisher = pubsub.publisher topic_id, async: { compress: true, compression_bytes_threshold: 10 } begin - topic.publish_async "This is a test message." do |result| + publisher.publish_async "This is a test message." do |result| raise "Failed to publish the message." unless result.succeeded? puts "Published a compressed message of message ID: #{result.message_id}" end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop.wait! + publisher.async_publisher.stop.wait! rescue StandardError => e puts "Received error while publishing: #{e.message}" end + # [END pubsub_publisher_with_compression] end -# [END pubsub_publisher_with_compression] diff --git a/google-cloud-pubsub/samples/pubsub_quickstart_publisher.rb b/google-cloud-pubsub/samples/pubsub_quickstart_publisher.rb index 1b67d2fdfca0..236473f7eb61 100644 --- a/google-cloud-pubsub/samples/pubsub_quickstart_publisher.rb +++ b/google-cloud-pubsub/samples/pubsub_quickstart_publisher.rb @@ -18,10 +18,11 @@ def publish_message topic_id: # [START pubsub_quickstart_publisher] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - topic.publish "This is a test message." + publisher = pubsub.publisher topic_id + + publisher.publish "This is a test message." puts "Message published." # [END pubsub_quickstart_publisher] diff --git a/google-cloud-pubsub/samples/pubsub_resume_publish_with_ordering_keys.rb b/google-cloud-pubsub/samples/pubsub_resume_publish_with_ordering_keys.rb index e2d8844aa033..c20debcfc97b 100644 --- a/google-cloud-pubsub/samples/pubsub_resume_publish_with_ordering_keys.rb +++ b/google-cloud-pubsub/samples/pubsub_resume_publish_with_ordering_keys.rb @@ -18,30 +18,30 @@ def publish_resume_publish topic_id: # [START pubsub_resume_publish_with_ordering_keys] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new # Start sending messages in one request once the size of all queued messages # reaches 1 MB or the number of queued messages reaches 20 - topic = pubsub.topic topic_id, async: { + publisher = pubsub.publisher topic_id, async: { max_bytes: 1_000_000, max_messages: 20 } - topic.enable_message_ordering! + publisher.enable_message_ordering! 10.times do |i| - topic.publish_async "This is message ##{i}.", - ordering_key: "ordering-key" do |result| + publisher.publish_async "This is message ##{i}.", + ordering_key: "ordering-key" do |result| if result.succeeded? puts "Message ##{i} successfully published." else puts "Message ##{i} failed to publish" # Allow publishing to continue on "ordering-key" after processing the # failure. - topic.resume_publish "ordering-key" + publisher.resume_publish "ordering-key" end end end # Stop the async_publisher to send all queued messages immediately. - topic.async_publisher.stop! + publisher.async_publisher.stop! # [END pubsub_resume_publish_with_ordering_keys] end diff --git a/google-cloud-pubsub/samples/pubsub_set_subscription_policy.rb b/google-cloud-pubsub/samples/pubsub_set_subscription_policy.rb index 783b34d27069..e935369689c6 100644 --- a/google-cloud-pubsub/samples/pubsub_set_subscription_policy.rb +++ b/google-cloud-pubsub/samples/pubsub_set_subscription_policy.rb @@ -17,14 +17,18 @@ def set_subscription_policy subscription_id:, role:, service_account_email: # [START pubsub_set_subscription_policy] # subscription_id = "your-subscription-id" - # role = "roles/pubsub.publisher" + # role = "roles/pubsub.subscriber" # service_account_email = "serviceAccount:account_name@project_name.iam.gserviceaccount.com" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscription.policy do |policy| - policy.add role, service_account_email - end + subscription_admin = pubsub.subscription_admin + + bindings = Google::Iam::V1::Binding.new role: role, members: [service_account_email] + + pubsub.iam.set_iam_policy resource: pubsub.subscription_path(subscription_id), + policy: { + bindings: [bindings] + } # [END pubsub_set_subscription_policy] end diff --git a/google-cloud-pubsub/samples/pubsub_set_topic_policy.rb b/google-cloud-pubsub/samples/pubsub_set_topic_policy.rb index 1c7ace249ca3..3e0648ae7879 100644 --- a/google-cloud-pubsub/samples/pubsub_set_topic_policy.rb +++ b/google-cloud-pubsub/samples/pubsub_set_topic_policy.rb @@ -20,11 +20,15 @@ def set_topic_policy topic_id:, role:, service_account_email: # role = "roles/pubsub.publisher" # service_account_email = "serviceAccount:account_name@project_name.iam.gserviceaccount.com" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - topic.policy do |policy| - policy.add role, service_account_email - end + topic_admin = pubsub.topic_admin + + bindings = Google::Iam::V1::Binding.new role: role, members: [service_account_email] + + pubsub.iam.set_iam_policy resource: pubsub.topic_path(topic_id), + policy: { + bindings: [bindings] + } # [END pubsub_set_topic_policy] end diff --git a/google-cloud-pubsub/samples/pubsub_subscribe_avro_records.rb b/google-cloud-pubsub/samples/pubsub_subscribe_avro_records.rb index ffa5942d1634..c13392fa5ccd 100644 --- a/google-cloud-pubsub/samples/pubsub_subscribe_avro_records.rb +++ b/google-cloud-pubsub/samples/pubsub_subscribe_avro_records.rb @@ -19,11 +19,11 @@ def subscribe_avro_records subscription_id:, avsc_file: # subscription_id = "your-subscription-id" # avsc_file = "path/to/an/avro/schema/file/(.avsc)/formatted/in/json" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id + subscriber = pubsub.subscriber subscription_id - subscriber = subscription.listen do |received_message| + listener = subscriber.listen do |received_message| encoding = received_message.attributes["googclient_schemaencoding"] case encoding when "BINARY" @@ -44,10 +44,10 @@ def subscribe_avro_records subscription_id:, avsc_file: received_message.acknowledge! end - subscriber.start + listener.start # Let the main thread sleep for 60 seconds so the thread for listening # messages does not quit sleep 60 - subscriber.stop.wait! + listener.stop.wait! # [END pubsub_subscribe_avro_records] end diff --git a/google-cloud-pubsub/samples/pubsub_subscribe_proto_messages.rb b/google-cloud-pubsub/samples/pubsub_subscribe_proto_messages.rb index 31df60fdaaf0..70ad55c24f6a 100644 --- a/google-cloud-pubsub/samples/pubsub_subscribe_proto_messages.rb +++ b/google-cloud-pubsub/samples/pubsub_subscribe_proto_messages.rb @@ -19,11 +19,10 @@ def subscribe_proto_messages subscription_id: # [START pubsub_subscribe_proto_messages] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - - subscriber = subscription.listen do |received_message| + subscriber = pubsub.subscriber subscription_id + listener = subscriber.listen do |received_message| encoding = received_message.attributes["googclient_schemaencoding"] case encoding when "BINARY" @@ -39,10 +38,10 @@ def subscribe_proto_messages subscription_id: received_message.acknowledge! end - subscriber.start + listener.start # Let the main thread sleep for 60 seconds so the thread for listening # messages does not quit sleep 60 - subscriber.stop.wait! + listener.stop.wait! # [END pubsub_subscribe_proto_messages] end diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_async_pull.rb b/google-cloud-pubsub/samples/pubsub_subscriber_async_pull.rb index 033f7d8daf3e..ad7d691400ad 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_async_pull.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_async_pull.rb @@ -19,19 +19,20 @@ def listen_for_messages subscription_id: # [START pubsub_quickstart_subscriber] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscriber = subscription.listen do |received_message| + subscriber = pubsub.subscriber subscription_id + + listener = subscriber.listen do |received_message| puts "Received message: #{received_message.data}" received_message.acknowledge! end - subscriber.start + listener.start # Let the main thread sleep for 60 seconds so the thread for listening # messages does not quit sleep 60 - subscriber.stop.wait! + listener.stop.wait! # [END pubsub_subscriber_async_pull] # [END pubsub_quickstart_subscriber] end diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_async_pull_custom_attributes.rb b/google-cloud-pubsub/samples/pubsub_subscriber_async_pull_custom_attributes.rb index fb7c690b796e..6d9a7f6fc73f 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_async_pull_custom_attributes.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_async_pull_custom_attributes.rb @@ -18,10 +18,11 @@ def listen_for_messages_with_custom_attributes subscription_id: # [START pubsub_subscriber_async_pull_custom_attributes] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscriber = subscription.listen do |received_message| + subscriber = pubsub.subscriber subscription_id + + listener = subscriber.listen do |received_message| puts "Received message: #{received_message.data}" unless received_message.attributes.empty? puts "Attributes:" @@ -32,10 +33,10 @@ def listen_for_messages_with_custom_attributes subscription_id: received_message.acknowledge! end - subscriber.start + listener.start # Let the main thread sleep for 60 seconds so the thread for listening # messages does not quit sleep 60 - subscriber.stop.wait! + listener.stop.wait! # [END pubsub_subscriber_async_pull_custom_attributes] end diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_concurrency_control.rb b/google-cloud-pubsub/samples/pubsub_subscriber_concurrency_control.rb index 291b623384fe..dc377a113cf5 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_concurrency_control.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_concurrency_control.rb @@ -18,12 +18,13 @@ def listen_for_messages_with_concurrency_control subscription_id: # [START pubsub_subscriber_concurrency_control] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new + + subscriber = pubsub.subscriber subscription_id - subscription = pubsub.subscription subscription_id # Use 2 threads for streaming, 4 threads for executing callbacks and 2 threads # for sending acknowledgements and/or delays - subscriber = subscription.listen streams: 2, threads: { + listener = subscriber.listen streams: 2, threads: { callback: 4, push: 2 } do |received_message| @@ -31,10 +32,10 @@ def listen_for_messages_with_concurrency_control subscription_id: received_message.acknowledge! end - subscriber.start + listener.start # Let the main thread sleep for 60 seconds so the thread for listening # messages does not quit sleep 60 - subscriber.stop.wait! + listener.stop.wait! # [END pubsub_subscriber_concurrency_control] end diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_error_listener.rb b/google-cloud-pubsub/samples/pubsub_subscriber_error_listener.rb index fbd236c6b95f..49b39bf7a84a 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_error_listener.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_error_listener.rb @@ -18,7 +18,7 @@ def listen_for_messages_with_error_handler subscription_id: # [START pubsub_subscriber_error_listener] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new subscription = pubsub.subscription subscription_id subscriber = subscription.listen do |received_message| diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_exactly_once_delivery.rb b/google-cloud-pubsub/samples/pubsub_subscriber_exactly_once_delivery.rb index b3b52edd5448..215ebbc73cc2 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_exactly_once_delivery.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_exactly_once_delivery.rb @@ -12,44 +12,28 @@ # See the License for the specific language governing permissions and # limitations under the License. -# [START pubsub_subscriber_exactly_once] require "google/cloud/pubsub" -# Shows how to register callback to acknowledge method and access the result passed in -class PubsubSubscriberExactlyOnceDelivery - def subscriber_exactly_once_delivery project_id:, topic_id:, subscription_id: - pubsub = Google::Cloud::Pubsub.new project_id: project_id - topic = pubsub.topic topic_id - subscription = pubsub.subscription subscription_id - subscriber = subscription.listen do |received_message| - puts "Received message: #{received_message.data}" +def subscriber_exactly_once_delivery project_id:, subscription_id: + # [START pubsub_subscriber_exactly_once] + # project_id = "your-project-id" + # subscription_id = "your-subscription-id" + pubsub = Google::Cloud::PubSub.new project_id: project_id + subscriber = pubsub.subscriber subscription_id + listener = subscriber.listen do |received_message| + puts "Received message: #{received_message.data}" - # Pass in callback to access the acknowledge result. - # For subscription with Exactly once delivery disabled the result will be success always. - received_message.acknowledge! do |result| - puts "Acknowledge result's status: #{result.status}" - end + # Pass in callback to access the acknowledge result. + # For subscription with Exactly once delivery disabled the result will be success always. + received_message.acknowledge! do |result| + puts "Acknowledge result's status: #{result.status}" end - - subscriber.start - # Let the main thread sleep for 60 seconds so the thread for listening - # messages does not quit - sleep 60 - subscriber.stop.wait! - end - - def self.run - # TODO(developer): Replace these variables before running the sample. - project_id = "your-project-id" - topic_id = "your-topic-id" - subscription_id = "id-for-new-subcription" # subscription with exactly once delivery enabled - PubsubSubscriberExactlyOnceDelivery.new.subscriber_exactly_once_delivery project_id: project_id, - topic_id: topic_id, - subscription_id: subscription_id end -end -if $PROGRAM_NAME == __FILE__ - PubsubSubscriberExactlyOnceDelivery.run + listener.start + # Let the main thread sleep for 60 seconds so the thread for listening + # messages does not quit + sleep 60 + listener.stop.wait! + # [END pubsub_subscriber_exactly_once] end -# [END pubsub_subscriber_exactly_once] diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_flow_settings.rb b/google-cloud-pubsub/samples/pubsub_subscriber_flow_settings.rb index cd2196280a52..ea4461e9ce5e 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_flow_settings.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_flow_settings.rb @@ -18,18 +18,19 @@ def listen_for_messages_with_flow_control subscription_id: # [START pubsub_subscriber_flow_settings] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscriber = subscription.listen inventory: 10 do |received_message| + subscriber = pubsub.subscriber subscription_id + + listener = subscriber.listen inventory: 10 do |received_message| puts "Received message: #{received_message.data}" received_message.acknowledge! end - subscriber.start + listener.start # Let the main thread sleep for 60 seconds so the thread for listening # messages does not quit sleep 60 - subscriber.stop.wait! + listener.stop.wait! # [END pubsub_subscriber_flow_settings] end diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull.rb b/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull.rb index 536212af9b6b..7cf94a80462e 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull.rb @@ -18,10 +18,11 @@ def pull_messages subscription_id: # [START pubsub_subscriber_sync_pull] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscription.pull(immediate: false).each do |message| + subscriber = pubsub.subscriber subscription_id + + subscriber.pull(immediate: false).each do |message| puts "Message pulled: #{message.data}" message.acknowledge! end diff --git a/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull_with_lease.rb b/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull_with_lease.rb index bb2861b2074a..558c11ab6f72 100644 --- a/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull_with_lease.rb +++ b/google-cloud-pubsub/samples/pubsub_subscriber_sync_pull_with_lease.rb @@ -18,14 +18,15 @@ def subscriber_sync_pull_with_lease subscription_id: # [START pubsub_subscriber_sync_pull_with_lease] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new + + subscriber = pubsub.subscriber subscription_id - subscription = pubsub.subscription subscription_id new_ack_deadline = 30 processed = false # The subscriber pulls a specified number of messages. - received_messages = subscription.pull immediate: false, max: 1 + received_messages = subscriber.pull immediate: false, max: 1 # Obtain the first message. message = received_messages.first diff --git a/google-cloud-pubsub/samples/pubsub_test_subscription_permissions.rb b/google-cloud-pubsub/samples/pubsub_test_subscription_permissions.rb index 77a26a6f3480..ce07816a680c 100644 --- a/google-cloud-pubsub/samples/pubsub_test_subscription_permissions.rb +++ b/google-cloud-pubsub/samples/pubsub_test_subscription_permissions.rb @@ -18,13 +18,16 @@ def test_subscription_permissions subscription_id: # [START pubsub_test_subscription_permissions] # subscription_id = "your-subscription-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - permissions = subscription.test_permissions "pubsub.subscriptions.consume", - "pubsub.subscriptions.update" + subscription_admin = pubsub.subscription_admin - puts "Permission to consume" if permissions.include? "pubsub.subscriptions.consume" - puts "Permission to update" if permissions.include? "pubsub.subscriptions.update" + permissions = ["pubsub.subscriptions.consume", "pubsub.subscriptions.update"] + + response = pubsub.iam.test_iam_permissions resource: pubsub.subscription_path(subscription_id), + permissions: permissions + + puts "Permission to consume" if response.permissions.include? "pubsub.subscriptions.consume" + puts "Permission to update" if response.permissions.include? "pubsub.subscriptions.update" # [END pubsub_test_subscription_permissions] end diff --git a/google-cloud-pubsub/samples/pubsub_test_topic_permissions.rb b/google-cloud-pubsub/samples/pubsub_test_topic_permissions.rb index a817edafdd24..b7d204a862f3 100644 --- a/google-cloud-pubsub/samples/pubsub_test_topic_permissions.rb +++ b/google-cloud-pubsub/samples/pubsub_test_topic_permissions.rb @@ -18,14 +18,17 @@ def test_topic_permissions topic_id: # [START pubsub_test_topic_permissions] # topic_id = "your-topic-id" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - topic = pubsub.topic topic_id - permissions = topic.test_permissions "pubsub.topics.attachSubscription", - "pubsub.topics.publish", "pubsub.topics.update" + topic_admin = pubsub.topic_admin + + permissions = ["pubsub.topics.attachSubscription", "pubsub.topics.publish", "pubsub.topics.update"] + + response = pubsub.iam.test_iam_permissions resource: pubsub.topic_path(topic_id), + permissions: permissions puts "Permission to attach subscription" if permissions.include? "pubsub.topics.attachSubscription" - puts "Permission to publish" if permissions.include? "pubsub.topics.publish" - puts "Permission to update" if permissions.include? "pubsub.topics.update" + puts "Permission to publish" if response.permissions.include? "pubsub.topics.publish" + puts "Permission to update" if response.permissions.include? "pubsub.topics.update" # [END pubsub_test_topic_permissions] end diff --git a/google-cloud-pubsub/samples/pubsub_update_push_configuration.rb b/google-cloud-pubsub/samples/pubsub_update_push_configuration.rb index 7f26e98df0d7..2e2f68674a80 100644 --- a/google-cloud-pubsub/samples/pubsub_update_push_configuration.rb +++ b/google-cloud-pubsub/samples/pubsub_update_push_configuration.rb @@ -19,10 +19,20 @@ def update_push_configuration subscription_id:, new_endpoint: # subscription_id = "your-subscription-id" # new_endpoint = "Endpoint where your app receives messages"" - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new - subscription = pubsub.subscription subscription_id - subscription.endpoint = new_endpoint + subscription_admin = pubsub.subscription_admin + + subscription = subscription_admin.get_subscription \ + subscription: pubsub.subscription_path(subscription_id) + + subscription.push_config = Google::Cloud::PubSub::V1::PushConfig.new \ + push_endpoint: new_endpoint + + subscription_admin.update_subscription subscription: subscription, + update_mask: { + paths: ["push_config"] + } puts "Push endpoint updated." # [END pubsub_update_push_configuration] diff --git a/google-cloud-pubsub/samples/quickstart.rb b/google-cloud-pubsub/samples/quickstart.rb index 365fe57c29e3..ed7c03af5217 100644 --- a/google-cloud-pubsub/samples/quickstart.rb +++ b/google-cloud-pubsub/samples/quickstart.rb @@ -20,13 +20,14 @@ def quickstart topic_id: # [END require_library] # Instantiates a client - pubsub = Google::Cloud::Pubsub.new + pubsub = Google::Cloud::PubSub.new + topic_admin = pubsub.topic_admin # The name for the new topic # topic_id = "your-topic-id" # Creates the new topic - topic = pubsub.create_topic topic_id + topic = topic_admin.create_topic name: pubsub.topic_path(topic_id) puts "Topic #{topic.name} created." # [END pubsub_quickstart_create_topic]