# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/gkemulticloud/v1/attached_service.proto for package 'Google.Cloud.GkeMultiCloud.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/gkemulticloud/v1/attached_service_pb'

module Google
  module Cloud
    module GkeMultiCloud
      module V1
        module AttachedClusters
          # The AttachedClusters API provides a single centrally managed service
          # to register and manage Anthos attached clusters that run on customer's owned
          # infrastructure.
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.gkemulticloud.v1.AttachedClusters'

            # Creates a new
            # [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
            # on a given Google Cloud Platform project and region.
            #
            # If successful, the response contains a newly created
            # [Operation][google.longrunning.Operation] resource that can be
            # described to track the status of the operation.
            rpc :CreateAttachedCluster, ::Google::Cloud::GkeMultiCloud::V1::CreateAttachedClusterRequest, ::Google::Longrunning::Operation
            # Updates an
            # [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster].
            rpc :UpdateAttachedCluster, ::Google::Cloud::GkeMultiCloud::V1::UpdateAttachedClusterRequest, ::Google::Longrunning::Operation
            # Imports creates a new
            # [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
            # by importing an existing Fleet Membership resource.
            #
            # Attached Clusters created before the introduction of the Anthos Multi-Cloud
            # API can be imported through this method.
            #
            # If successful, the response contains a newly created
            # [Operation][google.longrunning.Operation] resource that can be
            # described to track the status of the operation.
            rpc :ImportAttachedCluster, ::Google::Cloud::GkeMultiCloud::V1::ImportAttachedClusterRequest, ::Google::Longrunning::Operation
            # Describes a specific
            # [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource.
            rpc :GetAttachedCluster, ::Google::Cloud::GkeMultiCloud::V1::GetAttachedClusterRequest, ::Google::Cloud::GkeMultiCloud::V1::AttachedCluster
            # Lists all [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster]
            # resources on a given Google Cloud project and region.
            rpc :ListAttachedClusters, ::Google::Cloud::GkeMultiCloud::V1::ListAttachedClustersRequest, ::Google::Cloud::GkeMultiCloud::V1::ListAttachedClustersResponse
            # Deletes a specific
            # [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource.
            #
            # If successful, the response contains a newly created
            # [Operation][google.longrunning.Operation] resource that can be
            # described to track the status of the operation.
            rpc :DeleteAttachedCluster, ::Google::Cloud::GkeMultiCloud::V1::DeleteAttachedClusterRequest, ::Google::Longrunning::Operation
            # Returns information, such as supported Kubernetes versions, on a given
            # Google Cloud location.
            rpc :GetAttachedServerConfig, ::Google::Cloud::GkeMultiCloud::V1::GetAttachedServerConfigRequest, ::Google::Cloud::GkeMultiCloud::V1::AttachedServerConfig
            # Generates the install manifest to be installed on the target cluster.
            rpc :GenerateAttachedClusterInstallManifest, ::Google::Cloud::GkeMultiCloud::V1::GenerateAttachedClusterInstallManifestRequest, ::Google::Cloud::GkeMultiCloud::V1::GenerateAttachedClusterInstallManifestResponse
            # Generates an access token for a cluster agent.
            rpc :GenerateAttachedClusterAgentToken, ::Google::Cloud::GkeMultiCloud::V1::GenerateAttachedClusterAgentTokenRequest, ::Google::Cloud::GkeMultiCloud::V1::GenerateAttachedClusterAgentTokenResponse
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
