# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/datacatalog/v1beta1/datacatalog.proto for package 'Google.Cloud.DataCatalog.V1beta1'
# 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/datacatalog/v1beta1/datacatalog_pb'

module Google
  module Cloud
    module DataCatalog
      module V1beta1
        module DataCatalog
          # Deprecated: Please use Dataplex Catalog instead.
          #
          # Data Catalog API service allows clients to discover, understand, and manage
          # their data.
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.datacatalog.v1beta1.DataCatalog'

            # Searches Data Catalog for multiple resources like entries, tags that
            # match a query.
            #
            # This is a custom method
            # (https://cloud.google.com/apis/design/custom_methods) and does not return
            # the complete resource, only the resource identifier and high level
            # fields. Clients can subsequently call `Get` methods.
            #
            # Note that Data Catalog search queries do not guarantee full recall. Query
            # results that match your query may not be returned, even in subsequent
            # result pages. Also note that results returned (and not returned) can vary
            # across repeated search queries.
            #
            # See [Data Catalog Search
            # Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference)
            # for more information.
            rpc :SearchCatalog, ::Google::Cloud::DataCatalog::V1beta1::SearchCatalogRequest, ::Google::Cloud::DataCatalog::V1beta1::SearchCatalogResponse
            # A maximum of 10,000 entry groups may be created per organization across all
            # locations.
            #
            # Users should enable the Data Catalog API in the project identified by
            # the `parent` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :CreateEntryGroup, ::Google::Cloud::DataCatalog::V1beta1::CreateEntryGroupRequest, ::Google::Cloud::DataCatalog::V1beta1::EntryGroup
            # Updates an EntryGroup. The user should enable the Data Catalog API in the
            # project identified by the `entry_group.name` parameter (see [Data Catalog
            # Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :UpdateEntryGroup, ::Google::Cloud::DataCatalog::V1beta1::UpdateEntryGroupRequest, ::Google::Cloud::DataCatalog::V1beta1::EntryGroup
            # Gets an EntryGroup.
            rpc :GetEntryGroup, ::Google::Cloud::DataCatalog::V1beta1::GetEntryGroupRequest, ::Google::Cloud::DataCatalog::V1beta1::EntryGroup
            # Deletes an EntryGroup. Only entry groups that do not contain entries can be
            # deleted. Users should enable the Data Catalog API in the project
            # identified by the `name` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :DeleteEntryGroup, ::Google::Cloud::DataCatalog::V1beta1::DeleteEntryGroupRequest, ::Google::Protobuf::Empty
            # Lists entry groups.
            rpc :ListEntryGroups, ::Google::Cloud::DataCatalog::V1beta1::ListEntryGroupsRequest, ::Google::Cloud::DataCatalog::V1beta1::ListEntryGroupsResponse
            # Creates an entry. Only entries of 'FILESET' type or user-specified type can
            # be created.
            #
            # Users should enable the Data Catalog API in the project identified by
            # the `parent` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            #
            # A maximum of 100,000 entries may be created per entry group.
            rpc :CreateEntry, ::Google::Cloud::DataCatalog::V1beta1::CreateEntryRequest, ::Google::Cloud::DataCatalog::V1beta1::Entry
            # Updates an existing entry.
            # Users should enable the Data Catalog API in the project identified by
            # the `entry.name` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :UpdateEntry, ::Google::Cloud::DataCatalog::V1beta1::UpdateEntryRequest, ::Google::Cloud::DataCatalog::V1beta1::Entry
            # Deletes an existing entry. Only entries created through
            # [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
            # method can be deleted.
            # Users should enable the Data Catalog API in the project identified by
            # the `name` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :DeleteEntry, ::Google::Cloud::DataCatalog::V1beta1::DeleteEntryRequest, ::Google::Protobuf::Empty
            # Gets an entry.
            rpc :GetEntry, ::Google::Cloud::DataCatalog::V1beta1::GetEntryRequest, ::Google::Cloud::DataCatalog::V1beta1::Entry
            # Get an entry by target resource name. This method allows clients to use
            # the resource name from the source Google Cloud Platform service to get the
            # Data Catalog Entry.
            rpc :LookupEntry, ::Google::Cloud::DataCatalog::V1beta1::LookupEntryRequest, ::Google::Cloud::DataCatalog::V1beta1::Entry
            # Lists entries.
            rpc :ListEntries, ::Google::Cloud::DataCatalog::V1beta1::ListEntriesRequest, ::Google::Cloud::DataCatalog::V1beta1::ListEntriesResponse
            # Creates a tag template. The user should enable the Data Catalog API in
            # the project identified by the `parent` parameter (see [Data Catalog
            # Resource
            # Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
            # for more information).
            rpc :CreateTagTemplate, ::Google::Cloud::DataCatalog::V1beta1::CreateTagTemplateRequest, ::Google::Cloud::DataCatalog::V1beta1::TagTemplate
            # Gets a tag template.
            rpc :GetTagTemplate, ::Google::Cloud::DataCatalog::V1beta1::GetTagTemplateRequest, ::Google::Cloud::DataCatalog::V1beta1::TagTemplate
            # Updates a tag template. This method cannot be used to update the fields of
            # a template. The tag template fields are represented as separate resources
            # and should be updated using their own create/update/delete methods.
            # Users should enable the Data Catalog API in the project identified by
            # the `tag_template.name` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :UpdateTagTemplate, ::Google::Cloud::DataCatalog::V1beta1::UpdateTagTemplateRequest, ::Google::Cloud::DataCatalog::V1beta1::TagTemplate
            # Deletes a tag template and all tags using the template.
            # Users should enable the Data Catalog API in the project identified by
            # the `name` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :DeleteTagTemplate, ::Google::Cloud::DataCatalog::V1beta1::DeleteTagTemplateRequest, ::Google::Protobuf::Empty
            # Creates a field in a tag template. The user should enable the Data Catalog
            # API in the project identified by the `parent` parameter (see
            # [Data Catalog Resource
            # Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
            # for more information).
            rpc :CreateTagTemplateField, ::Google::Cloud::DataCatalog::V1beta1::CreateTagTemplateFieldRequest, ::Google::Cloud::DataCatalog::V1beta1::TagTemplateField
            # Updates a field in a tag template. This method cannot be used to update the
            # field type. Users should enable the Data Catalog API in the project
            # identified by the `name` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :UpdateTagTemplateField, ::Google::Cloud::DataCatalog::V1beta1::UpdateTagTemplateFieldRequest, ::Google::Cloud::DataCatalog::V1beta1::TagTemplateField
            # Renames a field in a tag template. The user should enable the Data Catalog
            # API in the project identified by the `name` parameter (see [Data Catalog
            # Resource
            # Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
            # for more information).
            rpc :RenameTagTemplateField, ::Google::Cloud::DataCatalog::V1beta1::RenameTagTemplateFieldRequest, ::Google::Cloud::DataCatalog::V1beta1::TagTemplateField
            # Renames an enum value in a tag template. The enum values have to be unique
            # within one enum field. Thus, an enum value cannot be renamed with a name
            # used in any other enum value within the same enum field.
            rpc :RenameTagTemplateFieldEnumValue, ::Google::Cloud::DataCatalog::V1beta1::RenameTagTemplateFieldEnumValueRequest, ::Google::Cloud::DataCatalog::V1beta1::TagTemplateField
            # Deletes a field in a tag template and all uses of that field.
            # Users should enable the Data Catalog API in the project identified by
            # the `name` parameter (see [Data Catalog Resource Project]
            # (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
            # more information).
            rpc :DeleteTagTemplateField, ::Google::Cloud::DataCatalog::V1beta1::DeleteTagTemplateFieldRequest, ::Google::Protobuf::Empty
            # Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
            # Note: The project identified by the `parent` parameter for the
            # [tag](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
            # and the
            # [tag
            # template](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
            # used to create the tag must be from the same organization.
            rpc :CreateTag, ::Google::Cloud::DataCatalog::V1beta1::CreateTagRequest, ::Google::Cloud::DataCatalog::V1beta1::Tag
            # Updates an existing tag.
            rpc :UpdateTag, ::Google::Cloud::DataCatalog::V1beta1::UpdateTagRequest, ::Google::Cloud::DataCatalog::V1beta1::Tag
            # Deletes a tag.
            rpc :DeleteTag, ::Google::Cloud::DataCatalog::V1beta1::DeleteTagRequest, ::Google::Protobuf::Empty
            # Lists tags assigned to an [Entry][google.cloud.datacatalog.v1beta1.Entry].
            # The [columns][google.cloud.datacatalog.v1beta1.Tag.column] in the response
            # are lowercased.
            rpc :ListTags, ::Google::Cloud::DataCatalog::V1beta1::ListTagsRequest, ::Google::Cloud::DataCatalog::V1beta1::ListTagsResponse
            # Sets the access control policy for a resource. Replaces any existing
            # policy.
            # Supported resources are:
            #   - Tag templates.
            #   - Entries.
            #   - Entry groups.
            # Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
            # and any external Google Cloud Platform resources synced to Data Catalog.
            #
            # Callers must have following Google IAM permission
            #   - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
            #     templates.
            #   - `datacatalog.entries.setIamPolicy` to set policies on entries.
            #   - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
            rpc :SetIamPolicy, ::Google::Iam::V1::SetIamPolicyRequest, ::Google::Iam::V1::Policy
            # Gets the access control policy for a resource. A `NOT_FOUND` error
            # is returned if the resource does not exist. An empty policy is returned
            # if the resource exists but does not have a policy set on it.
            #
            # Supported resources are:
            #   - Tag templates.
            #   - Entries.
            #   - Entry groups.
            # Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
            # and any external Google Cloud Platform resources synced to Data Catalog.
            #
            # Callers must have following Google IAM permission
            #   - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
            #     templates.
            #   - `datacatalog.entries.getIamPolicy` to get policies on entries.
            #   - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
            rpc :GetIamPolicy, ::Google::Iam::V1::GetIamPolicyRequest, ::Google::Iam::V1::Policy
            # Returns the caller's permissions on a resource.
            # If the resource does not exist, an empty set of permissions is returned
            # (We don't return a `NOT_FOUND` error).
            #
            # Supported resources are:
            #   - Tag templates.
            #   - Entries.
            #   - Entry groups.
            # Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
            # and any external Google Cloud Platform resources synced to Data Catalog.
            #
            # A caller is not required to have Google IAM permission to make this
            # request.
            rpc :TestIamPermissions, ::Google::Iam::V1::TestIamPermissionsRequest, ::Google::Iam::V1::TestIamPermissionsResponse
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
