# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/shopping/merchant/notifications/v1beta/notificationsapi.proto for package 'google.shopping.merchant.notifications.v1beta'
# Original file comments:
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

require 'grpc'
require 'google/shopping/merchant/notifications/v1beta/notificationsapi_pb'

module Google
  module Shopping
    module Merchant
      module Notifications
        module V1beta
          module NotificationsApiService
            # Service to manage notification subscriptions for merchants
            class Service

              include ::GRPC::GenericService

              self.marshal_class_method = :encode
              self.unmarshal_class_method = :decode
              self.service_name = 'google.shopping.merchant.notifications.v1beta.NotificationsApiService'

              # Gets notification subscriptions for an account.
              rpc :GetNotificationSubscription, ::Google::Shopping::Merchant::Notifications::V1beta::GetNotificationSubscriptionRequest, ::Google::Shopping::Merchant::Notifications::V1beta::NotificationSubscription
              # Creates a notification subscription for a merchant. We will allow the
              # following types of notification subscriptions to exist together (per
              # merchant as a subscriber per event type):
              # 1. Subscription for all managed accounts + subscription for self
              # 2. Multiple "partial" subscriptions for managed accounts + subscription
              # for self
              #
              # we will not allow (per merchant as a subscriber per event type):
              # 1. multiple self subscriptions.
              # 2. multiple "all managed accounts" subscriptions.
              # 3. all and partial subscriptions at the same time.
              # 4. multiple partial subscriptions for the same target account
              rpc :CreateNotificationSubscription, ::Google::Shopping::Merchant::Notifications::V1beta::CreateNotificationSubscriptionRequest, ::Google::Shopping::Merchant::Notifications::V1beta::NotificationSubscription
              # Updates an existing notification subscription for a merchant.
              rpc :UpdateNotificationSubscription, ::Google::Shopping::Merchant::Notifications::V1beta::UpdateNotificationSubscriptionRequest, ::Google::Shopping::Merchant::Notifications::V1beta::NotificationSubscription
              # Deletes a notification subscription for a merchant.
              rpc :DeleteNotificationSubscription, ::Google::Shopping::Merchant::Notifications::V1beta::DeleteNotificationSubscriptionRequest, ::Google::Protobuf::Empty
              # Gets all the notification subscriptions for a merchant.
              rpc :ListNotificationSubscriptions, ::Google::Shopping::Merchant::Notifications::V1beta::ListNotificationSubscriptionsRequest, ::Google::Shopping::Merchant::Notifications::V1beta::ListNotificationSubscriptionsResponse
            end

            Stub = Service.rpc_stub_class
          end
        end
      end
    end
  end
end
