feat: Add Dataproc Metastore v1alpha API.

PiperOrigin-RevId: 323657371
pull/633/head
Google APIs 5 years ago committed by Copybara-Service
parent 74e8cf85f2
commit 1907f0fdbd
  1. 380
      google/cloud/metastore/v1alpha/BUILD.bazel
  2. 715
      google/cloud/metastore/v1alpha/metastore.proto
  3. 18
      google/cloud/metastore/v1alpha/metastore_gapic.yaml
  4. 38
      google/cloud/metastore/v1alpha/metastore_grpc_service_config.json
  5. 43
      google/cloud/metastore/v1alpha/metastore_v1alpha.yaml

@ -0,0 +1,380 @@
# This file was automatically generated by BuildFileGenerator
# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel
# Most of the manual changes to this file will be overwritten.
# It's **only** allowed to change the following rule attribute values:
# - names of *_gapic_assembly_* rules
# - certain parameters of *_gapic_library rules, including but not limited to:
# * extra_protoc_parameters
# * extra_protoc_file_parameters
# The complete list of preserved parameters can be found in the source code.
# This is an API workspace, having public visibility by default makes perfect sense.
package(default_visibility = ["//visibility:public"])
##############################################################################
# Common
##############################################################################
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
proto_library(
name = "metastore_proto",
srcs = [
"metastore.proto",
],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
"//google/api:resource_proto",
"//google/longrunning:operations_proto",
"@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
proto_library_with_info(
name = "metastore_proto_with_info",
deps = [
":metastore_proto",
"//google/cloud:common_resources_proto",
],
)
##############################################################################
# Java
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"java_gapic_assembly_gradle_pkg",
"java_gapic_library",
"java_gapic_test",
"java_grpc_library",
"java_proto_library",
)
java_proto_library(
name = "metastore_java_proto",
deps = [":metastore_proto"],
)
java_grpc_library(
name = "metastore_java_grpc",
srcs = [":metastore_proto"],
deps = [":metastore_java_proto"],
)
java_gapic_library(
name = "metastore_java_gapic",
src = ":metastore_proto_with_info",
gapic_yaml = "metastore_gapic.yaml",
grpc_service_config = "metastore_grpc_service_config.json",
package = "google.cloud.metastore.v1alpha",
service_yaml = "metastore_v1alpha.yaml",
test_deps = [
":metastore_java_grpc",
],
deps = [
":metastore_java_proto",
],
)
java_gapic_test(
name = "metastore_java_gapic_test_suite",
test_classes = [
"com.google.cloud.metastore.v1alpha.DataprocMetastoreClientTest",
],
runtime_deps = [":metastore_java_gapic_test"],
)
# Open Source Packages
java_gapic_assembly_gradle_pkg(
name = "google-cloud-metastore-v1alpha-java",
deps = [
":metastore_java_gapic",
":metastore_java_grpc",
":metastore_java_proto",
":metastore_proto",
],
)
##############################################################################
# Go
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"go_gapic_assembly_pkg",
"go_gapic_library",
"go_proto_library",
"go_test",
)
go_proto_library(
name = "metastore_go_proto",
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
importpath = "google.golang.org/genproto/googleapis/cloud/metastore/v1alpha",
protos = [":metastore_proto"],
deps = [
"//google/api:annotations_go_proto",
"//google/longrunning:longrunning_go_proto",
],
)
go_gapic_library(
name = "metastore_go_gapic",
srcs = [":metastore_proto_with_info"],
grpc_service_config = "metastore_grpc_service_config.json",
importpath = "cloud.google.com/go/metastore/apiv1alpha;metastore",
service_yaml = "metastore_v1alpha.yaml",
deps = [
":metastore_go_proto",
"//google/longrunning:longrunning_go_gapic",
"//google/longrunning:longrunning_go_proto",
"@com_google_cloud_go//longrunning:go_default_library",
],
)
go_test(
name = "metastore_go_gapic_test",
srcs = [":metastore_go_gapic_srcjar_test"],
embed = [":metastore_go_gapic"],
importpath = "cloud.google.com/go/metastore/apiv1alpha",
)
# Open Source Packages
go_gapic_assembly_pkg(
name = "gapi-cloud-metastore-v1alpha-go",
deps = [
":metastore_go_gapic",
":metastore_go_gapic_srcjar-test.srcjar",
":metastore_go_proto",
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"moved_proto_library",
"py_gapic_assembly_pkg",
"py_gapic_library",
"py_grpc_library",
"py_proto_library",
)
moved_proto_library(
name = "metastore_moved_proto",
srcs = [":metastore_proto"],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
"//google/api:resource_proto",
"//google/longrunning:operations_proto",
"@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
py_proto_library(
name = "metastore_py_proto",
plugin = "@protoc_docs_plugin//:docs_plugin",
deps = [":metastore_moved_proto"],
)
py_grpc_library(
name = "metastore_py_grpc",
srcs = [":metastore_moved_proto"],
deps = [":metastore_py_proto"],
)
py_gapic_library(
name = "metastore_py_gapic",
src = ":metastore_proto_with_info",
gapic_yaml = "metastore_gapic.yaml",
grpc_service_config = "metastore_grpc_service_config.json",
package = "google.cloud.metastore.v1alpha",
service_yaml = "metastore_v1alpha.yaml",
deps = [
":metastore_py_grpc",
":metastore_py_proto",
],
)
# Open Source Packages
py_gapic_assembly_pkg(
name = "metastore-v1alpha-py",
deps = [
":metastore_py_gapic",
":metastore_py_grpc",
":metastore_py_proto",
],
)
##############################################################################
# PHP
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"php_gapic_assembly_pkg",
"php_gapic_library",
"php_grpc_library",
"php_proto_library",
)
php_proto_library(
name = "metastore_php_proto",
deps = [":metastore_proto"],
)
php_grpc_library(
name = "metastore_php_grpc",
srcs = [":metastore_proto"],
deps = [":metastore_php_proto"],
)
php_gapic_library(
name = "metastore_php_gapic",
src = ":metastore_proto_with_info",
gapic_yaml = "metastore_gapic.yaml",
grpc_service_config = "metastore_grpc_service_config.json",
package = "google.cloud.metastore.v1alpha",
service_yaml = "metastore_v1alpha.yaml",
deps = [
":metastore_php_grpc",
":metastore_php_proto",
],
)
# Open Source Packages
php_gapic_assembly_pkg(
name = "google-cloud-metastore-v1alpha-php",
deps = [
":metastore_php_gapic",
":metastore_php_grpc",
":metastore_php_proto",
],
)
##############################################################################
# Node.js
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"nodejs_gapic_assembly_pkg",
"nodejs_gapic_library",
)
nodejs_gapic_library(
name = "metastore_nodejs_gapic",
src = ":metastore_proto_with_info",
grpc_service_config = "metastore_grpc_service_config.json",
package = "google.cloud.metastore.v1alpha",
service_yaml = "metastore_v1alpha.yaml",
deps = [],
)
nodejs_gapic_assembly_pkg(
name = "metastore-v1alpha-nodejs",
deps = [
":metastore_nodejs_gapic",
":metastore_proto",
],
)
##############################################################################
# Ruby
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"ruby_gapic_assembly_pkg",
"ruby_gapic_library",
"ruby_grpc_library",
"ruby_proto_library",
)
ruby_proto_library(
name = "metastore_ruby_proto",
deps = [":metastore_proto"],
)
ruby_grpc_library(
name = "metastore_ruby_grpc",
srcs = [":metastore_proto"],
deps = [":metastore_ruby_proto"],
)
ruby_gapic_library(
name = "metastore_ruby_gapic",
src = ":metastore_proto_with_info",
gapic_yaml = "metastore_gapic.yaml",
grpc_service_config = "metastore_grpc_service_config.json",
package = "google.cloud.metastore.v1alpha",
service_yaml = "metastore_v1alpha.yaml",
deps = [
":metastore_ruby_grpc",
":metastore_ruby_proto",
],
)
# Open Source Packages
ruby_gapic_assembly_pkg(
name = "google-cloud-metastore-v1alpha-ruby",
deps = [
":metastore_ruby_gapic",
":metastore_ruby_grpc",
":metastore_ruby_proto",
],
)
##############################################################################
# C#
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"csharp_gapic_assembly_pkg",
"csharp_gapic_library",
"csharp_grpc_library",
"csharp_proto_library",
)
csharp_proto_library(
name = "metastore_csharp_proto",
deps = [":metastore_proto"],
)
csharp_grpc_library(
name = "metastore_csharp_grpc",
srcs = [":metastore_proto"],
deps = [":metastore_csharp_proto"],
)
csharp_gapic_library(
name = "metastore_csharp_gapic",
src = ":metastore_proto_with_info",
gapic_yaml = "metastore_gapic.yaml",
grpc_service_config = "metastore_grpc_service_config.json",
package = "google.cloud.metastore.v1alpha",
service_yaml = "metastore_v1alpha.yaml",
deps = [
":metastore_csharp_grpc",
":metastore_csharp_proto",
],
)
# Open Source Packages
csharp_gapic_assembly_pkg(
name = "google-cloud-metastore-v1alpha-csharp",
deps = [
":metastore_csharp_gapic",
":metastore_csharp_grpc",
":metastore_csharp_proto",
],
)
##############################################################################
# C++
##############################################################################
# Put your C++ rules here

@ -0,0 +1,715 @@
// 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.
syntax = "proto3";
package google.cloud.metastore.v1alpha;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/metastore/v1alpha;metastore";
option java_multiple_files = true;
option java_outer_classname = "MetastoreProto";
option java_package = "com.google.cloud.metastore.v1alpha";
option (google.api.resource_definition) = {
type: "compute.googleapis.com/Network"
pattern: "projects/{project}/global/networks/{network}"
};
// Configures and manages metastore services.
// Metastore services are fully managed, highly available, auto-scaled,
// auto-healing, OSS-native deployments of technical metadata management
// software. Each metastore service exposes a network endpoint through which
// metadata queries are served. Metadata queries can originate from a variety
// of sources, including Apache Hive, Apache Presto, and Apache Spark.
//
// The Dataproc Metastore API defines the following resource model:
//
// * The service works with a collection of Google Cloud projects, named:
// `/projects/*`
// * Each project has a collection of available locations, named: `/locations/*`
// (a location must refer to a Google Cloud `region`)
// * Each location has a collection of services, named: `/services/*`
// * Dataproc Metastore services are resources with names of the form:
//
// `/projects/{project_id}/locations/{location_id}/services/{service_id}`.
service DataprocMetastore {
option (google.api.default_host) = "metastore.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Lists services in a project and location.
rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
option (google.api.http) = {
get: "/v1alpha/{parent=projects/*/locations/*}/services"
};
option (google.api.method_signature) = "parent";
}
// Gets the details of a single service.
rpc GetService(GetServiceRequest) returns (Service) {
option (google.api.http) = {
get: "/v1alpha/{name=projects/*/locations/*/services/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a metastore service in a project and location.
rpc CreateService(CreateServiceRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1alpha/{parent=projects/*/locations/*}/services"
body: "service"
};
option (google.api.method_signature) = "parent,service,service_id";
option (google.longrunning.operation_info) = {
response_type: "Service"
metadata_type: "OperationMetadata"
};
}
// Updates the parameters of a single service.
rpc UpdateService(UpdateServiceRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1alpha/{service.name=projects/*/locations/*/services/*}"
body: "service"
};
option (google.api.method_signature) = "service,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Service"
metadata_type: "OperationMetadata"
};
}
// Deletes a single service.
rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1alpha/{name=projects/*/locations/*/services/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Lists imports in a service.
rpc ListMetadataImports(ListMetadataImportsRequest) returns (ListMetadataImportsResponse) {
option (google.api.http) = {
get: "/v1alpha/{parent=projects/*/locations/*/services/*}/metadataImports"
};
option (google.api.method_signature) = "parent";
}
// Gets details of a single import.
rpc GetMetadataImport(GetMetadataImportRequest) returns (MetadataImport) {
option (google.api.http) = {
get: "/v1alpha/{name=projects/*/locations/*/services/*/metadataImports/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new MetadataImport in a given project and location.
rpc CreateMetadataImport(CreateMetadataImportRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1alpha/{parent=projects/*/locations/*/services/*}/metadataImports"
body: "metadata_import"
};
option (google.api.method_signature) = "parent,metadata_import,metadata_import_id";
option (google.longrunning.operation_info) = {
response_type: "MetadataImport"
metadata_type: "OperationMetadata"
};
}
// Updates a single import.
// Only the description field of MetadataImport is supported to be updated.
rpc UpdateMetadataImport(UpdateMetadataImportRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1alpha/{metadata_import.name=projects/*/locations/*/services/*/metadataImports/*}"
body: "metadata_import"
};
option (google.api.method_signature) = "metadata_import,update_mask";
option (google.longrunning.operation_info) = {
response_type: "MetadataImport"
metadata_type: "OperationMetadata"
};
}
}
// A managed metastore service that serves metadata queries.
message Service {
option (google.api.resource) = {
type: "metastore.googleapis.com/Service"
pattern: "projects/{project}/locations/{location}/services/{service}"
};
// The current state of the metastore service.
enum State {
// The state of the metastore service is unknown.
STATE_UNSPECIFIED = 0;
// The metastore service is in the process of being created.
CREATING = 1;
// The metastore service is running and ready to serve queries.
ACTIVE = 2;
// The metastore service is entering suspension. Its query-serving
// availability may cease unexpectedly.
SUSPENDING = 3;
// The metastore service is suspended and unable to serve queries.
SUSPENDED = 4;
// The metastore service is being updated. It remains usable but cannot
// accept additional update requests or be deleted at this time.
UPDATING = 5;
// The metastore service is undergoing deletion. It cannot be used.
DELETING = 6;
// The metastore service has encountered an error and cannot be used. The
// metastore service should be deleted.
ERROR = 7;
}
// Available service tiers.
enum Tier {
// The tier is not set.
TIER_UNSPECIFIED = 0;
// The enterprise tier combines a powerful metastore serving layer with a
// highly scalable data storage layer.
ENTERPRISE = 3;
}
// Immutable. The relative resource name of the metastore service, of the form:
//
// "projects/{project_id}/locations/{location_id}/services/{service_id}".
string name = 1 [(google.api.field_behavior) = IMMUTABLE];
// Output only. The time when the metastore service was created.
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time when the metastore service was last updated.
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// User-defined labels for the metastore service.
map<string, string> labels = 4;
// Configuration properties specific to the underlying metastore service
// technology (the software that serves metastore queries).
oneof metastore_config {
// Configuration information specific to running Hive metastore
// software as the metastore service.
HiveMetastoreConfig hive_metastore_config = 5;
}
// Immutable. The relative resource name of the VPC network on which the instance can be
// accessed. The network must belong to the same project as the metastore
// instance. It is specified in the following form:
//
// "projects/{project_id}/global/networks/{network_id}".
string network = 7 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.resource_reference) = {
type: "compute.googleapis.com/Network"
}
];
// Output only. The URI of the endpoint used to access the metastore service.
string endpoint_uri = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// The TCP port at which the metastore service is reached. Default: 9083.
int32 port = 9;
// Output only. The current state of the metastore service.
State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Additional information about the current state of the metastore service, if
// available.
string state_message = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A Cloud Storage URI (starting with `gs://`) that specifies where artifacts
// related to the metastore service are stored.
string artifact_gcs_uri = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// The tier of the service.
Tier tier = 13;
}
// Specifies configuration information specific to running Hive metastore
// software as the metastore service.
message HiveMetastoreConfig {
// Immutable. The Hive metastore schema version.
string version = 1 [(google.api.field_behavior) = IMMUTABLE];
// A mapping of Hive metastore configuration key-value pairs to apply to the
// Hive metastore (configured in `hive-site.xml`). The mappings
// override system defaults (some keys cannot be overridden).
map<string, string> config_overrides = 2;
// Information used to configure the Hive metastore service as a service
// principal in a Kerberos realm.
KerberosConfig kerberos_config = 3;
}
// Configuration information for a Kerberos principal.
message KerberosConfig {
// A Kerberos keytab file that can be used to authenticate a service principal
// with a Kerberos Key Distribution Center (KDC).
Secret keytab = 1;
// A Kerberos principal that exists in the both the keytab the KDC
// to authenticate as. A typical principal is of the form
// "primary/instance@REALM", but there is no exact format.
string principal = 2;
// A Cloud Storage URI that specifies the path to a
// krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf,
// although the file does not need to be named krb5.conf explicitly.
string krb5_config_gcs_uri = 3;
}
// A securely stored value.
message Secret {
oneof value {
// The relative resource name of a Secret Manager secret version, in the
// following form:
//
// "projects/{project_id}/secrets/{secret_id}/versions/{version_id}".
string cloud_secret = 2;
}
}
// A metastore resource that imports metadata.
message MetadataImport {
option (google.api.resource) = {
type: "metastore.googleapis.com/MetadataImport"
pattern: "projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}"
};
// A specification of the location of and metadata about a database dump from
// a relational database management system.
message DatabaseDump {
// The type of the database.
enum DatabaseType {
// The type of the source database is unknown.
DATABASE_TYPE_UNSPECIFIED = 0;
// The type of the source database is MySQL.
MYSQL = 1;
}
// The type of the database.
DatabaseType database_type = 1;
// A Cloud Storage object URI that specifies the source from which to
// import metadata. It must begin with `gs://`.
string gcs_uri = 2;
// The name of the source database.
string source_database = 3;
}
// The current state of the metadata import.
enum State {
// The state of the metadata import is unknown.
STATE_UNSPECIFIED = 0;
// The metadata import is running.
RUNNING = 1;
// The metadata import completed successfully.
SUCCEEDED = 2;
// The metadata import is being updated.
UPDATING = 3;
// The metadata import failed, and attempted metadata changes were rolled
// back.
FAILED = 4;
}
// Immutable. The relative resource name of the metadata import, of the form:
//
// "projects/{project_id}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}".
string name = 1 [(google.api.field_behavior) = IMMUTABLE];
// The description of the metadata import.
string description = 2;
// Output only. The time when the metadata import was created.
google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time when the metadata import was last updated.
google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The current state of the metadata import.
State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// The metadata to be imported.
oneof metadata {
// Immutable. A database dump from a pre-existing metastore's database.
DatabaseDump database_dump = 6 [(google.api.field_behavior) = IMMUTABLE];
}
}
// Request message for [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices].
message ListServicesRequest {
// Required. The relative resource name of the location of metastore services to
// list, in the following form:
//
// "projects/{project_id}/locations/{location_id}".
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Optional. The maximum number of services to return. The response may contain less
// than the maximum number. If unspecified, no more than 500 services are
// returned. The maximum value is 1000; values above 1000 are changed to 1000.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
// call. Provide this token to retrieve the subsequent page.
//
// To retrieve the first page, supply an empty page token.
//
// When paginating, other parameters provided to
// [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices] must match the call that provided the
// page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. The filter to apply to list results.
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Specify the ordering of results as described in
// [Sorting Order](/apis/design/design_patterns#sorting_order). If not
// specified, the results will be sorted in the default order.
string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices].
message ListServicesResponse {
// The services in the specified location.
repeated Service services = 1;
// A token that can be sent as `page_token` to retrieve the next page. If this
// field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations that could not be reached.
repeated string unreachable = 3;
}
// Request message for [DataprocMetastore.GetService][google.cloud.metastore.v1alpha.DataprocMetastore.GetService].
message GetServiceRequest {
// Required. The relative resource name of the metastore service to retrieve, in the
// following form:
//
// "projects/{project_id}/locations/{location_id}/services/{service_id}".
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "metastore.googleapis.com/Service"
}
];
}
// Request message for [DataprocMetastore.CreateService][google.cloud.metastore.v1alpha.DataprocMetastore.CreateService].
message CreateServiceRequest {
// Required. The relative resource name of the location in which to create a metastore
// service, in the following form:
//
// "projects/{project_id}/locations/{location_id}".
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The ID of the metastore service, which is used as the final
// component of the metastore service's name.
//
// This value must be between 1 and 64 characters long, begin with a
// letter, end with a letter or number, and consist of alpha-numeric
// ASCII characters or hyphens.
string service_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The Metastore service to create. The `name` field is
// ignored. The ID of the created metastore service must be provided in
// the request's `service_id` field.
Service service = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
// request if it has completed. The server will ignore subsequent requests
// that provide a duplicate request ID for at least 60 minutes after the first
// request.
//
// For example, if an initial request times out, followed by another request
// with the same request ID, the server ignores the second request to prevent
// the creation of duplicate commitments.
//
// The request ID must be a valid
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for [DataprocMetastore.UpdateService][google.cloud.metastore.v1alpha.DataprocMetastore.UpdateService].
message UpdateServiceRequest {
// Required. A field mask used to specify the fields to be overwritten in the
// metastore service resource by the update.
// Fields specified in the `update_mask` are relative to the resource (not
// to the full request). A field is overwritten if it is in the mask.
google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The metastore service to update. The server only merges fields
// in the service if they are specified in `update_mask`.
//
// The metastore service's `name` field is used to identify the metastore
// service to be updated.
Service service = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
// request if it has completed. The server will ignore subsequent requests
// that provide a duplicate request ID for at least 60 minutes after the first
// request.
//
// For example, if an initial request times out, followed by another request
// with the same request ID, the server ignores the second request to prevent
// the creation of duplicate commitments.
//
// The request ID must be a valid
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for [DataprocMetastore.DeleteService][google.cloud.metastore.v1alpha.DataprocMetastore.DeleteService].
message DeleteServiceRequest {
// Required. The relative resource name of the metastore service to delete, in the
// following form:
//
// "projects/{project_id}/locations/{location_id}/services/{service_id}".
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "metastore.googleapis.com/Service"
}
];
// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
// request if it has completed. The server will ignore subsequent requests
// that provide a duplicate request ID for at least 60 minutes after the first
// request.
//
// For example, if an initial request times out, followed by another request
// with the same request ID, the server ignores the second request to prevent
// the creation of duplicate commitments.
//
// The request ID must be a valid
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for [DataprocMetastore.ListMetadataImports][google.cloud.metastore.v1alpha.DataprocMetastore.ListMetadataImports].
message ListMetadataImportsRequest {
// Required. The relative resource name of the service whose metadata imports to
// list, in the following form:
//
// "projects/{project_id}/locations/{location_id}/services/{service_id}/metadataImports".
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "metastore.googleapis.com/Service"
}
];
// Optional. The maximum number of imports to return. The response may contain less
// than the maximum number. If unspecified, no more than 500 imports are
// returned. The maximum value is 1000; values above 1000 are changed to 1000.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
// call. Provide this token to retrieve the subsequent page.
//
// To retrieve the first page, supply an empty page token.
//
// When paginating, other parameters provided to
// [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices] must match the call that provided the
// page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. The filter to apply to list results.
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Specify the ordering of results as described in
// [Sorting Order](/apis/design/design_patterns#sorting_order). If not
// specified, the results will be sorted in the default order.
string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for [DataprocMetastore.ListMetadataImports][google.cloud.metastore.v1alpha.DataprocMetastore.ListMetadataImports].
message ListMetadataImportsResponse {
// The imports in the specified service.
repeated MetadataImport metadata_imports = 1;
// A token that can be sent as `page_token` to retrieve the next page. If this
// field is omitted, there are no subsequent pages.
string next_page_token = 2;
// Locations that could not be reached.
repeated string unreachable = 3;
}
// Request message for [DataprocMetastore.GetMetadataImport][google.cloud.metastore.v1alpha.DataprocMetastore.GetMetadataImport].
message GetMetadataImportRequest {
// Required. The relative resource name of the metadata import to retrieve, in the
// following form:
//
// "projects/{project_id}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}".
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "metastore.googleapis.com/MetadataImport"
}
];
}
// Request message for [DataprocMetastore.CreateMetadataImport][google.cloud.metastore.v1alpha.DataprocMetastore.CreateMetadataImport].
message CreateMetadataImportRequest {
// Required. The relative resource name of the service in which to create a metastore
// import, in the following form:
//
// "projects/{project_id}/locations/{location_id}/services/{service_id}"
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "metastore.googleapis.com/Service"
}
];
// Required. The ID of the metadata import, which is used as the final component of the
// metadata import's name.
//
// This value must be between 1 and 64 characters long, begin with a letter,
// end with a letter or number, and consist of alpha-numeric ASCII characters
// or hyphens.
string metadata_import_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The metadata import to create. The `name` field is ignored. The ID of the
// created metadata import must be provided in the request's
// `metadata_import_id` field.
MetadataImport metadata_import = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
// request if it has completed. The server will ignore subsequent requests
// that provide a duplicate request ID for at least 60 minutes after the first
// request.
//
// For example, if an initial request times out, followed by another request
// with the same request ID, the server ignores the second request to prevent
// the creation of duplicate commitments.
//
// The request ID must be a valid
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for [DataprocMetastore.UpdateMetadataImport][google.cloud.metastore.v1alpha.DataprocMetastore.UpdateMetadataImport].
message UpdateMetadataImportRequest {
// Required. A field mask used to specify the fields to be overwritten in the
// metadata import resource by the update.
// Fields specified in the `update_mask` are relative to the resource (not
// to the full request). A field is overwritten if it is in the mask.
google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The metadata import to update. The server only merges fields
// in the import if they are specified in `update_mask`.
//
// The metadata import's `name` field is used to identify the metastore
// import to be updated.
MetadataImport metadata_import = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
// request if it has completed. The server will ignore subsequent requests
// that provide a duplicate request ID for at least 60 minutes after the first
// request.
//
// For example, if an initial request times out, followed by another request
// with the same request ID, the server ignores the second request to prevent
// the creation of duplicate commitments.
//
// The request ID must be a valid
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Represents the metadata of a long-running operation.
message OperationMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Server-defined resource path for the target of the operation.
string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Name of the verb executed by the operation.
string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Human-readable status of the operation, if any.
string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Identifies whether the caller has requested cancellation
// of the operation. Operations that have successfully been cancelled
// have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
// corresponding to `Code.CANCELLED`.
bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. API version used to start the operation.
string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Metadata about the service in a location.
message LocationMetadata {
// A specification of a supported version of the Hive Metastore software.
message HiveMetastoreVersion {
// The semantic version of the Hive Metastore software.
string version = 1;
// Whether `version` will be chosen by the server if a metastore service is
// created with a `HiveMetastoreConfig` that omits the `version`.
bool is_default = 2;
}
// The versions of Hive Metastore that can be used when creating a new
// metastore service in this location. The server guarantees that exactly one
// `HiveMetastoreVersion` in the list will set `is_default`.
repeated HiveMetastoreVersion supported_hive_metastore_versions = 1;
}

@ -0,0 +1,18 @@
type: com.google.api.codegen.ConfigProto
config_schema_version: 2.0.0
language_settings:
java:
package_name: com.google.cloud.metastore.v1alpha
python:
package_name: google.cloud.metastore_v1alph.gapic
go:
package_name: cloud.google.com/go/metastore/apiv1alpha
csharp:
package_name: Google.Cloud.Metastore.V1Alpha
ruby:
package_name: Google::Cloud::Metastore::V1alpha
php:
package_name: Google\Cloud\Metastore\V1alpha
nodejs:
package_name: metastore.v1alpha
domain_layer_location: google-cloud

@ -0,0 +1,38 @@
{
"methodConfig": [{
"name": [{ "service": "google.cloud.metastore.v1alpha.DataprocMetastore" }],
"timeout": "60s",
"retryPolicy": {
"maxAttempts": 5,
"initialBackoff": "1s",
"maxBackoff": "10s",
"backoffMultiplier": 1.3,
"retryableStatusCodes": ["UNAVAILABLE"]
}
},
{
"name": [
{
"service": "google.cloud.metastore.v1alpha.DataprocMetastore",
"method": "CreateService"
},
{
"service": "google.cloud.metastore.v1alpha.DataprocMetastore",
"method": "UpdateService"
},
{
"service": "google.cloud.metastore.v1alpha.DataprocMetastore",
"method": "DeleteService"
},
{
"service": "google.cloud.metastore.v1alpha.DataprocMetastore",
"method": "CreateMetadataImport"
},
{
"service": "google.cloud.metastore.v1alpha.DataprocMetastore",
"method": "UpdateMetadataImport"
}
],
"timeout": "60s"
}]
}

@ -0,0 +1,43 @@
type: google.api.Service
config_version: 3
name: metastore.googleapis.com
title: Dataproc Metastore API
apis:
- name: google.cloud.metastore.v1alpha.DataprocMetastore
types:
- name: google.cloud.metastore.v1alpha.LocationMetadata
- name: google.cloud.metastore.v1alpha.OperationMetadata
documentation:
summary: |-
The Dataproc Metastore API is used to manage the lifecycle and
configuration of metastore services.
backend:
rules:
- selector: 'google.cloud.metastore.v1alpha.DataprocMetastore.*'
deadline: 60.0
- selector: 'google.longrunning.Operations.*'
deadline: 60.0
http:
rules:
- selector: google.longrunning.Operations.DeleteOperation
delete: '/v1alpha/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.GetOperation
get: '/v1alpha/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.ListOperations
get: '/v1alpha/{name=projects/*/locations/*}/operations'
authentication:
rules:
- selector: 'google.cloud.metastore.v1alpha.DataprocMetastore.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.longrunning.Operations.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
Loading…
Cancel
Save