# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/iam/v1beta/workload_identity_pool.proto for package 'google.iam.v1beta'
# Original file comments:
# Copyright 2020 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/iam/v1beta/workload_identity_pool_pb'

module Google
  module Iam
    module V1beta
      module WorkloadIdentityPools
        # Manages WorkloadIdentityPools.
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'google.iam.v1beta.WorkloadIdentityPools'

          # Lists all non-deleted
          # [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool]s in a
          # project. If `show_deleted` is set to `true`, then deleted pools are also
          # listed.
          rpc :ListWorkloadIdentityPools, ::Google::Iam::V1beta::ListWorkloadIdentityPoolsRequest, ::Google::Iam::V1beta::ListWorkloadIdentityPoolsResponse
          # Gets an individual
          # [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
          rpc :GetWorkloadIdentityPool, ::Google::Iam::V1beta::GetWorkloadIdentityPoolRequest, ::Google::Iam::V1beta::WorkloadIdentityPool
          # Creates a new
          # [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
          #
          # You cannot reuse the name of a deleted pool until 30 days after deletion.
          rpc :CreateWorkloadIdentityPool, ::Google::Iam::V1beta::CreateWorkloadIdentityPoolRequest, ::Google::Longrunning::Operation
          # Updates an existing
          # [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
          rpc :UpdateWorkloadIdentityPool, ::Google::Iam::V1beta::UpdateWorkloadIdentityPoolRequest, ::Google::Longrunning::Operation
          # Deletes a
          # [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
          #
          # You cannot use a deleted pool to exchange external
          # credentials for Google Cloud credentials. However, deletion does
          # not revoke credentials that have already been issued.
          # Credentials issued for a deleted pool do not grant access to resources.
          # If the pool is undeleted, and the credentials are not expired, they
          # grant access again.
          # You can undelete a pool for 30 days. After 30 days, deletion is
          # permanent.
          # You cannot update deleted pools. However, you can view and list them.
          rpc :DeleteWorkloadIdentityPool, ::Google::Iam::V1beta::DeleteWorkloadIdentityPoolRequest, ::Google::Longrunning::Operation
          # Undeletes a [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool],
          # as long as it was deleted fewer than 30 days ago.
          rpc :UndeleteWorkloadIdentityPool, ::Google::Iam::V1beta::UndeleteWorkloadIdentityPoolRequest, ::Google::Longrunning::Operation
          # Lists all non-deleted
          # [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityPoolProvider]s
          # in a [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
          # If `show_deleted` is set to `true`, then deleted providers are also listed.
          rpc :ListWorkloadIdentityPoolProviders, ::Google::Iam::V1beta::ListWorkloadIdentityPoolProvidersRequest, ::Google::Iam::V1beta::ListWorkloadIdentityPoolProvidersResponse
          # Gets an individual
          # [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityPoolProvider].
          rpc :GetWorkloadIdentityPoolProvider, ::Google::Iam::V1beta::GetWorkloadIdentityPoolProviderRequest, ::Google::Iam::V1beta::WorkloadIdentityPoolProvider
          # Creates a new
          # [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider]
          # in a [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
          #
          # You cannot reuse the name of a deleted provider until 30 days after
          # deletion.
          rpc :CreateWorkloadIdentityPoolProvider, ::Google::Iam::V1beta::CreateWorkloadIdentityPoolProviderRequest, ::Google::Longrunning::Operation
          # Updates an existing
          # [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider].
          rpc :UpdateWorkloadIdentityPoolProvider, ::Google::Iam::V1beta::UpdateWorkloadIdentityPoolProviderRequest, ::Google::Longrunning::Operation
          # Deletes a
          # [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider].
          # Deleting a provider does not revoke credentials that have already been
          # issued; they continue to grant access.
          # You can undelete a provider for 30 days. After 30 days, deletion is
          # permanent.
          # You cannot update deleted providers. However, you can view and list them.
          rpc :DeleteWorkloadIdentityPoolProvider, ::Google::Iam::V1beta::DeleteWorkloadIdentityPoolProviderRequest, ::Google::Longrunning::Operation
          # Undeletes a
          # [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider],
          # as long as it was deleted fewer than 30 days ago.
          rpc :UndeleteWorkloadIdentityPoolProvider, ::Google::Iam::V1beta::UndeleteWorkloadIdentityPoolProviderRequest, ::Google::Longrunning::Operation
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
