public Subscription UpdateDeadLetterPolicy(string projectId, string topicId, string subscriptionId, string deadLetterTopicId) { SubscriberServiceApiClient subscriber = SubscriberServiceApiClient.Create(); // This is an existing topic that the subscription with dead letter policy is attached to. TopicName topicName = TopicName.FromProjectTopic(projectId, topicId); // This is an existing subscription with a dead letter policy. SubscriptionName subscriptionName = SubscriptionName.FromProjectSubscription(projectId, subscriptionId); // This is an existing dead letter topic that the subscription with dead letter policy forwards // dead letter messages to. var deadLetterTopic = TopicName.FromProjectTopic(projectId, deadLetterTopicId).ToString(); // Construct the subscription with the dead letter policy you expect to have after the update. // Here, values in the required fields (name, topic) help identify the subscription. var subscription = new Subscription { SubscriptionName = subscriptionName, TopicAsTopicName = topicName, DeadLetterPolicy = new DeadLetterPolicy { DeadLetterTopic = deadLetterTopic, MaxDeliveryAttempts = 20, } }; var request = new UpdateSubscriptionRequest { Subscription = subscription, // Construct a field mask to indicate which field to update in the subscription. UpdateMask = new FieldMask { Paths = { "dead_letter_policy" } } }; var updatedSubscription = subscriber.UpdateSubscription(request); return updatedSubscription; }
public Subscription RemoveDeadLetterPolicy(string projectId, string topicId, string subscriptionId) { SubscriberServiceApiClient subscriber = SubscriberServiceApiClient.Create(); // This is an existing topic that the subscription with dead letter policy is attached to. TopicName topicName = TopicName.FromProjectTopic(projectId, topicId); // This is an existing subscription with dead letter policy. SubscriptionName subscriptionName = SubscriptionName.FromProjectSubscription(projectId, subscriptionId); var subscription = new Subscription() { SubscriptionName = subscriptionName, TopicAsTopicName = topicName, DeadLetterPolicy = null }; var request = new UpdateSubscriptionRequest { Subscription = subscription, UpdateMask = new FieldMask { Paths = { "dead_letter_policy" } } }; var updatedSubscription = subscriber.UpdateSubscription(request); return(updatedSubscription); }