# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/gkemulticloud/v1/aws_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/aws_service_pb'

module Google
  module Cloud
    module GkeMultiCloud
      module V1
        module AwsClusters
          # The AwsClusters API provides a single centrally managed service
          # to create and manage Anthos clusters that run on AWS infrastructure.
          class Service

            include ::GRPC::GenericService

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

            # Creates a new [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]
            # 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 :CreateAwsCluster, ::Google::Cloud::GkeMultiCloud::V1::CreateAwsClusterRequest, ::Google::Longrunning::Operation
            # Updates an [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
            rpc :UpdateAwsCluster, ::Google::Cloud::GkeMultiCloud::V1::UpdateAwsClusterRequest, ::Google::Longrunning::Operation
            # Describes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]
            # resource.
            rpc :GetAwsCluster, ::Google::Cloud::GkeMultiCloud::V1::GetAwsClusterRequest, ::Google::Cloud::GkeMultiCloud::V1::AwsCluster
            # Lists all [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources
            # on a given Google Cloud project and region.
            rpc :ListAwsClusters, ::Google::Cloud::GkeMultiCloud::V1::ListAwsClustersRequest, ::Google::Cloud::GkeMultiCloud::V1::ListAwsClustersResponse
            # Deletes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]
            # resource.
            #
            # Fails if the cluster has one or more associated
            # [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources.
            #
            # 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 :DeleteAwsCluster, ::Google::Cloud::GkeMultiCloud::V1::DeleteAwsClusterRequest, ::Google::Longrunning::Operation
            # Generates an access token for a cluster agent.
            rpc :GenerateAwsClusterAgentToken, ::Google::Cloud::GkeMultiCloud::V1::GenerateAwsClusterAgentTokenRequest, ::Google::Cloud::GkeMultiCloud::V1::GenerateAwsClusterAgentTokenResponse
            # Generates a short-lived access token to authenticate to a given
            # [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource.
            rpc :GenerateAwsAccessToken, ::Google::Cloud::GkeMultiCloud::V1::GenerateAwsAccessTokenRequest, ::Google::Cloud::GkeMultiCloud::V1::GenerateAwsAccessTokenResponse
            # Creates a new [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool],
            # attached to a given [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
            #
            # 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 :CreateAwsNodePool, ::Google::Cloud::GkeMultiCloud::V1::CreateAwsNodePoolRequest, ::Google::Longrunning::Operation
            # Updates an [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool].
            rpc :UpdateAwsNodePool, ::Google::Cloud::GkeMultiCloud::V1::UpdateAwsNodePoolRequest, ::Google::Longrunning::Operation
            # Rolls back a previously aborted or failed
            # [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] update request.
            # Makes no changes if the last update request successfully finished.
            # If an update request is in progress, you cannot rollback the update.
            # You must first cancel or let it finish unsuccessfully before you can
            # rollback.
            rpc :RollbackAwsNodePoolUpdate, ::Google::Cloud::GkeMultiCloud::V1::RollbackAwsNodePoolUpdateRequest, ::Google::Longrunning::Operation
            # Describes a specific
            # [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource.
            rpc :GetAwsNodePool, ::Google::Cloud::GkeMultiCloud::V1::GetAwsNodePoolRequest, ::Google::Cloud::GkeMultiCloud::V1::AwsNodePool
            # Lists all [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]
            # resources on a given
            # [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
            rpc :ListAwsNodePools, ::Google::Cloud::GkeMultiCloud::V1::ListAwsNodePoolsRequest, ::Google::Cloud::GkeMultiCloud::V1::ListAwsNodePoolsResponse
            # Deletes a specific [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]
            # 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 :DeleteAwsNodePool, ::Google::Cloud::GkeMultiCloud::V1::DeleteAwsNodePoolRequest, ::Google::Longrunning::Operation
            # Gets the OIDC discovery document for the cluster.
            # See the
            # [OpenID Connect Discovery 1.0
            # specification](https://openid.net/specs/openid-connect-discovery-1_0.html)
            # for details.
            rpc :GetAwsOpenIdConfig, ::Google::Cloud::GkeMultiCloud::V1::GetAwsOpenIdConfigRequest, ::Google::Cloud::GkeMultiCloud::V1::AwsOpenIdConfig
            # Gets the public component of the cluster signing keys in
            # JSON Web Key format.
            rpc :GetAwsJsonWebKeys, ::Google::Cloud::GkeMultiCloud::V1::GetAwsJsonWebKeysRequest, ::Google::Cloud::GkeMultiCloud::V1::AwsJsonWebKeys
            # Returns information, such as supported AWS regions and Kubernetes
            # versions, on a given Google Cloud location.
            rpc :GetAwsServerConfig, ::Google::Cloud::GkeMultiCloud::V1::GetAwsServerConfigRequest, ::Google::Cloud::GkeMultiCloud::V1::AwsServerConfig
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
