# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/bigtable/admin/v2/bigtable_table_admin.proto for package 'google.bigtable.admin.v2'
# Original file comments:
# Copyright 2018 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/bigtable/admin/v2/bigtable_table_admin_pb'

module Google
  module Bigtable
    module Admin
      module V2
        module BigtableTableAdmin
          # Service for creating, configuring, and deleting Cloud Bigtable tables.
          #
          #
          # Provides access to the table schemas only, not the data stored within
          # the tables.
          class Service

            include GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.bigtable.admin.v2.BigtableTableAdmin'

            # Creates a new table in the specified instance.
            # The table can be created with a full set of initial column families,
            # specified in the request.
            rpc :CreateTable, CreateTableRequest, Table
            # Creates a new table from the specified snapshot. The target table must
            # not exist. The snapshot and the table must be in the same instance.
            #
            # Note: This is a private alpha release of Cloud Bigtable snapshots. This
            # feature is not currently available to most Cloud Bigtable customers. This
            # feature might be changed in backward-incompatible ways and is not
            # recommended for production use. It is not subject to any SLA or deprecation
            # policy.
            rpc :CreateTableFromSnapshot, CreateTableFromSnapshotRequest, Google::Longrunning::Operation
            # Lists all tables served from a specified instance.
            rpc :ListTables, ListTablesRequest, ListTablesResponse
            # Gets metadata information about the specified table.
            rpc :GetTable, GetTableRequest, Table
            # Permanently deletes a specified table and all of its data.
            rpc :DeleteTable, DeleteTableRequest, Google::Protobuf::Empty
            # Performs a series of column family modifications on the specified table.
            # Either all or none of the modifications will occur before this method
            # returns, but data requests received prior to that point may see a table
            # where only some modifications have taken effect.
            rpc :ModifyColumnFamilies, ModifyColumnFamiliesRequest, Table
            # Permanently drop/delete a row range from a specified table. The request can
            # specify whether to delete all rows in a table, or only those that match a
            # particular prefix.
            rpc :DropRowRange, DropRowRangeRequest, Google::Protobuf::Empty
            # Generates a consistency token for a Table, which can be used in
            # CheckConsistency to check whether mutations to the table that finished
            # before this call started have been replicated. The tokens will be available
            # for 90 days.
            rpc :GenerateConsistencyToken, GenerateConsistencyTokenRequest, GenerateConsistencyTokenResponse
            # Checks replication consistency based on a consistency token, that is, if
            # replication has caught up based on the conditions specified in the token
            # and the check request.
            rpc :CheckConsistency, CheckConsistencyRequest, CheckConsistencyResponse
            # Creates a new snapshot in the specified cluster from the specified
            # source table. The cluster and the table must be in the same instance.
            #
            # Note: This is a private alpha release of Cloud Bigtable snapshots. This
            # feature is not currently available to most Cloud Bigtable customers. This
            # feature might be changed in backward-incompatible ways and is not
            # recommended for production use. It is not subject to any SLA or deprecation
            # policy.
            rpc :SnapshotTable, SnapshotTableRequest, Google::Longrunning::Operation
            # Gets metadata information about the specified snapshot.
            #
            # Note: This is a private alpha release of Cloud Bigtable snapshots. This
            # feature is not currently available to most Cloud Bigtable customers. This
            # feature might be changed in backward-incompatible ways and is not
            # recommended for production use. It is not subject to any SLA or deprecation
            # policy.
            rpc :GetSnapshot, GetSnapshotRequest, Snapshot
            # Lists all snapshots associated with the specified cluster.
            #
            # Note: This is a private alpha release of Cloud Bigtable snapshots. This
            # feature is not currently available to most Cloud Bigtable customers. This
            # feature might be changed in backward-incompatible ways and is not
            # recommended for production use. It is not subject to any SLA or deprecation
            # policy.
            rpc :ListSnapshots, ListSnapshotsRequest, ListSnapshotsResponse
            # Permanently deletes the specified snapshot.
            #
            # Note: This is a private alpha release of Cloud Bigtable snapshots. This
            # feature is not currently available to most Cloud Bigtable customers. This
            # feature might be changed in backward-incompatible ways and is not
            # recommended for production use. It is not subject to any SLA or deprecation
            # policy.
            rpc :DeleteSnapshot, DeleteSnapshotRequest, Google::Protobuf::Empty
            # Gets the access control policy for a table resource. Returns an empty
            # policy if an table exists but does not have a policy set.
            rpc :GetIamPolicy, Google::Iam::V1::GetIamPolicyRequest, Google::Iam::V1::Policy
            # Sets the access control policy on a table resource. Replaces any existing
            # policy.
            rpc :SetIamPolicy, Google::Iam::V1::SetIamPolicyRequest, Google::Iam::V1::Policy
            # Returns permissions that the caller has on the specified table resource.
            rpc :TestIamPermissions, Google::Iam::V1::TestIamPermissionsRequest, Google::Iam::V1::TestIamPermissionsResponse
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end