#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum IntegratedSystem {
Unspecified = 0,
Bigquery = 1,
CloudPubsub = 2,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SystemTimestamps {
#[prost(message, optional, tag = "1")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "2")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "3")]
pub expire_time: ::core::option::Option<::prost_types::Timestamp>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcsFilesetSpec {
#[prost(string, repeated, tag = "1")]
pub file_patterns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "2")]
pub sample_gcs_file_specs: ::prost::alloc::vec::Vec<GcsFileSpec>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcsFileSpec {
#[prost(string, tag = "1")]
pub file_path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub gcs_timestamps: ::core::option::Option<SystemTimestamps>,
#[prost(int64, tag = "4")]
pub size_bytes: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Schema {
#[prost(message, repeated, tag = "2")]
pub columns: ::prost::alloc::vec::Vec<ColumnSchema>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ColumnSchema {
#[prost(string, tag = "6")]
pub column: ::prost::alloc::string::String,
#[prost(string, tag = "1")]
pub r#type: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub mode: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "7")]
pub subcolumns: ::prost::alloc::vec::Vec<ColumnSchema>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SearchCatalogResult {
#[prost(enumeration = "SearchResultType", tag = "1")]
pub search_result_type: i32,
#[prost(string, tag = "2")]
pub search_result_subtype: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub relative_resource_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub linked_resource: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SearchResultType {
Unspecified = 0,
Entry = 1,
TagTemplate = 2,
EntryGroup = 3,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BigQueryTableSpec {
#[prost(enumeration = "TableSourceType", tag = "1")]
pub table_source_type: i32,
#[prost(oneof = "big_query_table_spec::TypeSpec", tags = "2, 3")]
pub type_spec: ::core::option::Option<big_query_table_spec::TypeSpec>,
}
pub mod big_query_table_spec {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TypeSpec {
#[prost(message, tag = "2")]
ViewSpec(super::ViewSpec),
#[prost(message, tag = "3")]
TableSpec(super::TableSpec),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ViewSpec {
#[prost(string, tag = "1")]
pub view_query: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TableSpec {
#[prost(string, tag = "1")]
pub grouped_entry: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BigQueryDateShardedSpec {
#[prost(string, tag = "1")]
pub dataset: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub table_prefix: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub shard_count: i64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TableSourceType {
Unspecified = 0,
BigqueryView = 2,
BigqueryTable = 5,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Tag {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub template: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub template_display_name: ::prost::alloc::string::String,
#[prost(map = "string, message", tag = "3")]
pub fields: ::std::collections::HashMap<::prost::alloc::string::String, TagField>,
#[prost(oneof = "tag::Scope", tags = "4")]
pub scope: ::core::option::Option<tag::Scope>,
}
pub mod tag {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Scope {
#[prost(string, tag = "4")]
Column(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TagField {
#[prost(string, tag = "1")]
pub display_name: ::prost::alloc::string::String,
#[prost(int32, tag = "7")]
pub order: i32,
#[prost(oneof = "tag_field::Kind", tags = "2, 3, 4, 5, 6")]
pub kind: ::core::option::Option<tag_field::Kind>,
}
pub mod tag_field {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EnumValue {
#[prost(string, tag = "1")]
pub display_name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Kind {
#[prost(double, tag = "2")]
DoubleValue(f64),
#[prost(string, tag = "3")]
StringValue(::prost::alloc::string::String),
#[prost(bool, tag = "4")]
BoolValue(bool),
#[prost(message, tag = "5")]
TimestampValue(::prost_types::Timestamp),
#[prost(message, tag = "6")]
EnumValue(EnumValue),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TagTemplate {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub display_name: ::prost::alloc::string::String,
#[prost(map = "string, message", tag = "3")]
pub fields: ::std::collections::HashMap<::prost::alloc::string::String, TagTemplateField>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TagTemplateField {
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "1")]
pub display_name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub r#type: ::core::option::Option<FieldType>,
#[prost(bool, tag = "3")]
pub is_required: bool,
#[prost(int32, tag = "5")]
pub order: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldType {
#[prost(oneof = "field_type::TypeDecl", tags = "1, 2")]
pub type_decl: ::core::option::Option<field_type::TypeDecl>,
}
pub mod field_type {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EnumType {
#[prost(message, repeated, tag = "1")]
pub allowed_values: ::prost::alloc::vec::Vec<enum_type::EnumValue>,
}
pub mod enum_type {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EnumValue {
#[prost(string, tag = "1")]
pub display_name: ::prost::alloc::string::String,
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PrimitiveType {
Unspecified = 0,
Double = 1,
String = 2,
Bool = 3,
Timestamp = 4,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TypeDecl {
#[prost(enumeration = "PrimitiveType", tag = "1")]
PrimitiveType(i32),
#[prost(message, tag = "2")]
EnumType(EnumType),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SearchCatalogRequest {
#[prost(message, optional, tag = "6")]
pub scope: ::core::option::Option<search_catalog_request::Scope>,
#[prost(string, tag = "1")]
pub query: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub order_by: ::prost::alloc::string::String,
}
pub mod search_catalog_request {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Scope {
#[prost(string, repeated, tag = "2")]
pub include_org_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "3")]
pub include_project_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag = "7")]
pub include_gcp_public_datasets: bool,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SearchCatalogResponse {
#[prost(message, repeated, tag = "1")]
pub results: ::prost::alloc::vec::Vec<SearchCatalogResult>,
#[prost(string, tag = "3")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateEntryGroupRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub entry_group_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub entry_group: ::core::option::Option<EntryGroup>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateEntryGroupRequest {
#[prost(message, optional, tag = "1")]
pub entry_group: ::core::option::Option<EntryGroup>,
#[prost(message, optional, tag = "2")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEntryGroupRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub read_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteEntryGroupRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub force: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEntryGroupsRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEntryGroupsResponse {
#[prost(message, repeated, tag = "1")]
pub entry_groups: ::prost::alloc::vec::Vec<EntryGroup>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateEntryRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub entry_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub entry: ::core::option::Option<Entry>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateEntryRequest {
#[prost(message, optional, tag = "1")]
pub entry: ::core::option::Option<Entry>,
#[prost(message, optional, tag = "2")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteEntryRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEntryRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LookupEntryRequest {
#[prost(oneof = "lookup_entry_request::TargetName", tags = "1, 3")]
pub target_name: ::core::option::Option<lookup_entry_request::TargetName>,
}
pub mod lookup_entry_request {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TargetName {
#[prost(string, tag = "1")]
LinkedResource(::prost::alloc::string::String),
#[prost(string, tag = "3")]
SqlResource(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Entry {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub linked_resource: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub description: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub schema: ::core::option::Option<Schema>,
#[prost(message, optional, tag = "7")]
pub source_system_timestamps: ::core::option::Option<SystemTimestamps>,
#[prost(oneof = "entry::EntryType", tags = "2, 16")]
pub entry_type: ::core::option::Option<entry::EntryType>,
#[prost(oneof = "entry::System", tags = "17, 18")]
pub system: ::core::option::Option<entry::System>,
#[prost(oneof = "entry::TypeSpec", tags = "6, 12, 15")]
pub type_spec: ::core::option::Option<entry::TypeSpec>,
}
pub mod entry {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum EntryType {
#[prost(enumeration = "super::EntryType", tag = "2")]
Type(i32),
#[prost(string, tag = "16")]
UserSpecifiedType(::prost::alloc::string::String),
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum System {
#[prost(enumeration = "super::IntegratedSystem", tag = "17")]
IntegratedSystem(i32),
#[prost(string, tag = "18")]
UserSpecifiedSystem(::prost::alloc::string::String),
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TypeSpec {
#[prost(message, tag = "6")]
GcsFilesetSpec(super::GcsFilesetSpec),
#[prost(message, tag = "12")]
BigqueryTableSpec(super::BigQueryTableSpec),
#[prost(message, tag = "15")]
BigqueryDateShardedSpec(super::BigQueryDateShardedSpec),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EntryGroup {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub description: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub data_catalog_timestamps: ::core::option::Option<SystemTimestamps>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateTagTemplateRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub tag_template_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub tag_template: ::core::option::Option<TagTemplate>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTagTemplateRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateTagTemplateRequest {
#[prost(message, optional, tag = "1")]
pub tag_template: ::core::option::Option<TagTemplate>,
#[prost(message, optional, tag = "2")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteTagTemplateRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub force: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateTagRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub tag: ::core::option::Option<Tag>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateTagRequest {
#[prost(message, optional, tag = "1")]
pub tag: ::core::option::Option<Tag>,
#[prost(message, optional, tag = "2")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteTagRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateTagTemplateFieldRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub tag_template_field_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub tag_template_field: ::core::option::Option<TagTemplateField>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateTagTemplateFieldRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub tag_template_field: ::core::option::Option<TagTemplateField>,
#[prost(message, optional, tag = "3")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenameTagTemplateFieldRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub new_tag_template_field_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteTagTemplateFieldRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub force: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTagsRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTagsResponse {
#[prost(message, repeated, tag = "1")]
pub tags: ::prost::alloc::vec::Vec<Tag>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEntriesRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub read_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEntriesResponse {
#[prost(message, repeated, tag = "1")]
pub entries: ::prost::alloc::vec::Vec<Entry>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EntryType {
Unspecified = 0,
Table = 2,
Model = 5,
DataStream = 3,
Fileset = 4,
}
#[doc = r" Generated client implementations."]
pub mod data_catalog_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[doc = " Data Catalog API service allows clients to discover, understand, and manage"]
#[doc = " their data."]
#[derive(Debug, Clone)]
pub struct DataCatalogClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> DataCatalogClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::ResponseBody: Body + Send + 'static,
T::Error: Into<StdError>,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> DataCatalogClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
Into<StdError> + Send + Sync,
{
DataCatalogClient::new(InterceptedService::new(inner, interceptor))
}
#[doc = r" Compress requests with `gzip`."]
#[doc = r""]
#[doc = r" This requires the server to support it otherwise it might respond with an"]
#[doc = r" error."]
pub fn send_gzip(mut self) -> Self {
self.inner = self.inner.send_gzip();
self
}
#[doc = r" Enable decompressing responses with `gzip`."]
pub fn accept_gzip(mut self) -> Self {
self.inner = self.inner.accept_gzip();
self
}
#[doc = " Searches Data Catalog for multiple resources like entries, tags that"]
#[doc = " match a query."]
#[doc = ""]
#[doc = " This is a custom method"]
#[doc = " (https://cloud.google.com/apis/design/custom_methods) and does not return"]
#[doc = " the complete resource, only the resource identifier and high level"]
#[doc = " fields. Clients can subsequentally call `Get` methods."]
#[doc = ""]
#[doc = " Note that Data Catalog search queries do not guarantee full recall. Query"]
#[doc = " results that match your query may not be returned, even in subsequent"]
#[doc = " result pages. Also note that results returned (and not returned) can vary"]
#[doc = " across repeated search queries."]
#[doc = ""]
#[doc = " See [Data Catalog Search"]
#[doc = " Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference)"]
#[doc = " for more information."]
pub async fn search_catalog(
&mut self,
request: impl tonic::IntoRequest<super::SearchCatalogRequest>,
) -> Result<tonic::Response<super::SearchCatalogResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/SearchCatalog",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " A maximum of 10,000 entry groups may be created per organization across all"]
#[doc = " locations."]
#[doc = ""]
#[doc = " Users should enable the Data Catalog API in the project identified by"]
#[doc = " the `parent` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn create_entry_group(
&mut self,
request: impl tonic::IntoRequest<super::CreateEntryGroupRequest>,
) -> Result<tonic::Response<super::EntryGroup>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/CreateEntryGroup",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates an EntryGroup. The user should enable the Data Catalog API in the"]
#[doc = " project identified by the `entry_group.name` parameter (see [Data Catalog"]
#[doc = " Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn update_entry_group(
&mut self,
request: impl tonic::IntoRequest<super::UpdateEntryGroupRequest>,
) -> Result<tonic::Response<super::EntryGroup>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/UpdateEntryGroup",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets an EntryGroup."]
pub async fn get_entry_group(
&mut self,
request: impl tonic::IntoRequest<super::GetEntryGroupRequest>,
) -> Result<tonic::Response<super::EntryGroup>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/GetEntryGroup",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes an EntryGroup. Only entry groups that do not contain entries can be"]
#[doc = " deleted. Users should enable the Data Catalog API in the project"]
#[doc = " identified by the `name` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn delete_entry_group(
&mut self,
request: impl tonic::IntoRequest<super::DeleteEntryGroupRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/DeleteEntryGroup",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists entry groups."]
pub async fn list_entry_groups(
&mut self,
request: impl tonic::IntoRequest<super::ListEntryGroupsRequest>,
) -> Result<tonic::Response<super::ListEntryGroupsResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/ListEntryGroups",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates an entry. Only entries of 'FILESET' type or user-specified type can"]
#[doc = " be created."]
#[doc = ""]
#[doc = " Users should enable the Data Catalog API in the project identified by"]
#[doc = " the `parent` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
#[doc = ""]
#[doc = " A maximum of 100,000 entries may be created per entry group."]
pub async fn create_entry(
&mut self,
request: impl tonic::IntoRequest<super::CreateEntryRequest>,
) -> Result<tonic::Response<super::Entry>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/CreateEntry",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates an existing entry."]
#[doc = " Users should enable the Data Catalog API in the project identified by"]
#[doc = " the `entry.name` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn update_entry(
&mut self,
request: impl tonic::IntoRequest<super::UpdateEntryRequest>,
) -> Result<tonic::Response<super::Entry>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/UpdateEntry",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes an existing entry. Only entries created through"]
#[doc = " [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]"]
#[doc = " method can be deleted."]
#[doc = " Users should enable the Data Catalog API in the project identified by"]
#[doc = " the `name` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn delete_entry(
&mut self,
request: impl tonic::IntoRequest<super::DeleteEntryRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/DeleteEntry",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets an entry."]
pub async fn get_entry(
&mut self,
request: impl tonic::IntoRequest<super::GetEntryRequest>,
) -> Result<tonic::Response<super::Entry>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/GetEntry",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Get an entry by target resource name. This method allows clients to use"]
#[doc = " the resource name from the source Google Cloud Platform service to get the"]
#[doc = " Data Catalog Entry."]
pub async fn lookup_entry(
&mut self,
request: impl tonic::IntoRequest<super::LookupEntryRequest>,
) -> Result<tonic::Response<super::Entry>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/LookupEntry",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists entries."]
pub async fn list_entries(
&mut self,
request: impl tonic::IntoRequest<super::ListEntriesRequest>,
) -> Result<tonic::Response<super::ListEntriesResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/ListEntries",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates a tag template. The user should enable the Data Catalog API in"]
#[doc = " the project identified by the `parent` parameter (see [Data Catalog"]
#[doc = " Resource"]
#[doc = " Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)"]
#[doc = " for more information)."]
pub async fn create_tag_template(
&mut self,
request: impl tonic::IntoRequest<super::CreateTagTemplateRequest>,
) -> Result<tonic::Response<super::TagTemplate>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/CreateTagTemplate",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets a tag template."]
pub async fn get_tag_template(
&mut self,
request: impl tonic::IntoRequest<super::GetTagTemplateRequest>,
) -> Result<tonic::Response<super::TagTemplate>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/GetTagTemplate",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates a tag template. This method cannot be used to update the fields of"]
#[doc = " a template. The tag template fields are represented as separate resources"]
#[doc = " and should be updated using their own create/update/delete methods."]
#[doc = " Users should enable the Data Catalog API in the project identified by"]
#[doc = " the `tag_template.name` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn update_tag_template(
&mut self,
request: impl tonic::IntoRequest<super::UpdateTagTemplateRequest>,
) -> Result<tonic::Response<super::TagTemplate>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/UpdateTagTemplate",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes a tag template and all tags using the template."]
#[doc = " Users should enable the Data Catalog API in the project identified by"]
#[doc = " the `name` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn delete_tag_template(
&mut self,
request: impl tonic::IntoRequest<super::DeleteTagTemplateRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/DeleteTagTemplate",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates a field in a tag template. The user should enable the Data Catalog"]
#[doc = " API in the project identified by the `parent` parameter (see"]
#[doc = " [Data Catalog Resource"]
#[doc = " Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)"]
#[doc = " for more information)."]
pub async fn create_tag_template_field(
&mut self,
request: impl tonic::IntoRequest<super::CreateTagTemplateFieldRequest>,
) -> Result<tonic::Response<super::TagTemplateField>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/CreateTagTemplateField",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates a field in a tag template. This method cannot be used to update the"]
#[doc = " field type. Users should enable the Data Catalog API in the project"]
#[doc = " identified by the `name` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn update_tag_template_field(
&mut self,
request: impl tonic::IntoRequest<super::UpdateTagTemplateFieldRequest>,
) -> Result<tonic::Response<super::TagTemplateField>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/UpdateTagTemplateField",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Renames a field in a tag template. The user should enable the Data Catalog"]
#[doc = " API in the project identified by the `name` parameter (see [Data Catalog"]
#[doc = " Resource"]
#[doc = " Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)"]
#[doc = " for more information)."]
pub async fn rename_tag_template_field(
&mut self,
request: impl tonic::IntoRequest<super::RenameTagTemplateFieldRequest>,
) -> Result<tonic::Response<super::TagTemplateField>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/RenameTagTemplateField",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes a field in a tag template and all uses of that field."]
#[doc = " Users should enable the Data Catalog API in the project identified by"]
#[doc = " the `name` parameter (see [Data Catalog Resource Project]"]
#[doc = " (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for"]
#[doc = " more information)."]
pub async fn delete_tag_template_field(
&mut self,
request: impl tonic::IntoRequest<super::DeleteTagTemplateFieldRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/DeleteTagTemplateField",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry]."]
#[doc = " Note: The project identified by the `parent` parameter for the"]
#[doc = " [tag](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)"]
#[doc = " and the"]
#[doc = " [tag"]
#[doc = " template](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)"]
#[doc = " used to create the tag must be from the same organization."]
pub async fn create_tag(
&mut self,
request: impl tonic::IntoRequest<super::CreateTagRequest>,
) -> Result<tonic::Response<super::Tag>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/CreateTag",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates an existing tag."]
pub async fn update_tag(
&mut self,
request: impl tonic::IntoRequest<super::UpdateTagRequest>,
) -> Result<tonic::Response<super::Tag>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/UpdateTag",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes a tag."]
pub async fn delete_tag(
&mut self,
request: impl tonic::IntoRequest<super::DeleteTagRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/DeleteTag",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists the tags on an [Entry][google.cloud.datacatalog.v1beta1.Entry]."]
pub async fn list_tags(
&mut self,
request: impl tonic::IntoRequest<super::ListTagsRequest>,
) -> Result<tonic::Response<super::ListTagsResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/ListTags",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Sets the access control policy for a resource. Replaces any existing"]
#[doc = " policy."]
#[doc = " Supported resources are:"]
#[doc = " - Tag templates."]
#[doc = " - Entries."]
#[doc = " - Entry groups."]
#[doc = " Note, this method cannot be used to manage policies for BigQuery, Pub/Sub"]
#[doc = " and any external Google Cloud Platform resources synced to Data Catalog."]
#[doc = ""]
#[doc = " Callers must have following Google IAM permission"]
#[doc = " - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag"]
#[doc = " templates."]
#[doc = " - `datacatalog.entries.setIamPolicy` to set policies on entries."]
#[doc = " - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups."]
pub async fn set_iam_policy(
&mut self,
request: impl tonic::IntoRequest<super::super::super::super::iam::v1::SetIamPolicyRequest>,
) -> Result<tonic::Response<super::super::super::super::iam::v1::Policy>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/SetIamPolicy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets the access control policy for a resource. A `NOT_FOUND` error"]
#[doc = " is returned if the resource does not exist. An empty policy is returned"]
#[doc = " if the resource exists but does not have a policy set on it."]
#[doc = ""]
#[doc = " Supported resources are:"]
#[doc = " - Tag templates."]
#[doc = " - Entries."]
#[doc = " - Entry groups."]
#[doc = " Note, this method cannot be used to manage policies for BigQuery, Pub/Sub"]
#[doc = " and any external Google Cloud Platform resources synced to Data Catalog."]
#[doc = ""]
#[doc = " Callers must have following Google IAM permission"]
#[doc = " - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag"]
#[doc = " templates."]
#[doc = " - `datacatalog.entries.getIamPolicy` to get policies on entries."]
#[doc = " - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups."]
pub async fn get_iam_policy(
&mut self,
request: impl tonic::IntoRequest<super::super::super::super::iam::v1::GetIamPolicyRequest>,
) -> Result<tonic::Response<super::super::super::super::iam::v1::Policy>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/GetIamPolicy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Returns the caller's permissions on a resource."]
#[doc = " If the resource does not exist, an empty set of permissions is returned"]
#[doc = " (We don't return a `NOT_FOUND` error)."]
#[doc = ""]
#[doc = " Supported resources are:"]
#[doc = " - Tag templates."]
#[doc = " - Entries."]
#[doc = " - Entry groups."]
#[doc = " Note, this method cannot be used to manage policies for BigQuery, Pub/Sub"]
#[doc = " and any external Google Cloud Platform resources synced to Data Catalog."]
#[doc = ""]
#[doc = " A caller is not required to have Google IAM permission to make this"]
#[doc = " request."]
pub async fn test_iam_permissions(
&mut self,
request: impl tonic::IntoRequest<
super::super::super::super::iam::v1::TestIamPermissionsRequest,
>,
) -> Result<
tonic::Response<super::super::super::super::iam::v1::TestIamPermissionsResponse>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.DataCatalog/TestIamPermissions",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Taxonomy {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub description: ::prost::alloc::string::String,
#[prost(enumeration = "taxonomy::PolicyType", repeated, packed = "false", tag = "6")]
pub activated_policy_types: ::prost::alloc::vec::Vec<i32>,
}
pub mod taxonomy {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PolicyType {
Unspecified = 0,
FineGrainedAccessControl = 1,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PolicyTag {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub description: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub parent_policy_tag: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "5")]
pub child_policy_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateTaxonomyRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub taxonomy: ::core::option::Option<Taxonomy>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteTaxonomyRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateTaxonomyRequest {
#[prost(message, optional, tag = "1")]
pub taxonomy: ::core::option::Option<Taxonomy>,
#[prost(message, optional, tag = "2")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTaxonomiesRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTaxonomiesResponse {
#[prost(message, repeated, tag = "1")]
pub taxonomies: ::prost::alloc::vec::Vec<Taxonomy>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTaxonomyRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreatePolicyTagRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub policy_tag: ::core::option::Option<PolicyTag>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeletePolicyTagRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdatePolicyTagRequest {
#[prost(message, optional, tag = "1")]
pub policy_tag: ::core::option::Option<PolicyTag>,
#[prost(message, optional, tag = "2")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPolicyTagsRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPolicyTagsResponse {
#[prost(message, repeated, tag = "1")]
pub policy_tags: ::prost::alloc::vec::Vec<PolicyTag>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPolicyTagRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[doc = r" Generated client implementations."]
pub mod policy_tag_manager_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[doc = " The policy tag manager API service allows clients to manage their taxonomies"]
#[doc = " and policy tags."]
#[derive(Debug, Clone)]
pub struct PolicyTagManagerClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> PolicyTagManagerClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::ResponseBody: Body + Send + 'static,
T::Error: Into<StdError>,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> PolicyTagManagerClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
Into<StdError> + Send + Sync,
{
PolicyTagManagerClient::new(InterceptedService::new(inner, interceptor))
}
#[doc = r" Compress requests with `gzip`."]
#[doc = r""]
#[doc = r" This requires the server to support it otherwise it might respond with an"]
#[doc = r" error."]
pub fn send_gzip(mut self) -> Self {
self.inner = self.inner.send_gzip();
self
}
#[doc = r" Enable decompressing responses with `gzip`."]
pub fn accept_gzip(mut self) -> Self {
self.inner = self.inner.accept_gzip();
self
}
#[doc = " Creates a taxonomy in the specified project."]
pub async fn create_taxonomy(
&mut self,
request: impl tonic::IntoRequest<super::CreateTaxonomyRequest>,
) -> Result<tonic::Response<super::Taxonomy>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/CreateTaxonomy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes a taxonomy. This operation will also delete all"]
#[doc = " policy tags in this taxonomy along with their associated policies."]
pub async fn delete_taxonomy(
&mut self,
request: impl tonic::IntoRequest<super::DeleteTaxonomyRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/DeleteTaxonomy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates a taxonomy."]
pub async fn update_taxonomy(
&mut self,
request: impl tonic::IntoRequest<super::UpdateTaxonomyRequest>,
) -> Result<tonic::Response<super::Taxonomy>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/UpdateTaxonomy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists all taxonomies in a project in a particular location that the caller"]
#[doc = " has permission to view."]
pub async fn list_taxonomies(
&mut self,
request: impl tonic::IntoRequest<super::ListTaxonomiesRequest>,
) -> Result<tonic::Response<super::ListTaxonomiesResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/ListTaxonomies",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets a taxonomy."]
pub async fn get_taxonomy(
&mut self,
request: impl tonic::IntoRequest<super::GetTaxonomyRequest>,
) -> Result<tonic::Response<super::Taxonomy>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/GetTaxonomy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates a policy tag in the specified taxonomy."]
pub async fn create_policy_tag(
&mut self,
request: impl tonic::IntoRequest<super::CreatePolicyTagRequest>,
) -> Result<tonic::Response<super::PolicyTag>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/CreatePolicyTag",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes a policy tag. Also deletes all of its descendant policy tags."]
pub async fn delete_policy_tag(
&mut self,
request: impl tonic::IntoRequest<super::DeletePolicyTagRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/DeletePolicyTag",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates a policy tag."]
pub async fn update_policy_tag(
&mut self,
request: impl tonic::IntoRequest<super::UpdatePolicyTagRequest>,
) -> Result<tonic::Response<super::PolicyTag>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/UpdatePolicyTag",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists all policy tags in a taxonomy."]
pub async fn list_policy_tags(
&mut self,
request: impl tonic::IntoRequest<super::ListPolicyTagsRequest>,
) -> Result<tonic::Response<super::ListPolicyTagsResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/ListPolicyTags",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets a policy tag."]
pub async fn get_policy_tag(
&mut self,
request: impl tonic::IntoRequest<super::GetPolicyTagRequest>,
) -> Result<tonic::Response<super::PolicyTag>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/GetPolicyTag",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets the IAM policy for a taxonomy or a policy tag."]
pub async fn get_iam_policy(
&mut self,
request: impl tonic::IntoRequest<super::super::super::super::iam::v1::GetIamPolicyRequest>,
) -> Result<tonic::Response<super::super::super::super::iam::v1::Policy>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/GetIamPolicy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Sets the IAM policy for a taxonomy or a policy tag."]
pub async fn set_iam_policy(
&mut self,
request: impl tonic::IntoRequest<super::super::super::super::iam::v1::SetIamPolicyRequest>,
) -> Result<tonic::Response<super::super::super::super::iam::v1::Policy>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/SetIamPolicy",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Returns the permissions that a caller has on the specified taxonomy or"]
#[doc = " policy tag."]
pub async fn test_iam_permissions(
&mut self,
request: impl tonic::IntoRequest<
super::super::super::super::iam::v1::TestIamPermissionsRequest,
>,
) -> Result<
tonic::Response<super::super::super::super::iam::v1::TestIamPermissionsResponse>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManager/TestIamPermissions",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SerializedTaxonomy {
#[prost(string, tag = "1")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub policy_tags: ::prost::alloc::vec::Vec<SerializedPolicyTag>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SerializedPolicyTag {
#[prost(string, tag = "2")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub description: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "4")]
pub child_policy_tags: ::prost::alloc::vec::Vec<SerializedPolicyTag>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImportTaxonomiesRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(oneof = "import_taxonomies_request::Source", tags = "2")]
pub source: ::core::option::Option<import_taxonomies_request::Source>,
}
pub mod import_taxonomies_request {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Source {
#[prost(message, tag = "2")]
InlineSource(super::InlineSource),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InlineSource {
#[prost(message, repeated, tag = "1")]
pub taxonomies: ::prost::alloc::vec::Vec<SerializedTaxonomy>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImportTaxonomiesResponse {
#[prost(message, repeated, tag = "1")]
pub taxonomies: ::prost::alloc::vec::Vec<Taxonomy>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExportTaxonomiesRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "2")]
pub taxonomies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(oneof = "export_taxonomies_request::Destination", tags = "3")]
pub destination: ::core::option::Option<export_taxonomies_request::Destination>,
}
pub mod export_taxonomies_request {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Destination {
#[prost(bool, tag = "3")]
SerializedTaxonomies(bool),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExportTaxonomiesResponse {
#[prost(message, repeated, tag = "1")]
pub taxonomies: ::prost::alloc::vec::Vec<SerializedTaxonomy>,
}
#[doc = r" Generated client implementations."]
pub mod policy_tag_manager_serialization_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[doc = " Policy tag manager serialization API service allows clients to manipulate"]
#[doc = " their taxonomies and policy tags data with serialized format."]
#[derive(Debug, Clone)]
pub struct PolicyTagManagerSerializationClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> PolicyTagManagerSerializationClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::ResponseBody: Body + Send + 'static,
T::Error: Into<StdError>,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> PolicyTagManagerSerializationClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
Into<StdError> + Send + Sync,
{
PolicyTagManagerSerializationClient::new(InterceptedService::new(inner, interceptor))
}
#[doc = r" Compress requests with `gzip`."]
#[doc = r""]
#[doc = r" This requires the server to support it otherwise it might respond with an"]
#[doc = r" error."]
pub fn send_gzip(mut self) -> Self {
self.inner = self.inner.send_gzip();
self
}
#[doc = r" Enable decompressing responses with `gzip`."]
pub fn accept_gzip(mut self) -> Self {
self.inner = self.inner.accept_gzip();
self
}
#[doc = " Imports all taxonomies and their policy tags to a project as new"]
#[doc = " taxonomies."]
#[doc = ""]
#[doc = " This method provides a bulk taxonomy / policy tag creation using nested"]
#[doc = " proto structure."]
pub async fn import_taxonomies(
&mut self,
request: impl tonic::IntoRequest<super::ImportTaxonomiesRequest>,
) -> Result<tonic::Response<super::ImportTaxonomiesResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization/ImportTaxonomies",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Exports all taxonomies and their policy tags in a project."]
#[doc = ""]
#[doc = " This method generates SerializedTaxonomy protos with nested policy tags"]
#[doc = " that can be used as an input for future ImportTaxonomies calls."]
pub async fn export_taxonomies(
&mut self,
request: impl tonic::IntoRequest<super::ExportTaxonomiesRequest>,
) -> Result<tonic::Response<super::ExportTaxonomiesResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.datacatalog.v1beta1.PolicyTagManagerSerialization/ExportTaxonomies",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}