# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/datastream/v1/datastream.proto for package 'Google.Cloud.Datastream.V1'
# Original file comments:
# Copyright 2022 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/cloud/datastream/v1/datastream_pb'

module Google
  module Cloud
    module Datastream
      module V1
        module Datastream
          # Datastream service
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.datastream.v1.Datastream'

            # Use this method to list connection profiles created in a project and
            # location.
            rpc :ListConnectionProfiles, ::Google::Cloud::Datastream::V1::ListConnectionProfilesRequest, ::Google::Cloud::Datastream::V1::ListConnectionProfilesResponse
            # Use this method to get details about a connection profile.
            rpc :GetConnectionProfile, ::Google::Cloud::Datastream::V1::GetConnectionProfileRequest, ::Google::Cloud::Datastream::V1::ConnectionProfile
            # Use this method to create a connection profile in a project and location.
            rpc :CreateConnectionProfile, ::Google::Cloud::Datastream::V1::CreateConnectionProfileRequest, ::Google::Longrunning::Operation
            # Use this method to update the parameters of a connection profile.
            rpc :UpdateConnectionProfile, ::Google::Cloud::Datastream::V1::UpdateConnectionProfileRequest, ::Google::Longrunning::Operation
            # Use this method to delete a connection profile.
            rpc :DeleteConnectionProfile, ::Google::Cloud::Datastream::V1::DeleteConnectionProfileRequest, ::Google::Longrunning::Operation
            # Use this method to discover a connection profile.
            # The discover API call exposes the data objects and metadata belonging to
            # the profile. Typically, a request returns children data objects of a
            # parent data object that's optionally supplied in the request.
            rpc :DiscoverConnectionProfile, ::Google::Cloud::Datastream::V1::DiscoverConnectionProfileRequest, ::Google::Cloud::Datastream::V1::DiscoverConnectionProfileResponse
            # Use this method to list streams in a project and location.
            rpc :ListStreams, ::Google::Cloud::Datastream::V1::ListStreamsRequest, ::Google::Cloud::Datastream::V1::ListStreamsResponse
            # Use this method to get details about a stream.
            rpc :GetStream, ::Google::Cloud::Datastream::V1::GetStreamRequest, ::Google::Cloud::Datastream::V1::Stream
            # Use this method to create a stream.
            rpc :CreateStream, ::Google::Cloud::Datastream::V1::CreateStreamRequest, ::Google::Longrunning::Operation
            # Use this method to update the configuration of a stream.
            rpc :UpdateStream, ::Google::Cloud::Datastream::V1::UpdateStreamRequest, ::Google::Longrunning::Operation
            # Use this method to delete a stream.
            rpc :DeleteStream, ::Google::Cloud::Datastream::V1::DeleteStreamRequest, ::Google::Longrunning::Operation
            # Use this method to start, resume or recover a stream with a non default CDC
            # strategy.
            rpc :RunStream, ::Google::Cloud::Datastream::V1::RunStreamRequest, ::Google::Longrunning::Operation
            # Use this method to get details about a stream object.
            rpc :GetStreamObject, ::Google::Cloud::Datastream::V1::GetStreamObjectRequest, ::Google::Cloud::Datastream::V1::StreamObject
            # Use this method to look up a stream object by its source object identifier.
            rpc :LookupStreamObject, ::Google::Cloud::Datastream::V1::LookupStreamObjectRequest, ::Google::Cloud::Datastream::V1::StreamObject
            # Use this method to list the objects of a specific stream.
            rpc :ListStreamObjects, ::Google::Cloud::Datastream::V1::ListStreamObjectsRequest, ::Google::Cloud::Datastream::V1::ListStreamObjectsResponse
            # Use this method to start a backfill job for the specified stream object.
            rpc :StartBackfillJob, ::Google::Cloud::Datastream::V1::StartBackfillJobRequest, ::Google::Cloud::Datastream::V1::StartBackfillJobResponse
            # Use this method to stop a backfill job for the specified stream object.
            rpc :StopBackfillJob, ::Google::Cloud::Datastream::V1::StopBackfillJobRequest, ::Google::Cloud::Datastream::V1::StopBackfillJobResponse
            # The FetchStaticIps API call exposes the static IP addresses used by
            # Datastream.
            rpc :FetchStaticIps, ::Google::Cloud::Datastream::V1::FetchStaticIpsRequest, ::Google::Cloud::Datastream::V1::FetchStaticIpsResponse
            # Use this method to create a private connectivity configuration.
            rpc :CreatePrivateConnection, ::Google::Cloud::Datastream::V1::CreatePrivateConnectionRequest, ::Google::Longrunning::Operation
            # Use this method to get details about a private connectivity configuration.
            rpc :GetPrivateConnection, ::Google::Cloud::Datastream::V1::GetPrivateConnectionRequest, ::Google::Cloud::Datastream::V1::PrivateConnection
            # Use this method to list private connectivity configurations in a project
            # and location.
            rpc :ListPrivateConnections, ::Google::Cloud::Datastream::V1::ListPrivateConnectionsRequest, ::Google::Cloud::Datastream::V1::ListPrivateConnectionsResponse
            # Use this method to delete a private connectivity configuration.
            rpc :DeletePrivateConnection, ::Google::Cloud::Datastream::V1::DeletePrivateConnectionRequest, ::Google::Longrunning::Operation
            # Use this method to create a route for a private connectivity configuration
            # in a project and location.
            rpc :CreateRoute, ::Google::Cloud::Datastream::V1::CreateRouteRequest, ::Google::Longrunning::Operation
            # Use this method to get details about a route.
            rpc :GetRoute, ::Google::Cloud::Datastream::V1::GetRouteRequest, ::Google::Cloud::Datastream::V1::Route
            # Use this method to list routes created for a private connectivity
            # configuration in a project and location.
            rpc :ListRoutes, ::Google::Cloud::Datastream::V1::ListRoutesRequest, ::Google::Cloud::Datastream::V1::ListRoutesResponse
            # Use this method to delete a route.
            rpc :DeleteRoute, ::Google::Cloud::Datastream::V1::DeleteRouteRequest, ::Google::Longrunning::Operation
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
