feat: Data Fusion public protos

Committer: @alexander-fenster
PiperOrigin-RevId: 382167046
pull/662/head
Google APIs 4 years ago committed by Copybara-Service
parent 513440fda5
commit 6797726dcf
  1. 337
      google/cloud/datafusion/v1/BUILD.bazel
  2. 519
      google/cloud/datafusion/v1/datafusion.proto
  3. 12
      google/cloud/datafusion/v1/datafusion_grpc_service_config.json
  4. 111
      google/cloud/datafusion/v1/datafusion_v1.yaml
  5. 344
      google/cloud/datafusion/v1beta1/BUILD.bazel
  6. 12
      google/cloud/datafusion/v1beta1/datafusion_grpc_service_config.json
  7. 119
      google/cloud/datafusion/v1beta1/datafusion_v1beta1.yaml
  8. 712
      google/cloud/datafusion/v1beta1/v1beta1.proto

@ -0,0 +1,337 @@
# This file was automatically generated by BuildFileGenerator
# https://github.com/googleapis/rules_gapic/tree/master/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 = "datafusion_proto",
srcs = [
"datafusion.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 = "datafusion_proto_with_info",
deps = [
":datafusion_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 = "datafusion_java_proto",
deps = [":datafusion_proto"],
)
java_grpc_library(
name = "datafusion_java_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_java_proto"],
)
java_gapic_library(
name = "datafusion_java_gapic",
srcs = [":datafusion_proto_with_info"],
grpc_service_config = "datafusion_grpc_service_config.json",
test_deps = [
":datafusion_java_grpc",
],
deps = [
":datafusion_java_proto",
],
)
java_gapic_test(
name = "datafusion_java_gapic_test_suite",
test_classes = [
"com.google.cloud.datafusion.v1.DataFusionClientTest",
],
runtime_deps = [":datafusion_java_gapic_test"],
)
# Open Source Packages
java_gapic_assembly_gradle_pkg(
name = "google-cloud-datafusion-v1-java",
deps = [
":datafusion_java_gapic",
":datafusion_java_grpc",
":datafusion_java_proto",
":datafusion_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 = "datafusion_go_proto",
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
importpath = "google.golang.org/genproto/googleapis/cloud/datafusion/v1",
protos = [":datafusion_proto"],
deps = [
"//google/api:annotations_go_proto",
"//google/longrunning:longrunning_go_proto",
],
)
go_gapic_library(
name = "datafusion_go_gapic",
srcs = [":datafusion_proto_with_info"],
grpc_service_config = "datafusion_grpc_service_config.json",
importpath = "cloud.google.com/go/datafusion/apiv1;datafusion",
metadata = True,
service_yaml = "datafusion_v1.yaml",
deps = [
":datafusion_go_proto",
"//google/longrunning:longrunning_go_proto",
"@com_google_cloud_go//longrunning:go_default_library",
"@com_google_cloud_go//longrunning/autogen:go_default_library",
],
)
go_test(
name = "datafusion_go_gapic_test",
srcs = [":datafusion_go_gapic_srcjar_test"],
embed = [":datafusion_go_gapic"],
importpath = "cloud.google.com/go/datafusion/apiv1",
)
# Open Source Packages
go_gapic_assembly_pkg(
name = "gapi-cloud-datafusion-v1-go",
deps = [
":datafusion_go_gapic",
":datafusion_go_gapic_srcjar-metadata.srcjar",
":datafusion_go_gapic_srcjar-test.srcjar",
":datafusion_go_proto",
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"py_gapic_assembly_pkg",
"py_gapic_library",
)
py_gapic_library(
name = "datafusion_py_gapic",
srcs = [":datafusion_proto"],
grpc_service_config = "datafusion_grpc_service_config.json",
)
# Open Source Packages
py_gapic_assembly_pkg(
name = "datafusion-v1-py",
deps = [
":datafusion_py_gapic",
],
)
##############################################################################
# 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 = "datafusion_php_proto",
deps = [":datafusion_proto"],
)
php_grpc_library(
name = "datafusion_php_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_php_proto"],
)
php_gapic_library(
name = "datafusion_php_gapic",
srcs = [":datafusion_proto_with_info"],
grpc_service_config = "datafusion_grpc_service_config.json",
service_yaml = "datafusion_v1.yaml",
deps = [
":datafusion_php_grpc",
":datafusion_php_proto",
],
)
# Open Source Packages
php_gapic_assembly_pkg(
name = "google-cloud-datafusion-v1-php",
deps = [
":datafusion_php_gapic",
":datafusion_php_grpc",
":datafusion_php_proto",
],
)
##############################################################################
# Node.js
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"nodejs_gapic_assembly_pkg",
"nodejs_gapic_library",
)
nodejs_gapic_library(
name = "datafusion_nodejs_gapic",
package_name = "@google-cloud/datafusion",
src = ":datafusion_proto_with_info",
extra_protoc_parameters = ["metadata"],
grpc_service_config = "datafusion_grpc_service_config.json",
package = "google.cloud.datafusion.v1",
service_yaml = "datafusion_v1.yaml",
deps = [],
)
nodejs_gapic_assembly_pkg(
name = "datafusion-v1-nodejs",
deps = [
":datafusion_nodejs_gapic",
":datafusion_proto",
],
)
##############################################################################
# Ruby
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"ruby_cloud_gapic_library",
"ruby_gapic_assembly_pkg",
"ruby_grpc_library",
"ruby_proto_library",
)
ruby_proto_library(
name = "datafusion_ruby_proto",
deps = [":datafusion_proto"],
)
ruby_grpc_library(
name = "datafusion_ruby_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_ruby_proto"],
)
ruby_cloud_gapic_library(
name = "datafusion_ruby_gapic",
srcs = [":datafusion_proto_with_info"],
extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-datafusion-v1"],
grpc_service_config = "datafusion_grpc_service_config.json",
deps = [
":datafusion_ruby_grpc",
":datafusion_ruby_proto",
],
)
# Open Source Packages
ruby_gapic_assembly_pkg(
name = "google-cloud-datafusion-v1-ruby",
deps = [
":datafusion_ruby_gapic",
":datafusion_ruby_grpc",
":datafusion_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 = "datafusion_csharp_proto",
deps = [":datafusion_proto"],
)
csharp_grpc_library(
name = "datafusion_csharp_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_csharp_proto"],
)
csharp_gapic_library(
name = "datafusion_csharp_gapic",
srcs = [":datafusion_proto_with_info"],
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
grpc_service_config = "datafusion_grpc_service_config.json",
deps = [
":datafusion_csharp_grpc",
":datafusion_csharp_proto",
],
)
# Open Source Packages
csharp_gapic_assembly_pkg(
name = "google-cloud-datafusion-v1-csharp",
deps = [
":datafusion_csharp_gapic",
":datafusion_csharp_grpc",
":datafusion_csharp_proto",
],
)
##############################################################################
# C++
##############################################################################
# Put your C++ rules here

@ -0,0 +1,519 @@
// Copyright 2021 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.datafusion.v1;
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 csharp_namespace = "Google.Cloud.DataFusion.V1";
option go_package = "google.golang.org/genproto/googleapis/cloud/datafusion/v1;datafusion";
option java_multiple_files = true;
option java_package = "com.google.cloud.datafusion.v1";
option php_namespace = "Google\\Cloud\\DataFusion\\V1";
option ruby_package = "Google::Cloud::DataFusion::V1";
// Service for creating and managing Data Fusion instances.
// Data Fusion enables ETL developers to build code-free, data integration
// pipelines via a point-and-click UI.
service DataFusion {
option (google.api.default_host) = "datafusion.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Lists possible versions for Data Fusion instances in the specified project
// and location.
rpc ListAvailableVersions(ListAvailableVersionsRequest)
returns (ListAvailableVersionsResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/versions"
};
option (google.api.method_signature) = "parent";
}
// Lists Data Fusion instances in the specified project and location.
rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/instances"
};
}
// Gets details of a single Data Fusion instance.
rpc GetInstance(GetInstanceRequest) returns (Instance) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/instances/*}"
};
}
// Creates a new Data Fusion instance in the specified project and location.
rpc CreateInstance(CreateInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/instances"
body: "instance"
};
option (google.api.method_signature) = "parent,instance,instance_id";
option (google.longrunning.operation_info) = {
response_type: "Instance"
metadata_type: "OperationMetadata"
};
}
// Deletes a single Date Fusion instance.
rpc DeleteInstance(DeleteInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/instances/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Updates a single Data Fusion instance.
rpc UpdateInstance(UpdateInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1/{instance.name=projects/*/locations/*/instances/*}"
body: "instance"
};
option (google.api.method_signature) = "instance,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Instance"
metadata_type: "OperationMetadata"
};
}
// Restart a single Data Fusion instance.
// At the end of an operation instance is fully restarted.
rpc RestartInstance(RestartInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{name=projects/*/locations/*/instances/*}:restart"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "Instance"
metadata_type: "OperationMetadata"
};
}
}
// Network configuration for a Data Fusion instance. These configurations
// are used for peering with the customer network. Configurations are optional
// when a public Data Fusion instance is to be created. However, providing
// these configurations allows several benefits, such as reduced network latency
// while accessing the customer resources from managed Data Fusion instance
// nodes, as well as access to the customer on-prem resources.
message NetworkConfig {
// Name of the network in the customer project with which the Tenant Project
// will be peered for executing pipelines. In case of shared VPC where the
// network resides in another host project the network should specified in
// the form of projects/{host-project-id}/global/networks/{network}
string network = 1;
// The IP range in CIDR notation to use for the managed Data Fusion instance
// nodes. This range must not overlap with any other ranges used in the
// customer network.
string ip_allocation = 2;
}
// The Data Fusion version. This proto message stores information about certain
// Data Fusion version, which is used for Data Fusion version upgrade.
message Version {
// The version number of the Data Fusion instance, such as '6.0.1.0'.
string version_number = 1;
// Whether this is currently the default version for Cloud Data Fusion
bool default_version = 2;
// Represents a list of available feature names for a given version.
repeated string available_features = 3;
}
// Identifies Data Fusion accelerators for an instance.
message Accelerator {
// Each type represents an Accelerator (Add-On) supported by Cloud Data Fusion
// service.
enum AcceleratorType {
// Default value, if unspecified.
ACCELERATOR_TYPE_UNSPECIFIED = 0;
// Change Data Capture accelerator for CDF.
CDC = 1;
// Cloud Healthcare accelerator for CDF. This accelerator is to enable Cloud
// Healthcare specific CDF plugins developed by Healthcare team.
HEALTHCARE = 2;
// Contact Center AI Insights
// This accelerator is used to enable import and export pipelines
// custom built to streamline CCAI Insights processing.
CCAI_INSIGHTS = 3;
}
// Different values possible for the state of an accelerator
enum State {
// Default value, do not use
STATE_UNSPECIFIED = 0;
// Indicates that the accelerator is enabled and available to use
ENABLED = 1;
// Indicates that the accelerator is disabled and not available to use
DISABLED = 2;
// Indicates that accelerator state is currently unknown.
// Requests for enable, disable could be retried while in this state
UNKNOWN = 3;
}
// The type of an accelator for a CDF instance.
AcceleratorType accelerator_type = 1;
// The state of the accelerator
State state = 2;
}
// The crypto key configuration. This field is used by the Customer-managed
// encryption keys (CMEK) feature.
message CryptoKeyConfig {
// The name of the key which is used to encrypt/decrypt customer data. For key
// in Cloud KMS, the key should be in the format of
// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
string key_reference = 1;
}
// Represents a Data Fusion instance.
message Instance {
option (google.api.resource) = {
type: "datafusion.googleapis.com/Instance"
pattern: "projects/{project}/locations/{location}/instances/{instance}"
};
// Represents the type of Data Fusion instance. Each type is configured with
// the default settings for processing and memory.
enum Type {
// No type specified. The instance creation will fail.
TYPE_UNSPECIFIED = 0;
// Basic Data Fusion instance. In Basic type, the user will be able to
// create data pipelines using point and click UI. However, there are
// certain limitations, such as fewer number of concurrent pipelines, no
// support for streaming pipelines, etc.
BASIC = 1;
// Enterprise Data Fusion instance. In Enterprise type, the user will have
// all features available, such as support for streaming pipelines, higher
// number of concurrent pipelines, etc.
ENTERPRISE = 2;
// Developer Data Fusion instance. In Developer type, the user will have all
// features available but with restrictive capabilities. This is to help
// enterprises design and develop their data ingestion and integration
// pipelines at low cost.
DEVELOPER = 3;
}
// Represents the state of a Data Fusion instance
enum State {
// Instance does not have a state yet
STATE_UNSPECIFIED = 0;
// Instance is being created
CREATING = 1;
// Instance is active and ready for requests. This corresponds to 'RUNNING'
// in datafusion.v1beta1.
ACTIVE = 2;
// Instance creation failed
FAILED = 3;
// Instance is being deleted
DELETING = 4;
// Instance is being upgraded
UPGRADING = 5;
// Instance is being restarted
RESTARTING = 6;
// Instance is being updated on customer request
UPDATING = 7;
// Instance is being auto-updated
AUTO_UPDATING = 8;
// Instance is being auto-upgraded
AUTO_UPGRADING = 9;
}
// Output only. The name of this instance is in the form of
// projects/{project}/locations/{location}/instances/{instance}.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// A description of this instance.
string description = 2;
// Required. Instance type.
Type type = 3 [(google.api.field_behavior) = REQUIRED];
// Option to enable Stackdriver Logging.
bool enable_stackdriver_logging = 4;
// Option to enable Stackdriver Monitoring.
bool enable_stackdriver_monitoring = 5;
// Specifies whether the Data Fusion instance should be private. If set to
// true, all Data Fusion nodes will have private IP addresses and will not be
// able to access the public internet.
bool private_instance = 6;
// Network configuration options. These are required when a private Data
// Fusion instance is to be created.
NetworkConfig network_config = 7;
// The resource labels for instance to use to annotate any related underlying
// resources such as Compute Engine VMs. The character '=' is not allowed to
// be used within the labels.
map<string, string> labels = 8;
// Map of additional options used to configure the behavior of
// Data Fusion instance.
map<string, string> options = 9;
// Output only. The time the instance was created.
google.protobuf.Timestamp create_time = 10
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the instance was last updated.
google.protobuf.Timestamp update_time = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The current state of this Data Fusion instance.
State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Additional information about the current state of this Data
// Fusion instance if available.
string state_message = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Endpoint on which the Data Fusion UI is accessible.
string service_endpoint = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
// Name of the zone in which the Data Fusion instance will be created. Only
// DEVELOPER instances use this field.
string zone = 15;
// Current version of the Data Fusion. Only specifiable in Update.
string version = 16;
// Output only. Deprecated. Use tenant_project_id instead to extract the
// tenant project ID.
string service_account = 17
[deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY];
// Display name for an instance.
string display_name = 18;
// Available versions that the instance can be upgraded to using
// UpdateInstanceRequest.
repeated Version available_version = 19;
// Output only. Endpoint on which the REST APIs is accessible.
string api_endpoint = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Cloud Storage bucket generated by Data Fusion in the customer
// project.
string gcs_bucket = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
// List of accelerators enabled for this CDF instance.
repeated Accelerator accelerators = 22;
// Output only. P4 service account for the customer project.
string p4_service_account = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The name of the tenant project.
string tenant_project_id = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
// User-managed service account to set on Dataproc when Cloud Data Fusion
// creates Dataproc to run data processing pipelines.
//
// This allows users to have fine-grained access control on Dataproc's
// accesses to cloud resources.
string dataproc_service_account = 25;
// Option to enable granular role-based access control.
bool enable_rbac = 27;
// The crypto key configuration. This field is used by the Customer-Managed
// Encryption Keys (CMEK) feature.
CryptoKeyConfig crypto_key_config = 28;
}
// Request message for listing Data Fusion instances.
message ListInstancesRequest {
// The project and location for which to retrieve instance information
// in the format projects/{project}/locations/{location}. If the location is
// specified as '-' (wildcard), then all regions available to the project
// are queried, and the results are aggregated.
string parent = 1;
// The maximum number of items to return.
int32 page_size = 2;
// The next_page_token value to use if there are additional
// results to retrieve for this list request.
string page_token = 3;
// List filter.
string filter = 4;
// Sort results. Supported values are "name", "name desc", or "" (unsorted).
string order_by = 5;
}
// Response message for the list instance request.
message ListInstancesResponse {
// Represents a list of Data Fusion instances.
repeated Instance instances = 1;
// Token to retrieve the next page of results or empty if there are no more
// results in the list.
string next_page_token = 2;
// Locations that could not be reached.
repeated string unreachable = 3;
}
// Request message for the list available versions request.
message ListAvailableVersionsRequest {
// Required. The project and location for which to retrieve instance
// information in the format projects/{project}/locations/{location}.
string parent = 1 [(google.api.field_behavior) = REQUIRED];
// The maximum number of items to return.
int32 page_size = 2;
// The next_page_token value to use if there are additional
// results to retrieve for this list request.
string page_token = 3;
// Whether or not to return the latest patch of every available minor version.
// If true, only the latest patch will be returned. Ex. if allowed versions is
// [6.1.1, 6.1.2, 6.2.0] then response will be [6.1.2, 6.2.0]
bool latest_patch_only = 4;
}
// Response message for the list available versions request.
message ListAvailableVersionsResponse {
// Represents a list of versions that are supported.
repeated Version available_versions = 1;
// Token to retrieve the next page of results or empty if there are no more
// results in the list.
string next_page_token = 2;
}
// Request message for getting details about a Data Fusion instance.
message GetInstanceRequest {
// The instance resource name in the format
// projects/{project}/locations/{location}/instances/{instance}.
string name = 1;
}
// Request message for creating a Data Fusion instance.
message CreateInstanceRequest {
// The instance's project and location in the format
// projects/{project}/locations/{location}.
string parent = 1;
// The name of the instance to create.
string instance_id = 2;
// An instance resource.
Instance instance = 3;
}
// Request message for deleting a Data Fusion instance.
message DeleteInstanceRequest {
// The instance resource name in the format
// projects/{project}/locations/{location}/instances/{instance}
string name = 1;
}
message UpdateInstanceRequest {
// The instance resource that replaces the resource on the server. Currently,
// Data Fusion only allows replacing labels, options, and stack driver
// settings. All other fields will be ignored.
Instance instance = 1;
// Field mask is used to specify the fields that the update will overwrite
// in an instance resource. The fields specified in the update_mask are
// relative to the resource, not the full request.
// A field will be overwritten if it is in the mask.
// If the user does not provide a mask, all the supported fields (labels,
// options, and version currently) will be overwritten.
google.protobuf.FieldMask update_mask = 2;
}
// Request message for restarting a Data Fusion instance.
message RestartInstanceRequest {
// Name of the Data Fusion instance which need to be restarted in the form of
// projects/{project}/locations/{location}/instances/{instance}
string name = 1;
}
// Represents the metadata of a long-running operation.
message OperationMetadata {
// The time the operation was created.
google.protobuf.Timestamp create_time = 1;
// The time the operation finished running.
google.protobuf.Timestamp end_time = 2;
// Server-defined resource path for the target of the operation.
string target = 3;
// Name of the verb executed by the operation.
string verb = 4;
// Human-readable status of the operation if any.
string status_detail = 5;
// Identifies whether the user 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;
// API version used to start the operation.
string api_version = 7;
// Map to hold any additional status info for the operation
// If there is an accelerator being enabled/disabled/deleted, this will be
// populated with accelerator name as key and status as
// ENABLING, DISABLING or DELETING
map<string, string> additional_status = 8;
}

@ -0,0 +1,12 @@
{
"methodConfig": [
{
"name": [
{
"service": "google.cloud.datafusion.v1.DataFusion"
}
],
"timeout": "60s"
}
]
}

@ -0,0 +1,111 @@
type: google.api.Service
config_version: 3
name: datafusion.googleapis.com
title: Cloud Data Fusion API
apis:
- name: google.cloud.datafusion.v1.DataFusion
types:
- name: google.cloud.datafusion.v1.OperationMetadata
documentation:
summary: |-
Cloud Data Fusion is a fully-managed, cloud native, enterprise data
integration service for quickly building and managing data pipelines.
It provides a graphical interface to increase time efficiency and
reduce complexity, and allows business users, developers, and data
scientists to easily and reliably build scalable data integration
solutions to cleanse, prepare, blend, transfer and transform data
without having to wrestle with infrastructure.
rules:
- selector: google.cloud.location.Locations.GetLocation
description: Gets information about a location.
- selector: google.cloud.location.Locations.ListLocations
description: Lists information about the supported locations for this service.
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
description: |-
Gets the access control policy for a resource. Returns an empty policy
if the resource exists and does not have a policy set.
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
description: |-
Sets the access control policy on the specified resource. Replaces
any existing policy.
Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
errors.
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
description: |-
Returns permissions that a caller has on the specified resource. If the
resource does not exist, this will return an empty set of
permissions, not a `NOT_FOUND` error.
Note: This operation is designed to be used for building
permission-aware UIs and command-line tools, not for authorization
checking. This operation may "fail open" without warning.
backend:
rules:
- selector: 'google.cloud.datafusion.v1.DataFusion.*'
deadline: 60.0
- selector: google.cloud.location.Locations.GetLocation
deadline: 60.0
- selector: google.cloud.location.Locations.ListLocations
deadline: 60.0
- selector: 'google.iam.v1.IAMPolicy.*'
deadline: 60.0
- selector: 'google.longrunning.Operations.*'
deadline: 60.0
- selector: google.longrunning.Operations.GetOperation
deadline: 5.0
http:
rules:
- selector: google.cloud.location.Locations.GetLocation
get: '/v1/{name=projects/*/locations/*}'
- selector: google.cloud.location.Locations.ListLocations
get: '/v1/{name=projects/*}/locations'
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
get: '/v1/{resource=projects/*/locations/*/instances/*}:getIamPolicy'
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
post: '/v1/{resource=projects/*/locations/*/instances/*}:setIamPolicy'
body: '*'
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
post: '/v1/{resource=projects/*/locations/*/instances/*}:testIamPermissions'
body: '*'
- selector: google.longrunning.Operations.CancelOperation
post: '/v1/{name=projects/*/locations/*/operations/*}:cancel'
body: '*'
- selector: google.longrunning.Operations.DeleteOperation
delete: '/v1/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.GetOperation
get: '/v1/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.ListOperations
get: '/v1/{name=projects/*/locations/*}/operations'
authentication:
rules:
- selector: 'google.cloud.datafusion.v1.DataFusion.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.GetLocation
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.ListLocations
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.iam.v1.IAMPolicy.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.longrunning.Operations.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform

@ -0,0 +1,344 @@
# This file was automatically generated by BuildFileGenerator
# https://github.com/googleapis/rules_gapic/tree/master/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 = "datafusion_proto",
srcs = [
"v1beta1.proto",
],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
"//google/api:resource_proto",
"//google/iam/v1:policy_proto",
"//google/longrunning:operations_proto",
"//google/rpc:status_proto",
"@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
proto_library_with_info(
name = "datafusion_proto_with_info",
deps = [
":datafusion_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 = "datafusion_java_proto",
deps = [":datafusion_proto"],
)
java_grpc_library(
name = "datafusion_java_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_java_proto"],
)
java_gapic_library(
name = "datafusion_java_gapic",
srcs = [":datafusion_proto_with_info"],
grpc_service_config = "datafusion_grpc_service_config.json",
test_deps = [
":datafusion_java_grpc",
"//google/iam/v1:iam_java_grpc",
],
deps = [
":datafusion_java_proto",
"//google/iam/v1:iam_java_proto",
],
)
java_gapic_test(
name = "datafusion_java_gapic_test_suite",
test_classes = [
"com.google.cloud.datafusion.v1beta1.DataFusionClientTest",
],
runtime_deps = [":datafusion_java_gapic_test"],
)
# Open Source Packages
java_gapic_assembly_gradle_pkg(
name = "google-cloud-datafusion-v1beta1-java",
deps = [
":datafusion_java_gapic",
":datafusion_java_grpc",
":datafusion_java_proto",
":datafusion_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 = "datafusion_go_proto",
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
importpath = "google.golang.org/genproto/googleapis/cloud/datafusion/v1beta1",
protos = [":datafusion_proto"],
deps = [
"//google/api:annotations_go_proto",
"//google/iam/v1:iam_go_proto",
"//google/longrunning:longrunning_go_proto",
"//google/rpc:status_go_proto",
],
)
go_gapic_library(
name = "datafusion_go_gapic",
srcs = [":datafusion_proto_with_info"],
grpc_service_config = "datafusion_grpc_service_config.json",
importpath = "cloud.google.com/go/datafusion/apiv1beta1;datafusion",
metadata = True,
service_yaml = "datafusion_v1beta1.yaml",
deps = [
":datafusion_go_proto",
"//google/iam/v1:iam_go_proto",
"//google/longrunning:longrunning_go_proto",
"@com_google_cloud_go//longrunning:go_default_library",
"@com_google_cloud_go//longrunning/autogen:go_default_library",
],
)
go_test(
name = "datafusion_go_gapic_test",
srcs = [":datafusion_go_gapic_srcjar_test"],
embed = [":datafusion_go_gapic"],
importpath = "cloud.google.com/go/datafusion/apiv1beta1",
)
# Open Source Packages
go_gapic_assembly_pkg(
name = "gapi-cloud-datafusion-v1beta1-go",
deps = [
":datafusion_go_gapic",
":datafusion_go_gapic_srcjar-metadata.srcjar",
":datafusion_go_gapic_srcjar-test.srcjar",
":datafusion_go_proto",
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"py_gapic_assembly_pkg",
"py_gapic_library",
)
py_gapic_library(
name = "datafusion_py_gapic",
srcs = [":datafusion_proto"],
grpc_service_config = "datafusion_grpc_service_config.json",
)
# Open Source Packages
py_gapic_assembly_pkg(
name = "datafusion-v1beta1-py",
deps = [
":datafusion_py_gapic",
],
)
##############################################################################
# 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 = "datafusion_php_proto",
deps = [":datafusion_proto"],
)
php_grpc_library(
name = "datafusion_php_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_php_proto"],
)
php_gapic_library(
name = "datafusion_php_gapic",
srcs = [":datafusion_proto_with_info"],
grpc_service_config = "datafusion_grpc_service_config.json",
service_yaml = "datafusion_v1beta1.yaml",
deps = [
":datafusion_php_grpc",
":datafusion_php_proto",
],
)
# Open Source Packages
php_gapic_assembly_pkg(
name = "google-cloud-datafusion-v1beta1-php",
deps = [
":datafusion_php_gapic",
":datafusion_php_grpc",
":datafusion_php_proto",
],
)
##############################################################################
# Node.js
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"nodejs_gapic_assembly_pkg",
"nodejs_gapic_library",
)
nodejs_gapic_library(
name = "datafusion_nodejs_gapic",
package_name = "@google-cloud/datafusion",
src = ":datafusion_proto_with_info",
extra_protoc_parameters = ["metadata"],
grpc_service_config = "datafusion_grpc_service_config.json",
package = "google.cloud.datafusion.v1beta1",
service_yaml = "datafusion_v1beta1.yaml",
deps = [],
)
nodejs_gapic_assembly_pkg(
name = "datafusion-v1beta1-nodejs",
deps = [
":datafusion_nodejs_gapic",
":datafusion_proto",
],
)
##############################################################################
# Ruby
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"ruby_cloud_gapic_library",
"ruby_gapic_assembly_pkg",
"ruby_grpc_library",
"ruby_proto_library",
)
ruby_proto_library(
name = "datafusion_ruby_proto",
deps = [":datafusion_proto"],
)
ruby_grpc_library(
name = "datafusion_ruby_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_ruby_proto"],
)
ruby_cloud_gapic_library(
name = "datafusion_ruby_gapic",
srcs = [":datafusion_proto_with_info"],
extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-datafusion-v1beta1"],
grpc_service_config = "datafusion_grpc_service_config.json",
deps = [
":datafusion_ruby_grpc",
":datafusion_ruby_proto",
],
)
# Open Source Packages
ruby_gapic_assembly_pkg(
name = "google-cloud-datafusion-v1beta1-ruby",
deps = [
":datafusion_ruby_gapic",
":datafusion_ruby_grpc",
":datafusion_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 = "datafusion_csharp_proto",
deps = [":datafusion_proto"],
)
csharp_grpc_library(
name = "datafusion_csharp_grpc",
srcs = [":datafusion_proto"],
deps = [":datafusion_csharp_proto"],
)
csharp_gapic_library(
name = "datafusion_csharp_gapic",
srcs = [":datafusion_proto_with_info"],
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
grpc_service_config = "datafusion_grpc_service_config.json",
deps = [
":datafusion_csharp_grpc",
":datafusion_csharp_proto",
],
)
# Open Source Packages
csharp_gapic_assembly_pkg(
name = "google-cloud-datafusion-v1beta1-csharp",
deps = [
":datafusion_csharp_gapic",
":datafusion_csharp_grpc",
":datafusion_csharp_proto",
],
)
##############################################################################
# C++
##############################################################################
# Put your C++ rules here

@ -0,0 +1,12 @@
{
"methodConfig": [
{
"name": [
{
"service": "google.cloud.datafusion.v1beta1.DataFusion"
}
],
"timeout": "60s"
}
]
}

@ -0,0 +1,119 @@
type: google.api.Service
config_version: 3
name: datafusion.googleapis.com
title: Cloud Data Fusion API
apis:
- name: google.cloud.datafusion.v1beta1.DataFusion
types:
- name: google.cloud.datafusion.v1beta1.OperationMetadata
documentation:
summary: |-
Cloud Data Fusion is a fully-managed, cloud native, enterprise data
integration service for quickly building and managing data pipelines.
It provides a graphical interface to increase time efficiency and
reduce complexity, and allows business users, developers, and data
scientists to easily and reliably build scalable data integration
solutions to cleanse, prepare, blend, transfer and transform data
without having to wrestle with infrastructure.
rules:
- selector: google.cloud.location.Locations.GetLocation
description: Gets information about a location.
- selector: google.cloud.location.Locations.ListLocations
description: Lists information about the supported locations for this service.
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
description: |-
Gets the access control policy for a resource. Returns an empty policy
if the resource exists and does not have a policy set.
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
description: |-
Sets the access control policy on the specified resource. Replaces
any existing policy.
Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
errors.
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
description: |-
Returns permissions that a caller has on the specified resource. If the
resource does not exist, this will return an empty set of
permissions, not a `NOT_FOUND` error.
Note: This operation is designed to be used for building
permission-aware UIs and command-line tools, not for authorization
checking. This operation may "fail open" without warning.
backend:
rules:
- selector: 'google.cloud.datafusion.v1beta1.DataFusion.*'
deadline: 60.0
- selector: google.cloud.location.Locations.GetLocation
deadline: 60.0
- selector: google.cloud.location.Locations.ListLocations
deadline: 60.0
- selector: 'google.iam.v1.IAMPolicy.*'
deadline: 60.0
- selector: 'google.longrunning.Operations.*'
deadline: 60.0
- selector: google.longrunning.Operations.GetOperation
deadline: 5.0
http:
rules:
- selector: google.cloud.location.Locations.GetLocation
get: '/v1beta1/{name=projects/*/locations/*}'
- selector: google.cloud.location.Locations.ListLocations
get: '/v1beta1/{name=projects/*}/locations'
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
get: '/v1beta1/{resource=projects/*/locations/*/instances/*}:getIamPolicy'
additional_bindings:
- get: '/v1beta1/{resource=projects/*/locations/*/instances/*/namespaces/*}:getIamPolicy'
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
post: '/v1beta1/{resource=projects/*/locations/*/instances/*}:setIamPolicy'
body: '*'
additional_bindings:
- post: '/v1beta1/{resource=projects/*/locations/*/instances/*/namespaces/*}:setIamPolicy'
body: '*'
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
post: '/v1beta1/{resource=projects/*/locations/*/instances/*}:testIamPermissions'
body: '*'
additional_bindings:
- post: '/v1beta1/{resource=projects/*/locations/*/instances/*/namespaces/*}:testIamPermissions'
body: '*'
- selector: google.longrunning.Operations.CancelOperation
post: '/v1beta1/{name=projects/*/locations/*/operations/*}:cancel'
body: '*'
- selector: google.longrunning.Operations.DeleteOperation
delete: '/v1beta1/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.GetOperation
get: '/v1beta1/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.ListOperations
get: '/v1beta1/{name=projects/*/locations/*}/operations'
authentication:
rules:
- selector: 'google.cloud.datafusion.v1beta1.DataFusion.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.GetLocation
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.ListLocations
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.iam.v1.IAMPolicy.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.longrunning.Operations.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform

@ -0,0 +1,712 @@
// Copyright 2021 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.datafusion.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/iam/v1/policy.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
option csharp_namespace = "Google.Cloud.DataFusion.V1Beta1";
option go_package = "google.golang.org/genproto/googleapis/cloud/datafusion/v1beta1;datafusion";
option java_multiple_files = true;
option java_package = "com.google.cloud.datafusion.v1beta1";
option php_namespace = "Google\\Cloud\\DataFusion\\V1beta1";
option ruby_package = "Google::Cloud::DataFusion::V1beta1";
// Service for creating and managing Data Fusion instances.
// Data Fusion enables ETL developers to build code-free, data integration
// pipelines via a point-and-click UI.
service DataFusion {
option (google.api.default_host) = "datafusion.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Lists possible versions for Data Fusion instances in the specified project
// and location.
rpc ListAvailableVersions(ListAvailableVersionsRequest)
returns (ListAvailableVersionsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/versions"
};
option (google.api.method_signature) = "parent";
}
// Lists Data Fusion instances in the specified project and location.
rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/instances"
};
}
// Gets details of a single Data Fusion instance.
rpc GetInstance(GetInstanceRequest) returns (Instance) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/instances/*}"
};
}
// Creates a new Data Fusion instance in the specified project and location.
rpc CreateInstance(CreateInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/instances"
body: "instance"
};
option (google.api.method_signature) = "parent,instance,instance_id";
option (google.longrunning.operation_info) = {
response_type: "Instance"
metadata_type: "OperationMetadata"
};
}
// Deletes a single Data Fusion instance.
rpc DeleteInstance(DeleteInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/instances/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Updates a single Data Fusion instance.
rpc UpdateInstance(UpdateInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta1/{instance.name=projects/*/locations/*/instances/*}"
body: "instance"
};
option (google.api.method_signature) = "instance,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Instance"
metadata_type: "OperationMetadata"
};
}
// Restart a single Data Fusion instance.
// At the end of an operation instance is fully restarted.
rpc RestartInstance(RestartInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/instances/*}:restart"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "Instance"
metadata_type: "OperationMetadata"
};
}
// Upgrade a single Data Fusion instance.
// At the end of an operation instance is fully upgraded.
rpc UpgradeInstance(UpgradeInstanceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/instances/*}:upgrade"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "Instance"
metadata_type: "OperationMetadata"
};
}
// Remove IAM policy that is currently set on the given resource.
rpc RemoveIamPolicy(RemoveIamPolicyRequest)
returns (RemoveIamPolicyResponse) {
option (google.api.http) = {
post: "/v1beta1/{resource=projects/*/locations/*/**}:removeIamPolicy"
body: "*"
};
}
// List namespaces in a given instance
rpc ListNamespaces(ListNamespacesRequest) returns (ListNamespacesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/namespaces"
};
option (google.api.method_signature) = "parent";
}
// Add DNS peering on the given resource.
rpc AddDnsPeering(AddDnsPeeringRequest) returns (AddDnsPeeringResponse) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:add"
body: "*"
};
option (google.api.method_signature) = "parent";
}
// Remove DNS peering on the given resource.
rpc RemoveDnsPeering(RemoveDnsPeeringRequest)
returns (RemoveDnsPeeringResponse) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:remove"
body: "*"
};
option (google.api.method_signature) = "parent";
}
// List DNS peering for a given resource.
rpc ListDnsPeerings(ListDnsPeeringsRequest)
returns (ListDnsPeeringsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:list"
};
option (google.api.method_signature) = "parent";
}
}
// Network configuration for a Data Fusion instance. These configurations
// are used for peering with the customer network. Configurations are optional
// when a public Data Fusion instance is to be created. However, providing
// these configurations allows several benefits, such as reduced network latency
// while accessing the customer resources from managed Data Fusion instance
// nodes, as well as access to the customer on-prem resources.
message NetworkConfig {
// Name of the network in the customer project with which the Tenant Project
// will be peered for executing pipelines. In case of shared VPC where the
// network resides in another host project the network should specified in
// the form of projects/{host-project-id}/global/networks/{network}
string network = 1;
// The IP range in CIDR notation to use for the managed Data Fusion instance
// nodes. This range must not overlap with any other ranges used in the Data
// Fusion instance network.
string ip_allocation = 2;
}
// The Data Fusion version.
message Version {
// The version number of the Data Fusion instance, such as '6.0.1.0'.
string version_number = 1;
// Whether this is currently the default version for Cloud Data Fusion
bool default_version = 2;
// Represents a list of available feature names for a given version.
repeated string available_features = 3;
}
// Identifies Data Fusion accelerators for an instance.
message Accelerator {
// Each type represents an Accelerator (Add-On) supported by Cloud Data Fusion
// service.
enum AcceleratorType {
// Default value, if unspecified.
ACCELERATOR_TYPE_UNSPECIFIED = 0;
// Change Data Capture accelerator for CDF.
CDC = 1;
// Cloud Healthcare accelerator for CDF. This accelerator is to enable Cloud
// Healthcare specific CDF plugins developed by Healthcare team.
HEALTHCARE = 2;
}
// The type of an accelator for a CDF instance.
AcceleratorType accelerator_type = 1;
}
// The crypto key configuration. This field is used by the Customer-managed
// encryption keys (CMEK) feature.
message CryptoKeyConfig {
// The name of the key which is used to encrypt/decrypt customer data. For key
// in Cloud KMS, the key should be in the format of
// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
string key_reference = 1;
}
// Represents a Data Fusion instance.
message Instance {
option (google.api.resource) = {
type: "datafusion.googleapis.com/Instance"
pattern: "projects/{project}/locations/{location}/instances/{instance}"
};
// Represents the type of Data Fusion instance. Each type is configured with
// the default settings for processing and memory.
enum Type {
// No type specified. The instance creation will fail.
TYPE_UNSPECIFIED = 0;
// Basic Data Fusion instance. In Basic type, the user will be able to
// create data pipelines using point and click UI. However, there are
// certain limitations, such as fewer number of concurrent pipelines, no
// support for streaming pipelines, etc.
BASIC = 1;
// Enterprise Data Fusion instance. In Enterprise type, the user will have
// all features available, such as support for streaming pipelines,
// unlimited number of concurrent pipelines, etc.
ENTERPRISE = 2;
// Developer Data Fusion instance. In Developer type, the user will have all
// features available but with restrictive capabilities. This is to help
// enterprises design and develop their data ingestion and integration
// pipelines at low cost.
DEVELOPER = 3;
}
// Represents the state of a Data Fusion instance
enum State {
// Instance does not have a state yet
STATE_UNSPECIFIED = 0;
// Instance is being created
CREATING = 1;
// Instance is running and ready for requests
RUNNING = 2;
// Instance creation failed
FAILED = 3;
// Instance is being deleted
DELETING = 4;
// Instance is being upgraded
UPGRADING = 5;
// Instance is being restarted
RESTARTING = 6;
// Instance is being updated on customer request
UPDATING = 7;
// Instance is being auto-updated
AUTO_UPDATING = 8;
// Instance is being auto-upgraded
AUTO_UPGRADING = 9;
}
// Output only. The name of this instance is in the form of
// projects/{project}/locations/{location}/instances/{instance}.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// A description of this instance.
string description = 2;
// Required. Instance type.
Type type = 3 [(google.api.field_behavior) = REQUIRED];
// Option to enable Stackdriver Logging.
bool enable_stackdriver_logging = 4;
// Option to enable Stackdriver Monitoring.
bool enable_stackdriver_monitoring = 5;
// Specifies whether the Data Fusion instance should be private. If set to
// true, all Data Fusion nodes will have private IP addresses and will not be
// able to access the public internet.
bool private_instance = 6;
// Network configuration options. These are required when a private Data
// Fusion instance is to be created.
NetworkConfig network_config = 7;
// The resource labels for instance to use to annotate any related underlying
// resources such as Compute Engine VMs. The character '=' is not allowed to
// be used within the labels.
map<string, string> labels = 8;
// Map of additional options used to configure the behavior of
// Data Fusion instance.
map<string, string> options = 9;
// Output only. The time the instance was created.
google.protobuf.Timestamp create_time = 10
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the instance was last updated.
google.protobuf.Timestamp update_time = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The current state of this Data Fusion instance.
State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Additional information about the current state of this Data
// Fusion instance if available.
string state_message = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Endpoint on which the Data Fusion UI is accessible.
string service_endpoint = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
// Name of the zone in which the Data Fusion instance will be created. Only
// DEVELOPER instances use this field.
string zone = 15;
// Current version of Data Fusion.
string version = 16;
// Output only. Deprecated. Use tenant_project_id instead to extract the
// tenant project ID.
string service_account = 17
[deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY];
// Display name for an instance.
string display_name = 18;
// Available versions that the instance can be upgraded to using
// UpdateInstanceRequest.
repeated Version available_version = 19;
// Output only. Endpoint on which the REST APIs is accessible.
string api_endpoint = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Cloud Storage bucket generated by Data Fusion in the customer
// project.
string gcs_bucket = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
// List of accelerators enabled for this CDF instance.
repeated Accelerator accelerators = 22;
// Output only. P4 service account for the customer project.
string p4_service_account = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The name of the tenant project.
string tenant_project_id = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
// User-managed service account to set on Dataproc when Cloud Data Fusion
// creates Dataproc to run data processing pipelines.
//
// This allows users to have fine-grained access control on Dataproc's
// accesses to cloud resources.
string dataproc_service_account = 25;
// Option to enable granular role-based access control.
bool enable_rbac = 26;
// The crypto key configuration. This field is used by the Customer-Managed
// Encryption Keys (CMEK) feature.
CryptoKeyConfig crypto_key_config = 27;
}
// Request message for listing Data Fusion instances.
message ListInstancesRequest {
// The project and location for which to retrieve instance information
// in the format projects/{project}/locations/{location}. If the location is
// specified as '-' (wildcard), then all regions available to the project
// are queried, and the results are aggregated.
string parent = 1;
// The maximum number of items to return.
int32 page_size = 2;
// The next_page_token value to use if there are additional
// results to retrieve for this list request.
string page_token = 3;
// List filter.
string filter = 4;
// Sort results. Supported values are "name", "name desc", or "" (unsorted).
string order_by = 5;
}
// Response message for the list instance request.
message ListInstancesResponse {
// Represents a list of Data Fusion instances.
repeated Instance instances = 1;
// Token to retrieve the next page of results or empty if there are no more
// results in the list.
string next_page_token = 2;
// Locations that could not be reached.
repeated string unreachable = 3;
}
// Request message for the list available versions request.
message ListAvailableVersionsRequest {
// Required. The project and location for which to retrieve instance
// information in the format projects/{project}/locations/{location}.
string parent = 1 [(google.api.field_behavior) = REQUIRED];
// The maximum number of items to return.
int32 page_size = 2;
// The next_page_token value to use if there are additional
// results to retrieve for this list request.
string page_token = 3;
// Whether or not to return the latest patch of every available minor version.
// If true, only the latest patch will be returned. Ex. if allowed versions is
// [6.1.1, 6.1.2, 6.2.0] then response will be [6.1.2, 6.2.0]
bool latest_patch_only = 4;
}
// Response message for the list available versions request.
message ListAvailableVersionsResponse {
// Represents a list of versions that are supported.
repeated Version available_versions = 1;
// Token to retrieve the next page of results or empty if there are no more
// results in the list.
string next_page_token = 2;
}
// Request message for getting details about a Data Fusion instance.
message GetInstanceRequest {
// The instance resource name in the format
// projects/{project}/locations/{location}/instances/{instance}.
string name = 1;
}
// Request message for creating a Data Fusion instance.
message CreateInstanceRequest {
// The instance's project and location in the format
// projects/{project}/locations/{location}.
string parent = 1;
// The name of the instance to create.
string instance_id = 2;
// An instance resource.
Instance instance = 3;
}
// Request message for deleting a Data Fusion instance.
message DeleteInstanceRequest {
// The instance resource name in the format
// projects/{project}/locations/{location}/instances/{instance}
string name = 1;
}
// Request message for updating a Data Fusion instance.
// Data Fusion only allows updating the labels, options, and stack driver
// settings.
message UpdateInstanceRequest {
// The instance resource that replaces the resource on the server. Currently,
// Data Fusion only allows replacing labels, options, and stack driver
// settings. All other fields will be ignored.
Instance instance = 1;
// Field mask is used to specify the fields that the update will overwrite
// in an instance resource. The fields specified in the update_mask are
// relative to the resource, not the full request.
// A field will be overwritten if it is in the mask.
// If the user does not provide a mask, all the supported fields (labels and
// options currently) will be overwritten.
google.protobuf.FieldMask update_mask = 2;
}
// Request message for restarting a Data Fusion instance.
message RestartInstanceRequest {
// Name of the Data Fusion instance which need to be restarted in the form of
// projects/{project}/locations/{location}/instances/{instance}
string name = 1;
}
// Request message for upgrading a Data Fusion instance.
// To change the instance properties, instance update should be used.
message UpgradeInstanceRequest {
// Name of the Data Fusion instance which need to be upgraded in the form of
// projects/{project}/locations/{location}/instances/{instance}
// Instance will be upgraded with the latest stable version of the Data
// Fusion.
string name = 1;
}
// Represents the metadata of a long-running operation.
message OperationMetadata {
// The time the operation was created.
google.protobuf.Timestamp create_time = 1;
// The time the operation finished running.
google.protobuf.Timestamp end_time = 2;
// Server-defined resource path for the target of the operation.
string target = 3;
// Name of the verb executed by the operation.
string verb = 4;
// Human-readable status of the operation if any.
string status_detail = 5;
// Identifies whether the user 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;
// API version used to start the operation.
string api_version = 7;
}
// Request message for RemoveIamPolicy method.
message RemoveIamPolicyRequest {
// The resource on which IAM policy to be removed is attached to.
string resource = 1;
}
// Response message for RemoveIamPolicy method.
message RemoveIamPolicyResponse {}
// List namespaces request.
message ListNamespacesRequest {
// Required. The instance to list its namespaces.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datafusion.googleapis.com/Instance"
}
];
// The maximum number of items to return.
int32 page_size = 2;
// The next_page_token value to use if there are additional
// results to retrieve for this list request.
string page_token = 3;
// By default, only basic information about a namespace is returned
// (e.g. name). When `NAMESPACE_VIEW_FULL` is specified, additional
// information associated with a namespace gets returned
// (e.g. IAM policy set on the namespace)
NamespaceView view = 4;
}
// IAMPolicy encapsulates the IAM policy name, definition and status of
// policy fetching.
message IAMPolicy {
// Policy definition if IAM policy fetching is successful,
// otherwise empty.
google.iam.v1.Policy policy = 1;
// Status of iam policy fetching.
google.rpc.Status status = 2;
}
// Represents the information of a namespace
message Namespace {
option (google.api.resource) = {
type: "datafusion.googleapis.com/Namespace"
pattern: "projects/{project}/locations/{location}/instances/{instance}/namespaces/{namespace}"
};
// Name of the given namespace.
string name = 1;
// IAM policy associated with this namespace.
IAMPolicy iam_policy = 2;
}
// List namespaces response.
message ListNamespacesResponse {
// List of namespaces
repeated Namespace namespaces = 1;
// Token to retrieve the next page of results or empty if there are no more
// results in the list.
string next_page_token = 2;
}
// DNS peering configuration. These configurations are used to create
// DNS peering with the customer Cloud DNS.
message DnsPeering {
// Required. Name of the zone.
string zone = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Name of the dns.
string domain = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. Optional description of the dns zone.
string description = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Optional target project to which dns peering should happen.
string target_project = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Optional target network to which dns peering should happen.
string target_network = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Request message to create dns peering.
message AddDnsPeeringRequest {
// The resource on which DNS peering will be created.
string parent = 1;
// Dns peering config.
DnsPeering dns_peering = 2;
}
// Response message for set dns peering method.
message AddDnsPeeringResponse {}
// A view for Namespace
enum NamespaceView {
// Default/unset value, which will use BASIC view.
NAMESPACE_VIEW_UNSPECIFIED = 0;
// Show the most basic metadata of a namespace
NAMESPACE_VIEW_BASIC = 1;
// Returns all metadata of a namespace
NAMESPACE_VIEW_FULL = 2;
}
// Request message to remove dns peering.
message RemoveDnsPeeringRequest {
// The resource on which DNS peering will be removed.
string parent = 1;
// Required. The zone to be removed.
string zone = 2 [(google.api.field_behavior) = REQUIRED];
}
// Response message for set dns peering method.
message RemoveDnsPeeringResponse {}
// List dns peering request.
message ListDnsPeeringsRequest {
// Required. The resource on which dns peering will be listed.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datafusion.googleapis.com/Instance"
}
];
// The maximum number of items to return.
int32 page_size = 2;
// The next_page_token value to use if there are additional
// results to retrieve for this list request.
string page_token = 3;
}
// List dns peering response.
message ListDnsPeeringsResponse {
// List of dns peering configs.
repeated DnsPeering dns_peerings = 1;
// Token to retrieve the next page of results or empty if there are no more
// results in the list.
string next_page_token = 2;
}
Loading…
Cancel
Save