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

module Google
  module Cloud
    module NetworkServices
      module V1
        module NetworkServices
          # Service describing handlers for resources.
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.networkservices.v1.NetworkServices'

            # Lists EndpointPolicies in a given project and location.
            rpc :ListEndpointPolicies, ::Google::Cloud::NetworkServices::V1::ListEndpointPoliciesRequest, ::Google::Cloud::NetworkServices::V1::ListEndpointPoliciesResponse
            # Gets details of a single EndpointPolicy.
            rpc :GetEndpointPolicy, ::Google::Cloud::NetworkServices::V1::GetEndpointPolicyRequest, ::Google::Cloud::NetworkServices::V1::EndpointPolicy
            # Creates a new EndpointPolicy in a given project and location.
            rpc :CreateEndpointPolicy, ::Google::Cloud::NetworkServices::V1::CreateEndpointPolicyRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single EndpointPolicy.
            rpc :UpdateEndpointPolicy, ::Google::Cloud::NetworkServices::V1::UpdateEndpointPolicyRequest, ::Google::Longrunning::Operation
            # Deletes a single EndpointPolicy.
            rpc :DeleteEndpointPolicy, ::Google::Cloud::NetworkServices::V1::DeleteEndpointPolicyRequest, ::Google::Longrunning::Operation
            # Lists `WasmPluginVersion` resources in a given project and
            # location.
            rpc :ListWasmPluginVersions, ::Google::Cloud::NetworkServices::V1::ListWasmPluginVersionsRequest, ::Google::Cloud::NetworkServices::V1::ListWasmPluginVersionsResponse
            # Gets details of the specified `WasmPluginVersion` resource.
            rpc :GetWasmPluginVersion, ::Google::Cloud::NetworkServices::V1::GetWasmPluginVersionRequest, ::Google::Cloud::NetworkServices::V1::WasmPluginVersion
            # Creates a new `WasmPluginVersion` resource in a given project
            # and location.
            rpc :CreateWasmPluginVersion, ::Google::Cloud::NetworkServices::V1::CreateWasmPluginVersionRequest, ::Google::Longrunning::Operation
            # Deletes the specified `WasmPluginVersion` resource.
            rpc :DeleteWasmPluginVersion, ::Google::Cloud::NetworkServices::V1::DeleteWasmPluginVersionRequest, ::Google::Longrunning::Operation
            # Lists `WasmPlugin` resources in a given project and
            # location.
            rpc :ListWasmPlugins, ::Google::Cloud::NetworkServices::V1::ListWasmPluginsRequest, ::Google::Cloud::NetworkServices::V1::ListWasmPluginsResponse
            # Gets details of the specified `WasmPlugin` resource.
            rpc :GetWasmPlugin, ::Google::Cloud::NetworkServices::V1::GetWasmPluginRequest, ::Google::Cloud::NetworkServices::V1::WasmPlugin
            # Creates a new `WasmPlugin` resource in a given project
            # and location.
            rpc :CreateWasmPlugin, ::Google::Cloud::NetworkServices::V1::CreateWasmPluginRequest, ::Google::Longrunning::Operation
            # Updates the parameters of the specified `WasmPlugin` resource.
            rpc :UpdateWasmPlugin, ::Google::Cloud::NetworkServices::V1::UpdateWasmPluginRequest, ::Google::Longrunning::Operation
            # Deletes the specified `WasmPlugin` resource.
            rpc :DeleteWasmPlugin, ::Google::Cloud::NetworkServices::V1::DeleteWasmPluginRequest, ::Google::Longrunning::Operation
            # Lists Gateways in a given project and location.
            rpc :ListGateways, ::Google::Cloud::NetworkServices::V1::ListGatewaysRequest, ::Google::Cloud::NetworkServices::V1::ListGatewaysResponse
            # Gets details of a single Gateway.
            rpc :GetGateway, ::Google::Cloud::NetworkServices::V1::GetGatewayRequest, ::Google::Cloud::NetworkServices::V1::Gateway
            # Creates a new Gateway in a given project and location.
            rpc :CreateGateway, ::Google::Cloud::NetworkServices::V1::CreateGatewayRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Gateway.
            rpc :UpdateGateway, ::Google::Cloud::NetworkServices::V1::UpdateGatewayRequest, ::Google::Longrunning::Operation
            # Deletes a single Gateway.
            rpc :DeleteGateway, ::Google::Cloud::NetworkServices::V1::DeleteGatewayRequest, ::Google::Longrunning::Operation
            # Lists GrpcRoutes in a given project and location.
            rpc :ListGrpcRoutes, ::Google::Cloud::NetworkServices::V1::ListGrpcRoutesRequest, ::Google::Cloud::NetworkServices::V1::ListGrpcRoutesResponse
            # Gets details of a single GrpcRoute.
            rpc :GetGrpcRoute, ::Google::Cloud::NetworkServices::V1::GetGrpcRouteRequest, ::Google::Cloud::NetworkServices::V1::GrpcRoute
            # Creates a new GrpcRoute in a given project and location.
            rpc :CreateGrpcRoute, ::Google::Cloud::NetworkServices::V1::CreateGrpcRouteRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single GrpcRoute.
            rpc :UpdateGrpcRoute, ::Google::Cloud::NetworkServices::V1::UpdateGrpcRouteRequest, ::Google::Longrunning::Operation
            # Deletes a single GrpcRoute.
            rpc :DeleteGrpcRoute, ::Google::Cloud::NetworkServices::V1::DeleteGrpcRouteRequest, ::Google::Longrunning::Operation
            # Lists HttpRoute in a given project and location.
            rpc :ListHttpRoutes, ::Google::Cloud::NetworkServices::V1::ListHttpRoutesRequest, ::Google::Cloud::NetworkServices::V1::ListHttpRoutesResponse
            # Gets details of a single HttpRoute.
            rpc :GetHttpRoute, ::Google::Cloud::NetworkServices::V1::GetHttpRouteRequest, ::Google::Cloud::NetworkServices::V1::HttpRoute
            # Creates a new HttpRoute in a given project and location.
            rpc :CreateHttpRoute, ::Google::Cloud::NetworkServices::V1::CreateHttpRouteRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single HttpRoute.
            rpc :UpdateHttpRoute, ::Google::Cloud::NetworkServices::V1::UpdateHttpRouteRequest, ::Google::Longrunning::Operation
            # Deletes a single HttpRoute.
            rpc :DeleteHttpRoute, ::Google::Cloud::NetworkServices::V1::DeleteHttpRouteRequest, ::Google::Longrunning::Operation
            # Lists TcpRoute in a given project and location.
            rpc :ListTcpRoutes, ::Google::Cloud::NetworkServices::V1::ListTcpRoutesRequest, ::Google::Cloud::NetworkServices::V1::ListTcpRoutesResponse
            # Gets details of a single TcpRoute.
            rpc :GetTcpRoute, ::Google::Cloud::NetworkServices::V1::GetTcpRouteRequest, ::Google::Cloud::NetworkServices::V1::TcpRoute
            # Creates a new TcpRoute in a given project and location.
            rpc :CreateTcpRoute, ::Google::Cloud::NetworkServices::V1::CreateTcpRouteRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single TcpRoute.
            rpc :UpdateTcpRoute, ::Google::Cloud::NetworkServices::V1::UpdateTcpRouteRequest, ::Google::Longrunning::Operation
            # Deletes a single TcpRoute.
            rpc :DeleteTcpRoute, ::Google::Cloud::NetworkServices::V1::DeleteTcpRouteRequest, ::Google::Longrunning::Operation
            # Lists TlsRoute in a given project and location.
            rpc :ListTlsRoutes, ::Google::Cloud::NetworkServices::V1::ListTlsRoutesRequest, ::Google::Cloud::NetworkServices::V1::ListTlsRoutesResponse
            # Gets details of a single TlsRoute.
            rpc :GetTlsRoute, ::Google::Cloud::NetworkServices::V1::GetTlsRouteRequest, ::Google::Cloud::NetworkServices::V1::TlsRoute
            # Creates a new TlsRoute in a given project and location.
            rpc :CreateTlsRoute, ::Google::Cloud::NetworkServices::V1::CreateTlsRouteRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single TlsRoute.
            rpc :UpdateTlsRoute, ::Google::Cloud::NetworkServices::V1::UpdateTlsRouteRequest, ::Google::Longrunning::Operation
            # Deletes a single TlsRoute.
            rpc :DeleteTlsRoute, ::Google::Cloud::NetworkServices::V1::DeleteTlsRouteRequest, ::Google::Longrunning::Operation
            # Lists ServiceBinding in a given project and location.
            rpc :ListServiceBindings, ::Google::Cloud::NetworkServices::V1::ListServiceBindingsRequest, ::Google::Cloud::NetworkServices::V1::ListServiceBindingsResponse
            # Gets details of a single ServiceBinding.
            rpc :GetServiceBinding, ::Google::Cloud::NetworkServices::V1::GetServiceBindingRequest, ::Google::Cloud::NetworkServices::V1::ServiceBinding
            # Creates a new ServiceBinding in a given project and location.
            rpc :CreateServiceBinding, ::Google::Cloud::NetworkServices::V1::CreateServiceBindingRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single ServiceBinding.
            rpc :UpdateServiceBinding, ::Google::Cloud::NetworkServices::V1::UpdateServiceBindingRequest, ::Google::Longrunning::Operation
            # Deletes a single ServiceBinding.
            rpc :DeleteServiceBinding, ::Google::Cloud::NetworkServices::V1::DeleteServiceBindingRequest, ::Google::Longrunning::Operation
            # Lists Meshes in a given project and location.
            rpc :ListMeshes, ::Google::Cloud::NetworkServices::V1::ListMeshesRequest, ::Google::Cloud::NetworkServices::V1::ListMeshesResponse
            # Gets details of a single Mesh.
            rpc :GetMesh, ::Google::Cloud::NetworkServices::V1::GetMeshRequest, ::Google::Cloud::NetworkServices::V1::Mesh
            # Creates a new Mesh in a given project and location.
            rpc :CreateMesh, ::Google::Cloud::NetworkServices::V1::CreateMeshRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Mesh.
            rpc :UpdateMesh, ::Google::Cloud::NetworkServices::V1::UpdateMeshRequest, ::Google::Longrunning::Operation
            # Deletes a single Mesh.
            rpc :DeleteMesh, ::Google::Cloud::NetworkServices::V1::DeleteMeshRequest, ::Google::Longrunning::Operation
            # Lists ServiceLbPolicies in a given project and location.
            rpc :ListServiceLbPolicies, ::Google::Cloud::NetworkServices::V1::ListServiceLbPoliciesRequest, ::Google::Cloud::NetworkServices::V1::ListServiceLbPoliciesResponse
            # Gets details of a single ServiceLbPolicy.
            rpc :GetServiceLbPolicy, ::Google::Cloud::NetworkServices::V1::GetServiceLbPolicyRequest, ::Google::Cloud::NetworkServices::V1::ServiceLbPolicy
            # Creates a new ServiceLbPolicy in a given project and location.
            rpc :CreateServiceLbPolicy, ::Google::Cloud::NetworkServices::V1::CreateServiceLbPolicyRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single ServiceLbPolicy.
            rpc :UpdateServiceLbPolicy, ::Google::Cloud::NetworkServices::V1::UpdateServiceLbPolicyRequest, ::Google::Longrunning::Operation
            # Deletes a single ServiceLbPolicy.
            rpc :DeleteServiceLbPolicy, ::Google::Cloud::NetworkServices::V1::DeleteServiceLbPolicyRequest, ::Google::Longrunning::Operation
            # Get a single RouteView of a Gateway.
            rpc :GetGatewayRouteView, ::Google::Cloud::NetworkServices::V1::GetGatewayRouteViewRequest, ::Google::Cloud::NetworkServices::V1::GatewayRouteView
            # Get a single RouteView of a Mesh.
            rpc :GetMeshRouteView, ::Google::Cloud::NetworkServices::V1::GetMeshRouteViewRequest, ::Google::Cloud::NetworkServices::V1::MeshRouteView
            # Lists RouteViews
            rpc :ListGatewayRouteViews, ::Google::Cloud::NetworkServices::V1::ListGatewayRouteViewsRequest, ::Google::Cloud::NetworkServices::V1::ListGatewayRouteViewsResponse
            # Lists RouteViews
            rpc :ListMeshRouteViews, ::Google::Cloud::NetworkServices::V1::ListMeshRouteViewsRequest, ::Google::Cloud::NetworkServices::V1::ListMeshRouteViewsResponse
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
