# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/edgenetwork/v1/service.proto for package 'Google.Cloud.EdgeNetwork.V1'
# 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/cloud/edgenetwork/v1/service_pb'

module Google
  module Cloud
    module EdgeNetwork
      module V1
        module EdgeNetwork
          # EdgeNetwork API provides managed, highly available cloud dynamic network
          # configuration service to the GEC customer to enable edge application and
          # network function solutions. This allows the customers to easily define and
          # configure the network setup and property to meet the workload requirement.
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.edgenetwork.v1.EdgeNetwork'

            # InitializeZone will initialize resources for a zone in a project.
            rpc :InitializeZone, ::Google::Cloud::EdgeNetwork::V1::InitializeZoneRequest, ::Google::Cloud::EdgeNetwork::V1::InitializeZoneResponse
            # Deprecated: not implemented.
            # Lists Zones in a given project and location.
            rpc :ListZones, ::Google::Cloud::EdgeNetwork::V1::ListZonesRequest, ::Google::Cloud::EdgeNetwork::V1::ListZonesResponse
            # Deprecated: not implemented.
            # Gets details of a single Zone.
            rpc :GetZone, ::Google::Cloud::EdgeNetwork::V1::GetZoneRequest, ::Google::Cloud::EdgeNetwork::V1::Zone
            # Lists Networks in a given project and location.
            rpc :ListNetworks, ::Google::Cloud::EdgeNetwork::V1::ListNetworksRequest, ::Google::Cloud::EdgeNetwork::V1::ListNetworksResponse
            # Gets details of a single Network.
            rpc :GetNetwork, ::Google::Cloud::EdgeNetwork::V1::GetNetworkRequest, ::Google::Cloud::EdgeNetwork::V1::Network
            # Get the diagnostics of a single network resource.
            rpc :DiagnoseNetwork, ::Google::Cloud::EdgeNetwork::V1::DiagnoseNetworkRequest, ::Google::Cloud::EdgeNetwork::V1::DiagnoseNetworkResponse
            # Creates a new Network in a given project and location.
            rpc :CreateNetwork, ::Google::Cloud::EdgeNetwork::V1::CreateNetworkRequest, ::Google::Longrunning::Operation
            # Deletes a single Network.
            rpc :DeleteNetwork, ::Google::Cloud::EdgeNetwork::V1::DeleteNetworkRequest, ::Google::Longrunning::Operation
            # Lists Subnets in a given project and location.
            rpc :ListSubnets, ::Google::Cloud::EdgeNetwork::V1::ListSubnetsRequest, ::Google::Cloud::EdgeNetwork::V1::ListSubnetsResponse
            # Gets details of a single Subnet.
            rpc :GetSubnet, ::Google::Cloud::EdgeNetwork::V1::GetSubnetRequest, ::Google::Cloud::EdgeNetwork::V1::Subnet
            # Creates a new Subnet in a given project and location.
            rpc :CreateSubnet, ::Google::Cloud::EdgeNetwork::V1::CreateSubnetRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Subnet.
            rpc :UpdateSubnet, ::Google::Cloud::EdgeNetwork::V1::UpdateSubnetRequest, ::Google::Longrunning::Operation
            # Deletes a single Subnet.
            rpc :DeleteSubnet, ::Google::Cloud::EdgeNetwork::V1::DeleteSubnetRequest, ::Google::Longrunning::Operation
            # Lists Interconnects in a given project and location.
            rpc :ListInterconnects, ::Google::Cloud::EdgeNetwork::V1::ListInterconnectsRequest, ::Google::Cloud::EdgeNetwork::V1::ListInterconnectsResponse
            # Gets details of a single Interconnect.
            rpc :GetInterconnect, ::Google::Cloud::EdgeNetwork::V1::GetInterconnectRequest, ::Google::Cloud::EdgeNetwork::V1::Interconnect
            # Get the diagnostics of a single interconnect resource.
            rpc :DiagnoseInterconnect, ::Google::Cloud::EdgeNetwork::V1::DiagnoseInterconnectRequest, ::Google::Cloud::EdgeNetwork::V1::DiagnoseInterconnectResponse
            # Lists InterconnectAttachments in a given project and location.
            rpc :ListInterconnectAttachments, ::Google::Cloud::EdgeNetwork::V1::ListInterconnectAttachmentsRequest, ::Google::Cloud::EdgeNetwork::V1::ListInterconnectAttachmentsResponse
            # Gets details of a single InterconnectAttachment.
            rpc :GetInterconnectAttachment, ::Google::Cloud::EdgeNetwork::V1::GetInterconnectAttachmentRequest, ::Google::Cloud::EdgeNetwork::V1::InterconnectAttachment
            # Creates a new InterconnectAttachment in a given project and location.
            rpc :CreateInterconnectAttachment, ::Google::Cloud::EdgeNetwork::V1::CreateInterconnectAttachmentRequest, ::Google::Longrunning::Operation
            # Deletes a single InterconnectAttachment.
            rpc :DeleteInterconnectAttachment, ::Google::Cloud::EdgeNetwork::V1::DeleteInterconnectAttachmentRequest, ::Google::Longrunning::Operation
            # Lists Routers in a given project and location.
            rpc :ListRouters, ::Google::Cloud::EdgeNetwork::V1::ListRoutersRequest, ::Google::Cloud::EdgeNetwork::V1::ListRoutersResponse
            # Gets details of a single Router.
            rpc :GetRouter, ::Google::Cloud::EdgeNetwork::V1::GetRouterRequest, ::Google::Cloud::EdgeNetwork::V1::Router
            # Get the diagnostics of a single router resource.
            rpc :DiagnoseRouter, ::Google::Cloud::EdgeNetwork::V1::DiagnoseRouterRequest, ::Google::Cloud::EdgeNetwork::V1::DiagnoseRouterResponse
            # Creates a new Router in a given project and location.
            rpc :CreateRouter, ::Google::Cloud::EdgeNetwork::V1::CreateRouterRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Router.
            rpc :UpdateRouter, ::Google::Cloud::EdgeNetwork::V1::UpdateRouterRequest, ::Google::Longrunning::Operation
            # Deletes a single Router.
            rpc :DeleteRouter, ::Google::Cloud::EdgeNetwork::V1::DeleteRouterRequest, ::Google::Longrunning::Operation
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
