summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/cloud/networkconnectivity
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/cloud/networkconnectivity')
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/BUILD.bazel40
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1/BUILD.bazel379
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto55
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto652
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml117
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1_grpc_service_config.json26
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel361
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto55
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto551
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_grpc_service_config.json24
-rw-r--r--third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1.yaml119
11 files changed, 2379 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/BUILD.bazel b/third_party/googleapis/google/cloud/networkconnectivity/BUILD.bazel
new file mode 100644
index 0000000..dc3e874
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/BUILD.bazel
@@ -0,0 +1,40 @@
+# This build file includes a target for the Ruby wrapper library for
+# google-cloud-network_connectivity.
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+# Export yaml configs.
+exports_files(glob(["*.yaml"]))
+
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_cloud_gapic_library",
+ "ruby_gapic_assembly_pkg",
+)
+
+# Generates a Ruby wrapper client for networkconnectivity.
+# Ruby wrapper clients are versionless, but are generated from source protos
+# for a particular service version, v1 in this case.
+ruby_cloud_gapic_library(
+ name = "networkconnectivity_ruby_wrapper",
+ srcs = ["//google/cloud/networkconnectivity/v1:networkconnectivity_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-gem-name=google-cloud-network_connectivity",
+ "ruby-cloud-env-prefix=NETWORK_CONNECTIVITY",
+ "ruby-cloud-wrapper-of=v1:0.0;v1alpha1:0.0",
+ "ruby-cloud-product-url=https://cloud.google.com/network-connectivity/docs",
+ "ruby-cloud-api-id=networkconnectivity.googleapis.com",
+ "ruby-cloud-api-shortname=networkconnectivity",
+ ],
+ ruby_cloud_description = "Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network.",
+ ruby_cloud_title = "Network Connectivity",
+)
+
+# Open Source package.
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-networkconnectivity-ruby",
+ deps = [
+ ":networkconnectivity_ruby_wrapper",
+ ],
+)
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/BUILD.bazel b/third_party/googleapis/google/cloud/networkconnectivity/v1/BUILD.bazel
new file mode 100644
index 0000000..873ca1a
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/BUILD.bazel
@@ -0,0 +1,379 @@
+# 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 = "networkconnectivity_proto",
+ srcs = [
+ "common.proto",
+ "hub.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 = "networkconnectivity_proto_with_info",
+ deps = [
+ ":networkconnectivity_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 = "networkconnectivity_java_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+java_grpc_library(
+ name = "networkconnectivity_java_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_java_proto"],
+)
+
+java_gapic_library(
+ name = "networkconnectivity_java_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ gapic_yaml = None,
+ grpc_service_config = "networkconnectivity_v1_grpc_service_config.json",
+ service_yaml = "networkconnectivity_v1.yaml",
+ test_deps = [
+ ":networkconnectivity_java_grpc",
+ ],
+ deps = [
+ ":networkconnectivity_java_proto",
+ "//google/api:api_java_proto",
+ ],
+)
+
+java_gapic_test(
+ name = "networkconnectivity_java_gapic_test_suite",
+ test_classes = [
+ "com.google.cloud.networkconnectivity.v1.HubServiceClientTest",
+ ],
+ runtime_deps = [":networkconnectivity_java_gapic_test"],
+)
+
+# Open Source Packages
+java_gapic_assembly_gradle_pkg(
+ name = "google-cloud-networkconnectivity-v1-java",
+ include_samples = True,
+ deps = [
+ ":networkconnectivity_java_gapic",
+ ":networkconnectivity_java_grpc",
+ ":networkconnectivity_java_proto",
+ ":networkconnectivity_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 = "networkconnectivity_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1",
+ protos = [":networkconnectivity_proto"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ ],
+)
+
+go_gapic_library(
+ name = "networkconnectivity_go_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ grpc_service_config = "networkconnectivity_v1_grpc_service_config.json",
+ importpath = "cloud.google.com/go/networkconnectivity/apiv1;networkconnectivity",
+ metadata = True,
+ service_yaml = "networkconnectivity_v1.yaml",
+ deps = [
+ ":networkconnectivity_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 = "networkconnectivity_go_gapic_test",
+ srcs = [":networkconnectivity_go_gapic_srcjar_test"],
+ embed = [":networkconnectivity_go_gapic"],
+ importpath = "cloud.google.com/go/networkconnectivity/apiv1",
+)
+
+# Open Source Packages
+go_gapic_assembly_pkg(
+ name = "gapi-cloud-networkconnectivity-v1-go",
+ deps = [
+ ":networkconnectivity_go_gapic",
+ ":networkconnectivity_go_gapic_srcjar-metadata.srcjar",
+ ":networkconnectivity_go_gapic_srcjar-test.srcjar",
+ ":networkconnectivity_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "py_gapic_assembly_pkg",
+ "py_gapic_library",
+ "py_test",
+)
+
+py_gapic_library(
+ name = "networkconnectivity_py_gapic",
+ srcs = [":networkconnectivity_proto"],
+ grpc_service_config = "networkconnectivity_v1_grpc_service_config.json",
+ transport = "grpc",
+)
+
+py_test(
+ name = "networkconnectivity_py_gapic_test",
+ srcs = [
+ "networkconnectivity_py_gapic_pytest.py",
+ "networkconnectivity_py_gapic_test.py",
+ ],
+ legacy_create_init = False,
+ deps = [":networkconnectivity_py_gapic"],
+)
+
+# Open Source Packages
+py_gapic_assembly_pkg(
+ name = "networkconnectivity-v1-py",
+ deps = [
+ ":networkconnectivity_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 = "networkconnectivity_php_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+php_grpc_library(
+ name = "networkconnectivity_php_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_php_proto"],
+)
+
+php_gapic_library(
+ name = "networkconnectivity_php_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ grpc_service_config = "networkconnectivity_v1_grpc_service_config.json",
+ service_yaml = "networkconnectivity_v1.yaml",
+ deps = [
+ ":networkconnectivity_php_grpc",
+ ":networkconnectivity_php_proto",
+ ],
+)
+
+# Open Source Packages
+php_gapic_assembly_pkg(
+ name = "google-cloud-networkconnectivity-v1-php",
+ deps = [
+ ":networkconnectivity_php_gapic",
+ ":networkconnectivity_php_grpc",
+ ":networkconnectivity_php_proto",
+ ],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+nodejs_gapic_library(
+ name = "networkconnectivity_nodejs_gapic",
+ package_name = "@google-cloud/network-connectivity",
+ src = ":networkconnectivity_proto_with_info",
+ extra_protoc_parameters = ["metadata"],
+ grpc_service_config = "networkconnectivity_v1_grpc_service_config.json",
+ package = "google.cloud.networkconnectivity.v1",
+ service_yaml = "networkconnectivity_v1.yaml",
+ deps = [],
+)
+
+nodejs_gapic_assembly_pkg(
+ name = "networkconnectivity-v1-nodejs",
+ deps = [
+ ":networkconnectivity_nodejs_gapic",
+ ":networkconnectivity_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 = "networkconnectivity_ruby_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+ruby_grpc_library(
+ name = "networkconnectivity_ruby_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_ruby_proto"],
+)
+
+ruby_cloud_gapic_library(
+ name = "networkconnectivity_ruby_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-api-id=networkconnectivity.googleapis.com",
+ "ruby-cloud-api-shortname=networkconnectivity",
+ "ruby-cloud-env-prefix=NETWORK_CONNECTIVITY",
+ "ruby-cloud-gem-name=google-cloud-network_connectivity-v1",
+ "ruby-cloud-product-url=https://cloud.google.com/network-connectivity/docs",
+ ],
+ grpc_service_config = "networkconnectivity_v1_grpc_service_config.json",
+ ruby_cloud_description = "Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network.",
+ ruby_cloud_title = "Network Connectivity V1",
+ deps = [
+ ":networkconnectivity_ruby_grpc",
+ ":networkconnectivity_ruby_proto",
+ ],
+)
+
+# Open Source Packages
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-networkconnectivity-v1-ruby",
+ deps = [
+ ":networkconnectivity_ruby_gapic",
+ ":networkconnectivity_ruby_grpc",
+ ":networkconnectivity_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 = "networkconnectivity_csharp_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+csharp_grpc_library(
+ name = "networkconnectivity_csharp_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_csharp_proto"],
+)
+
+csharp_gapic_library(
+ name = "networkconnectivity_csharp_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
+ grpc_service_config = "networkconnectivity_v1_grpc_service_config.json",
+ service_yaml = "networkconnectivity_v1.yaml",
+ deps = [
+ ":networkconnectivity_csharp_grpc",
+ ":networkconnectivity_csharp_proto",
+ ],
+)
+
+# Open Source Packages
+csharp_gapic_assembly_pkg(
+ name = "google-cloud-networkconnectivity-v1-csharp",
+ deps = [
+ ":networkconnectivity_csharp_gapic",
+ ":networkconnectivity_csharp_grpc",
+ ":networkconnectivity_csharp_proto",
+ ],
+)
+
+##############################################################################
+# C++
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "cc_grpc_library",
+ "cc_proto_library",
+)
+
+cc_proto_library(
+ name = "networkconnectivity_cc_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+cc_grpc_library(
+ name = "networkconnectivity_cc_grpc",
+ srcs = [":networkconnectivity_proto"],
+ grpc_only = True,
+ deps = [":networkconnectivity_cc_proto"],
+)
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto
new file mode 100644
index 0000000..21999d5
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto
@@ -0,0 +1,55 @@
+// Copyright 2022 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.networkconnectivity.v1;
+
+import "google/api/field_behavior.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.NetworkConnectivity.V1";
+option go_package = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1;networkconnectivity";
+option java_multiple_files = true;
+option java_outer_classname = "CommonProto";
+option java_package = "com.google.cloud.networkconnectivity.v1";
+option php_namespace = "Google\\Cloud\\NetworkConnectivity\\V1";
+option ruby_package = "Google::Cloud::NetworkConnectivity::V1";
+
+// Represents the metadata of the 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 user has requested cancellation
+ // of the operation. Operations that have been cancelled successfully
+ // 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];
+}
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto
new file mode 100644
index 0000000..c28ca9a
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto
@@ -0,0 +1,652 @@
+// Copyright 2022 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.networkconnectivity.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.NetworkConnectivity.V1";
+option go_package = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1;networkconnectivity";
+option java_multiple_files = true;
+option java_outer_classname = "HubProto";
+option java_package = "com.google.cloud.networkconnectivity.v1";
+option php_namespace = "Google\\Cloud\\NetworkConnectivity\\V1";
+option ruby_package = "Google::Cloud::NetworkConnectivity::V1";
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/VpnTunnel"
+ pattern: "projects/{project}/regions/{region}/vpnTunnels/{resource_id}"
+};
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/InterconnectAttachment"
+ pattern: "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}"
+};
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/Instance"
+ pattern: "projects/{project}/zones/{zone}/instances/{instance}"
+};
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/Network"
+ pattern: "projects/{project}/global/networks/{resource_id}"
+};
+
+// Network Connectivity Center is a hub-and-spoke abstraction for network
+// connectivity management in Google Cloud. It reduces operational complexity
+// through a simple, centralized connectivity management model.
+service HubService {
+ option (google.api.default_host) = "networkconnectivity.googleapis.com";
+ option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
+
+ // Lists hubs in a given project.
+ rpc ListHubs(ListHubsRequest) returns (ListHubsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=projects/*/locations/global}/hubs"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Gets details about the specified hub.
+ rpc GetHub(GetHubRequest) returns (Hub) {
+ option (google.api.http) = {
+ get: "/v1/{name=projects/*/locations/global/hubs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates a new hub in the specified project.
+ rpc CreateHub(CreateHubRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{parent=projects/*/locations/global}/hubs"
+ body: "hub"
+ };
+ option (google.api.method_signature) = "parent,hub,hub_id";
+ option (google.longrunning.operation_info) = {
+ response_type: "Hub"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates the description and/or labels of the specified hub.
+ rpc UpdateHub(UpdateHubRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1/{hub.name=projects/*/locations/global/hubs/*}"
+ body: "hub"
+ };
+ option (google.api.method_signature) = "hub,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Hub"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Deletes the specified hub.
+ rpc DeleteHub(DeleteHubRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1/{name=projects/*/locations/global/hubs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Lists the spokes in the specified project and location.
+ rpc ListSpokes(ListSpokesRequest) returns (ListSpokesResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=projects/*/locations/*}/spokes"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Gets details about the specified spoke.
+ rpc GetSpoke(GetSpokeRequest) returns (Spoke) {
+ option (google.api.http) = {
+ get: "/v1/{name=projects/*/locations/*/spokes/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates a spoke in the specified project and location.
+ rpc CreateSpoke(CreateSpokeRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{parent=projects/*/locations/*}/spokes"
+ body: "spoke"
+ };
+ option (google.api.method_signature) = "parent,spoke,spoke_id";
+ option (google.longrunning.operation_info) = {
+ response_type: "Spoke"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates the parameters of the specified spoke.
+ rpc UpdateSpoke(UpdateSpokeRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1/{spoke.name=projects/*/locations/*/spokes/*}"
+ body: "spoke"
+ };
+ option (google.api.method_signature) = "spoke,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Spoke"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Deletes the specified spoke.
+ rpc DeleteSpoke(DeleteSpokeRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1/{name=projects/*/locations/*/spokes/*}"
+ };
+ option (google.api.method_signature) = "name";
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+}
+
+// The State enum represents the lifecycle stage of a Network Connectivity
+// Center resource.
+enum State {
+ // No state information available
+ STATE_UNSPECIFIED = 0;
+
+ // The resource's create operation is in progress
+ CREATING = 1;
+
+ // The resource is active
+ ACTIVE = 2;
+
+ // The resource's Delete operation is in progress
+ DELETING = 3;
+}
+
+// Supported features for a location
+enum LocationFeature {
+ // No publicly supported feature in this location
+ LOCATION_FEATURE_UNSPECIFIED = 0;
+
+ // Site-to-cloud spokes are supported in this location
+ SITE_TO_CLOUD_SPOKES = 1;
+
+ // Site-to-site spokes are supported in this location
+ SITE_TO_SITE_SPOKES = 2;
+}
+
+// A hub is a collection of spokes. A single hub can contain spokes from
+// multiple regions. However, if any of a hub's spokes use the data transfer
+// feature, the resources associated with those spokes must all reside in the
+// same VPC network. Spokes that do not use data transfer can be associated
+// with any VPC network in your project.
+message Hub {
+ option (google.api.resource) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ pattern: "projects/{project}/locations/global/hubs/{hub}"
+ };
+
+ // Immutable. The name of the hub. Hub names must be unique. They use the
+ // following form:
+ // `projects/{project_number}/locations/global/hubs/{hub_id}`
+ string name = 1 [(google.api.field_behavior) = IMMUTABLE];
+
+ // Output only. The time the hub was created.
+ google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The time the hub was last updated.
+ google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Optional labels in key:value format. For more information about labels, see
+ // [Requirements for
+ // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+ map<string, string> labels = 4;
+
+ // An optional description of the hub.
+ string description = 5;
+
+ // Output only. The Google-generated UUID for the hub. This value is unique across all hub
+ // resources. If a hub is deleted and another with the same name is created,
+ // the new hub is assigned a different unique_id.
+ string unique_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The current lifecycle state of this hub.
+ State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // The VPC networks associated with this hub's spokes.
+ //
+ // This field is read-only. Network Connectivity Center automatically
+ // populates it based on the set of spokes attached to the hub.
+ repeated RoutingVPC routing_vpcs = 10;
+}
+
+// RoutingVPC contains information about the VPC networks that are associated
+// with a hub's spokes.
+message RoutingVPC {
+ // The URI of the VPC network.
+ string uri = 1 [(google.api.resource_reference) = {
+ type: "compute.googleapis.com/Network"
+ }];
+
+ // Output only. If true, indicates that this VPC network is currently associated with
+ // spokes that use the data transfer feature (spokes where the
+ // site_to_site_data_transfer field is set to true). If you create new spokes
+ // that use data transfer, they must be associated with this VPC network. At
+ // most, one VPC network will have this field set to true.
+ bool required_for_new_site_to_site_data_transfer_spokes = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
+// A spoke represents a connection between your Google Cloud network resources
+// and a non-Google-Cloud network.
+//
+// When you create a spoke, you associate it with a hub. You must also identify
+// a value for exactly one of the following fields:
+//
+// * linked_vpn_tunnels
+// * linked_interconnect_attachments
+// * linked_router_appliance_instances
+message Spoke {
+ option (google.api.resource) = {
+ type: "networkconnectivity.googleapis.com/Spoke"
+ pattern: "projects/{project}/locations/{location}/spokes/{spoke}"
+ };
+
+ // Immutable. The name of the spoke. Spoke names must be unique. They use the
+ // following form:
+ // `projects/{project_number}/locations/{region}/spokes/{spoke_id}`
+ string name = 1 [(google.api.field_behavior) = IMMUTABLE];
+
+ // Output only. The time the spoke was created.
+ google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The time the spoke was last updated.
+ google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Optional labels in key:value format. For more information about labels, see
+ // [Requirements for
+ // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+ map<string, string> labels = 4;
+
+ // An optional description of the spoke.
+ string description = 5;
+
+ // Immutable. The name of the hub that this spoke is attached to.
+ string hub = 6 [
+ (google.api.field_behavior) = IMMUTABLE,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ }
+ ];
+
+ // VPN tunnels that are associated with the spoke.
+ LinkedVpnTunnels linked_vpn_tunnels = 17;
+
+ // VLAN attachments that are associated with the spoke.
+ LinkedInterconnectAttachments linked_interconnect_attachments = 18;
+
+ // Router appliance instances that are associated with the spoke.
+ LinkedRouterApplianceInstances linked_router_appliance_instances = 19;
+
+ // Output only. The Google-generated UUID for the spoke. This value is unique across all
+ // spoke resources. If a spoke is deleted and another with the same name is
+ // created, the new spoke is assigned a different unique_id.
+ string unique_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The current lifecycle state of this spoke.
+ State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
+// Request for [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] method.
+message ListHubsRequest {
+ // Required. The parent resource's name.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // The maximum number of results per page that should be returned.
+ int32 page_size = 2;
+
+ // The page token.
+ string page_token = 3;
+
+ // An expression that filters the results listed in the response.
+ string filter = 4;
+
+ // Sort the results by a certain order.
+ string order_by = 5;
+}
+
+// Response for [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] method.
+message ListHubsResponse {
+ // The requested hubs.
+ repeated Hub hubs = 1;
+
+ // The next pagination token in the List response. It should be used as
+ // page_token for the following request. An empty value means no more result.
+ string next_page_token = 2;
+
+ // Locations that could not be reached.
+ repeated string unreachable = 3;
+}
+
+// Request for [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] method.
+message GetHubRequest {
+ // Required. The name of the hub resource to get.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ }
+ ];
+}
+
+// Request for [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] method.
+message CreateHubRequest {
+ // Required. The parent resource.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Required. A unique identifier for the hub.
+ string hub_id = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The initial values for a new hub.
+ Hub hub = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. A unique request ID (optional). If you specify this ID, you can use it
+ // in cases when you need to retry your request. When you need to retry, this
+ // ID lets the server know that it can ignore the request if it has already
+ // been completed. The server guarantees that for at least 60 minutes after
+ // the first request.
+ //
+ // For example, consider a situation where you make an initial request and
+ // the request times out. If you make the request again with the same request
+ // ID, the server can check to see whether the original operation
+ // was received. If it was, the server ignores the second request. This
+ // behavior prevents clients from mistakenly creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID, with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request for [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] method.
+message UpdateHubRequest {
+ // Optional. In the case of an update to an existing hub, field mask is used to specify
+ // the fields to be overwritten. The fields specified in the update_mask are
+ // relative to the resource, not the full request. A field is overwritten if
+ // it is in the mask. If the user does not provide a mask, then all fields are
+ // overwritten.
+ google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. The state that the hub should be in after the update.
+ Hub hub = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. A unique request ID (optional). If you specify this ID, you can use it
+ // in cases when you need to retry your request. When you need to retry, this
+ // ID lets the server know that it can ignore the request if it has already
+ // been completed. The server guarantees that for at least 60 minutes after
+ // the first request.
+ //
+ // For example, consider a situation where you make an initial request and
+ // the request times out. If you make the request again with the same request
+ // ID, the server can check to see whether the original operation
+ // was received. If it was, the server ignores the second request. This
+ // behavior prevents clients from mistakenly creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID, with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The request for [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub].
+message DeleteHubRequest {
+ // Required. The name of the hub to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ }
+ ];
+
+ // Optional. A unique request ID (optional). If you specify this ID, you can use it
+ // in cases when you need to retry your request. When you need to retry, this
+ // ID lets the server know that it can ignore the request if it has already
+ // been completed. The server guarantees that for at least 60 minutes after
+ // the first request.
+ //
+ // For example, consider a situation where you make an initial request and
+ // the request times out. If you make the request again with the same request
+ // ID, the server can check to see whether the original operation
+ // was received. If it was, the server ignores the second request. This
+ // behavior prevents clients from mistakenly creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID, with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The request for [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes].
+message ListSpokesRequest {
+ // Required. The parent resource.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // The maximum number of results per page that should be returned.
+ int32 page_size = 2;
+
+ // The page token.
+ string page_token = 3;
+
+ // An expression that filters the results listed in the response.
+ string filter = 4;
+
+ // Sort the results by a certain order.
+ string order_by = 5;
+}
+
+// The response for [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes].
+message ListSpokesResponse {
+ // The requested spokes.
+ repeated Spoke spokes = 1;
+
+ // The next pagination token in the List response. It should be used as
+ // page_token for the following request. An empty value means no more result.
+ string next_page_token = 2;
+
+ // Locations that could not be reached.
+ repeated string unreachable = 3;
+}
+
+// The request for [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke].
+message GetSpokeRequest {
+ // Required. The name of the spoke resource.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Spoke"
+ }
+ ];
+}
+
+// The request for [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke].
+message CreateSpokeRequest {
+ // Required. The parent resource.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Required. Unique id for the spoke to create.
+ string spoke_id = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The initial values for a new spoke.
+ Spoke spoke = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. A unique request ID (optional). If you specify this ID, you can use it
+ // in cases when you need to retry your request. When you need to retry, this
+ // ID lets the server know that it can ignore the request if it has already
+ // been completed. The server guarantees that for at least 60 minutes after
+ // the first request.
+ //
+ // For example, consider a situation where you make an initial request and
+ // the request times out. If you make the request again with the same request
+ // ID, the server can check to see whether the original operation
+ // was received. If it was, the server ignores the second request. This
+ // behavior prevents clients from mistakenly creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID, with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request for [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] method.
+message UpdateSpokeRequest {
+ // Optional. In the case of an update to an existing spoke, field mask is used to
+ // specify the fields to be overwritten. The fields specified in the
+ // update_mask are relative to the resource, not the full request. A field is
+ // overwritten if it is in the mask. If the user does not provide a mask, then
+ // all fields are overwritten.
+ google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. The state that the spoke should be in after the update.
+ Spoke spoke = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. A unique request ID (optional). If you specify this ID, you can use it
+ // in cases when you need to retry your request. When you need to retry, this
+ // ID lets the server know that it can ignore the request if it has already
+ // been completed. The server guarantees that for at least 60 minutes after
+ // the first request.
+ //
+ // For example, consider a situation where you make an initial request and
+ // the request times out. If you make the request again with the same request
+ // ID, the server can check to see whether the original operation
+ // was received. If it was, the server ignores the second request. This
+ // behavior prevents clients from mistakenly creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID, with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The request for [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke].
+message DeleteSpokeRequest {
+ // Required. The name of the spoke to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Spoke"
+ }
+ ];
+
+ // Optional. A unique request ID (optional). If you specify this ID, you can use it
+ // in cases when you need to retry your request. When you need to retry, this
+ // ID lets the server know that it can ignore the request if it has already
+ // been completed. The server guarantees that for at least 60 minutes after
+ // the first request.
+ //
+ // For example, consider a situation where you make an initial request and
+ // the request times out. If you make the request again with the same request
+ // ID, the server can check to see whether the original operation
+ // was received. If it was, the server ignores the second request. This
+ // behavior prevents clients from mistakenly creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID, with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// A collection of Cloud VPN tunnel resources. These resources should be
+// redundant HA VPN tunnels that all advertise the same prefixes to Google
+// Cloud. Alternatively, in a passive/active configuration, all tunnels
+// should be capable of advertising the same prefixes.
+message LinkedVpnTunnels {
+ // The URIs of linked VPN tunnel resources.
+ repeated string uris = 1 [(google.api.resource_reference) = {
+ type: "compute.googleapis.com/VpnTunnel"
+ }];
+
+ // A value that controls whether site-to-site data transfer is enabled for
+ // these resources. Data transfer is available only in [supported
+ // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations).
+ bool site_to_site_data_transfer = 2;
+}
+
+// A collection of VLAN attachment resources. These resources should
+// be redundant attachments that all advertise the same prefixes to Google
+// Cloud. Alternatively, in active/passive configurations, all attachments
+// should be capable of advertising the same prefixes.
+message LinkedInterconnectAttachments {
+ // The URIs of linked interconnect attachment resources
+ repeated string uris = 1 [(google.api.resource_reference) = {
+ type: "compute.googleapis.com/InterconnectAttachment"
+ }];
+
+ // A value that controls whether site-to-site data transfer is enabled for
+ // these resources. Data transfer is available only in [supported
+ // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations).
+ bool site_to_site_data_transfer = 2;
+}
+
+// A collection of router appliance instances. If you configure multiple router
+// appliance instances to receive data from the same set of sites outside of
+// Google Cloud, we recommend that you associate those instances with the same
+// spoke.
+message LinkedRouterApplianceInstances {
+ // The list of router appliance instances.
+ repeated RouterApplianceInstance instances = 1;
+
+ // A value that controls whether site-to-site data transfer is enabled for
+ // these resources. Data transfer is available only in [supported
+ // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations).
+ bool site_to_site_data_transfer = 2;
+}
+
+// A router appliance instance is a Compute Engine virtual machine (VM) instance
+// that acts as a BGP speaker. A router appliance instance is specified by the
+// URI of the VM and the internal IP address of one of the VM's network
+// interfaces.
+message RouterApplianceInstance {
+ // The URI of the VM.
+ string virtual_machine = 1 [(google.api.resource_reference) = {
+ type: "compute.googleapis.com/Instance"
+ }];
+
+ // The IP address on the VM to use for peering.
+ string ip_address = 3;
+}
+
+// Metadata about locations
+message LocationMetadata {
+ // List of supported features
+ repeated LocationFeature location_features = 1;
+}
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml b/third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml
new file mode 100644
index 0000000..32f961b
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1.yaml
@@ -0,0 +1,117 @@
+type: google.api.Service
+config_version: 3
+name: networkconnectivity.googleapis.com
+title: Network Connectivity API
+
+apis:
+- name: google.cloud.networkconnectivity.v1.HubService
+
+types:
+- name: google.cloud.networkconnectivity.v1.LocationMetadata
+- name: google.cloud.networkconnectivity.v1.OperationMetadata
+
+documentation:
+ summary: The Network Connectivity API provides access to Network Connectivity Center.
+ overview: The Network Connectivity API provides access to Network Connectivity Center.
+ 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.location.Locations.GetLocation
+ deadline: 60.0
+ - selector: google.cloud.location.Locations.ListLocations
+ deadline: 60.0
+ - selector: 'google.cloud.networkconnectivity.v1.HubService.*'
+ deadline: 60.0
+ - selector: 'google.iam.v1.IAMPolicy.*'
+ deadline: 60.0
+ - selector: 'google.longrunning.Operations.*'
+ deadline: 60.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/global/hubs/*}:getIamPolicy'
+ additional_bindings:
+ - get: '/v1/{resource=projects/*/locations/*/spokes/*}:getIamPolicy'
+ - get: '/v1/{resource=projects/*/locations/global/policyBasedRoutes/*}:getIamPolicy'
+ - selector: google.iam.v1.IAMPolicy.SetIamPolicy
+ post: '/v1/{resource=projects/*/locations/global/hubs/*}:setIamPolicy'
+ body: '*'
+ additional_bindings:
+ - post: '/v1/{resource=projects/*/locations/*/spokes/*}:setIamPolicy'
+ body: '*'
+ - post: '/v1/{resource=projects/*/locations/global/policyBasedRoutes/*}:setIamPolicy'
+ body: '*'
+ - selector: google.iam.v1.IAMPolicy.TestIamPermissions
+ post: '/v1/{resource=projects/*/locations/global/hubs/*}:testIamPermissions'
+ body: '*'
+ additional_bindings:
+ - post: '/v1/{resource=projects/*/locations/*/spokes/*}:testIamPermissions'
+ body: '*'
+ - post: '/v1/{resource=projects/*/locations/global/policyBasedRoutes/*}: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.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.cloud.networkconnectivity.v1.HubService.*'
+ 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
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1_grpc_service_config.json
new file mode 100644
index 0000000..d36327b
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/networkconnectivity_v1_grpc_service_config.json
@@ -0,0 +1,26 @@
+{
+ "methodConfig": [{
+ "name": [{ "service": "google.cloud.networkconnectivity.v1.HubService" }],
+ "timeout": "60s",
+ "retryPolicy": {
+ "maxAttempts": 5,
+ "initialBackoff": "1s",
+ "maxBackoff": "10s",
+ "backoffMultiplier": 1.3,
+ "retryableStatusCodes": ["UNAVAILABLE"]
+ }
+ },
+ {
+ "name": [
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "CreateHub" },
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "UpdateHub" },
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "DeleteHub" },
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "CreateSpoke" },
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "UpdateSpoke" },
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "DeactivateSpoke" },
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "ActivateSpoke" },
+ { "service": "google.cloud.networkconnectivity.v1.HubService", "method": "DeleteSpoke" }
+ ],
+ "timeout": "60s"
+ }]
+}
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel
new file mode 100644
index 0000000..313c9a7
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/BUILD.bazel
@@ -0,0 +1,361 @@
+# 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 = "networkconnectivity_proto",
+ srcs = [
+ "common.proto",
+ "hub.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 = "networkconnectivity_proto_with_info",
+ deps = [
+ ":networkconnectivity_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 = "networkconnectivity_java_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+java_grpc_library(
+ name = "networkconnectivity_java_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_java_proto"],
+)
+
+java_gapic_library(
+ name = "networkconnectivity_java_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ grpc_service_config = "networkconnectivity_grpc_service_config.json",
+ test_deps = [
+ ":networkconnectivity_java_grpc",
+ ],
+ deps = [
+ ":networkconnectivity_java_proto",
+ ],
+)
+
+java_gapic_test(
+ name = "networkconnectivity_java_gapic_test_suite",
+ test_classes = [
+ "com.google.cloud.networkconnectivity.v1alpha1.HubServiceClientTest",
+ ],
+ runtime_deps = [":networkconnectivity_java_gapic_test"],
+)
+
+# Open Source Packages
+java_gapic_assembly_gradle_pkg(
+ name = "google-cloud-networkconnectivity-v1alpha1-java",
+ include_samples = True,
+ deps = [
+ ":networkconnectivity_java_gapic",
+ ":networkconnectivity_java_grpc",
+ ":networkconnectivity_java_proto",
+ ":networkconnectivity_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 = "networkconnectivity_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1alpha1",
+ protos = [":networkconnectivity_proto"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ ],
+)
+
+go_gapic_library(
+ name = "networkconnectivity_go_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ grpc_service_config = "networkconnectivity_grpc_service_config.json",
+ importpath = "cloud.google.com/go/networkconnectivity/apiv1alpha1;networkconnectivity",
+ metadata = True,
+ service_yaml = "networkconnectivity_v1alpha1.yaml",
+ deps = [
+ ":networkconnectivity_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 = "networkconnectivity_go_gapic_test",
+ srcs = [":networkconnectivity_go_gapic_srcjar_test"],
+ embed = [":networkconnectivity_go_gapic"],
+ importpath = "cloud.google.com/go/networkconnectivity/apiv1alpha1",
+)
+
+# Open Source Packages
+go_gapic_assembly_pkg(
+ name = "gapi-cloud-networkconnectivity-v1alpha1-go",
+ deps = [
+ ":networkconnectivity_go_gapic",
+ ":networkconnectivity_go_gapic_srcjar-metadata.srcjar",
+ ":networkconnectivity_go_gapic_srcjar-test.srcjar",
+ ":networkconnectivity_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "py_gapic_assembly_pkg",
+ "py_gapic_library",
+ "py_test",
+)
+
+py_gapic_library(
+ name = "networkconnectivity_py_gapic",
+ srcs = [":networkconnectivity_proto"],
+ grpc_service_config = "networkconnectivity_grpc_service_config.json",
+ opt_args = ["warehouse-package-name=google-cloud-network-connectivity"],
+ transport = "grpc",
+)
+
+py_test(
+ name = "networkconnectivity_py_gapic_test",
+ srcs = [
+ "networkconnectivity_py_gapic_pytest.py",
+ "networkconnectivity_py_gapic_test.py",
+ ],
+ legacy_create_init = False,
+ deps = [":networkconnectivity_py_gapic"],
+)
+
+# Open Source Packages
+py_gapic_assembly_pkg(
+ name = "networkconnectivity-v1alpha1-py",
+ deps = [
+ ":networkconnectivity_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 = "networkconnectivity_php_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+php_grpc_library(
+ name = "networkconnectivity_php_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_php_proto"],
+)
+
+php_gapic_library(
+ name = "networkconnectivity_php_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ grpc_service_config = "networkconnectivity_grpc_service_config.json",
+ service_yaml = "networkconnectivity_v1alpha1.yaml",
+ deps = [
+ ":networkconnectivity_php_grpc",
+ ":networkconnectivity_php_proto",
+ ],
+)
+
+# Open Source Packages
+php_gapic_assembly_pkg(
+ name = "google-cloud-networkconnectivity-v1alpha1-php",
+ deps = [
+ ":networkconnectivity_php_gapic",
+ ":networkconnectivity_php_grpc",
+ ":networkconnectivity_php_proto",
+ ],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+nodejs_gapic_library(
+ name = "networkconnectivity_nodejs_gapic",
+ package_name = "@google-cloud/network-connectivity",
+ src = ":networkconnectivity_proto_with_info",
+ extra_protoc_parameters = ["metadata"],
+ grpc_service_config = "networkconnectivity_grpc_service_config.json",
+ package = "google.cloud.networkconnectivity.v1alpha1",
+ service_yaml = "networkconnectivity_v1alpha1.yaml",
+ deps = [],
+)
+
+nodejs_gapic_assembly_pkg(
+ name = "networkconnectivity-v1alpha1-nodejs",
+ deps = [
+ ":networkconnectivity_nodejs_gapic",
+ ":networkconnectivity_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 = "networkconnectivity_ruby_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+ruby_grpc_library(
+ name = "networkconnectivity_ruby_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_ruby_proto"],
+)
+
+ruby_cloud_gapic_library(
+ name = "networkconnectivity_ruby_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-api-id=networkconnectivity.googleapis.com",
+ "ruby-cloud-api-shortname=networkconnectivity",
+ "ruby-cloud-env-prefix=NETWORK_CONNECTIVITY",
+ "ruby-cloud-gem-name=google-cloud-network_connectivity-v1alpha1",
+ "ruby-cloud-product-url=https://cloud.google.com/network-connectivity/docs",
+ ],
+ grpc_service_config = "networkconnectivity_grpc_service_config.json",
+ ruby_cloud_description = "Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network.",
+ ruby_cloud_title = "Network Connectivity V1alpha1",
+ deps = [
+ ":networkconnectivity_ruby_grpc",
+ ":networkconnectivity_ruby_proto",
+ ],
+)
+
+# Open Source Packages
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-networkconnectivity-v1alpha1-ruby",
+ deps = [
+ ":networkconnectivity_ruby_gapic",
+ ":networkconnectivity_ruby_grpc",
+ ":networkconnectivity_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 = "networkconnectivity_csharp_proto",
+ deps = [":networkconnectivity_proto"],
+)
+
+csharp_grpc_library(
+ name = "networkconnectivity_csharp_grpc",
+ srcs = [":networkconnectivity_proto"],
+ deps = [":networkconnectivity_csharp_proto"],
+)
+
+csharp_gapic_library(
+ name = "networkconnectivity_csharp_gapic",
+ srcs = [":networkconnectivity_proto_with_info"],
+ common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
+ grpc_service_config = "networkconnectivity_grpc_service_config.json",
+ service_yaml = "networkconnectivity_v1alpha1.yaml",
+ deps = [
+ ":networkconnectivity_csharp_grpc",
+ ":networkconnectivity_csharp_proto",
+ ],
+)
+
+# Open Source Packages
+csharp_gapic_assembly_pkg(
+ name = "google-cloud-networkconnectivity-v1alpha1-csharp",
+ deps = [
+ ":networkconnectivity_csharp_gapic",
+ ":networkconnectivity_csharp_grpc",
+ ":networkconnectivity_csharp_proto",
+ ],
+)
+
+##############################################################################
+# C++
+##############################################################################
+# Put your C++ rules here
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto
new file mode 100644
index 0000000..bdd9df6
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto
@@ -0,0 +1,55 @@
+// 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.networkconnectivity.v1alpha1;
+
+import "google/api/field_behavior.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.NetworkConnectivity.V1Alpha1";
+option go_package = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1alpha1;networkconnectivity";
+option java_multiple_files = true;
+option java_outer_classname = "CommonProto";
+option java_package = "com.google.cloud.networkconnectivity.v1alpha1";
+option php_namespace = "Google\\Cloud\\NetworkConnectivity\\V1alpha1";
+option ruby_package = "Google::Cloud::NetworkConnectivity::V1alpha1";
+
+// Represents the metadata of the 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 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 [(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];
+}
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto
new file mode 100644
index 0000000..6f1b8ee
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto
@@ -0,0 +1,551 @@
+// 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.networkconnectivity.v1alpha1;
+
+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.NetworkConnectivity.V1Alpha1";
+option go_package = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1alpha1;networkconnectivity";
+option java_multiple_files = true;
+option java_outer_classname = "HubProto";
+option java_package = "com.google.cloud.networkconnectivity.v1alpha1";
+option php_namespace = "Google\\Cloud\\NetworkConnectivity\\V1alpha1";
+option ruby_package = "Google::Cloud::NetworkConnectivity::V1alpha1";
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/VpnTunnel"
+ pattern: "projects/{project}/regions/{region}/vpnTunnels/{resource_id}"
+};
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/InterconnectAttachment"
+ pattern: "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}"
+};
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/Instance"
+ pattern: "projects/{project}/zones/{zone}/instances/{instance}"
+};
+
+// Network Connectivity Center is a hub-and-spoke abstraction for
+// network connectivity management in Google Cloud. It reduces
+// operational complexity through a simple, centralized connectivity management
+// model.
+service HubService {
+ option (google.api.default_host) = "networkconnectivity.googleapis.com";
+ option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
+
+ // Lists Hubs in a given project and location.
+ rpc ListHubs(ListHubsRequest) returns (ListHubsResponse) {
+ option (google.api.http) = {
+ get: "/v1alpha1/{parent=projects/*/locations/global}/hubs"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Gets details of a single Hub.
+ rpc GetHub(GetHubRequest) returns (Hub) {
+ option (google.api.http) = {
+ get: "/v1alpha1/{name=projects/*/locations/global/hubs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates a new Hub in a given project and location.
+ rpc CreateHub(CreateHubRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha1/{parent=projects/*/locations/global}/hubs"
+ body: "hub"
+ };
+ option (google.api.method_signature) = "parent,hub,hub_id";
+ option (google.longrunning.operation_info) = {
+ response_type: "Hub"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates the parameters of a single Hub.
+ rpc UpdateHub(UpdateHubRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1alpha1/{hub.name=projects/*/locations/global/hubs/*}"
+ body: "hub"
+ };
+ option (google.api.method_signature) = "hub,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Hub"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Deletes a single Hub.
+ rpc DeleteHub(DeleteHubRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1alpha1/{name=projects/*/locations/global/hubs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Lists Spokes in a given project and location.
+ rpc ListSpokes(ListSpokesRequest) returns (ListSpokesResponse) {
+ option (google.api.http) = {
+ get: "/v1alpha1/{parent=projects/*/locations/*}/spokes"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Gets details of a single Spoke.
+ rpc GetSpoke(GetSpokeRequest) returns (Spoke) {
+ option (google.api.http) = {
+ get: "/v1alpha1/{name=projects/*/locations/*/spokes/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates a new Spoke in a given project and location.
+ rpc CreateSpoke(CreateSpokeRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1alpha1/{parent=projects/*/locations/*}/spokes"
+ body: "spoke"
+ };
+ option (google.api.method_signature) = "parent,spoke,spoke_id";
+ option (google.longrunning.operation_info) = {
+ response_type: "Spoke"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates the parameters of a single Spoke.
+ rpc UpdateSpoke(UpdateSpokeRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1alpha1/{spoke.name=projects/*/locations/*/spokes/*}"
+ body: "spoke"
+ };
+ option (google.api.method_signature) = "spoke,update_mask";
+ option (google.longrunning.operation_info) = {
+ response_type: "Spoke"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Deletes a single Spoke.
+ rpc DeleteSpoke(DeleteSpokeRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1alpha1/{name=projects/*/locations/*/spokes/*}"
+ };
+ option (google.api.method_signature) = "name";
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+}
+
+// Network Connectivity Center is a hub-and-spoke abstraction for
+// network connectivity management in Google Cloud. It reduces
+// operational complexity through a simple, centralized connectivity management
+// model. Following is the resource message of a hub.
+message Hub {
+ option (google.api.resource) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ pattern: "projects/{project}/locations/global/hubs/{hub}"
+ };
+
+ // Immutable. The name of a Hub resource.
+ string name = 1 [(google.api.field_behavior) = IMMUTABLE];
+
+ // Time when the Hub was created.
+ google.protobuf.Timestamp create_time = 2;
+
+ // Time when the Hub was updated.
+ google.protobuf.Timestamp update_time = 3;
+
+ // User-defined labels.
+ map<string, string> labels = 4;
+
+ // Short description of the hub resource.
+ string description = 5;
+
+ // Output only. A list of the URIs of all attached spokes
+ repeated string spokes = 6 [
+ (google.api.field_behavior) = OUTPUT_ONLY,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Spoke"
+ }
+ ];
+
+ // Output only. Google-generated UUID for this resource. This is unique across all Hub
+ // resources. If a Hub resource is deleted and another with the same name is
+ // created, it gets a different unique_id.
+ string unique_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The current lifecycle state of this Hub.
+ State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
+// A Spoke is an abstraction of a network attachment being attached
+// to a Hub. A Spoke can be underlying a VPN tunnel, a
+// VLAN (interconnect) attachment, a Router appliance, etc.
+message Spoke {
+ option (google.api.resource) = {
+ type: "networkconnectivity.googleapis.com/Spoke"
+ pattern: "projects/{project}/locations/{location}/spokes/{spoke}"
+ };
+
+ // Immutable. The name of a Spoke resource.
+ string name = 1 [(google.api.field_behavior) = IMMUTABLE];
+
+ // The time when the Spoke was created.
+ google.protobuf.Timestamp create_time = 2;
+
+ // The time when the Spoke was updated.
+ google.protobuf.Timestamp update_time = 3;
+
+ // User-defined labels.
+ map<string, string> labels = 4;
+
+ // Short description of the spoke resource
+ string description = 5;
+
+ // The resource URL of the hub resource that the spoke is attached to
+ string hub = 6 [(google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ }];
+
+ // The URIs of linked VPN tunnel resources
+ repeated string linked_vpn_tunnels = 12 [(google.api.resource_reference) = {
+ type: "compute.googleapis.com/VpnTunnel"
+ }];
+
+ // The URIs of linked interconnect attachment resources
+ repeated string linked_interconnect_attachments = 13 [(google.api.resource_reference) = {
+ type: "compute.googleapis.com/InterconnectAttachment"
+ }];
+
+ // The URIs of linked Router appliance resources
+ repeated RouterApplianceInstance linked_router_appliance_instances = 14;
+
+ // Output only. Google-generated UUID for this resource. This is unique across all Spoke
+ // resources. If a Spoke resource is deleted and another with the same name is
+ // created, it gets a different unique_id.
+ string unique_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The current lifecycle state of this Hub.
+ State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
+// Request for [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] method.
+message ListHubsRequest {
+ // Required. The parent resource's name.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // The maximum number of results per page that should be returned.
+ int32 page_size = 2;
+
+ // The page token.
+ string page_token = 3;
+
+ // A filter expression that filters the results listed in the response.
+ string filter = 4;
+
+ // Sort the results by a certain order.
+ string order_by = 5;
+}
+
+// Response for [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] method.
+message ListHubsResponse {
+ // Hubs to be returned.
+ repeated Hub hubs = 1;
+
+ // The next pagination token in the List response. It should be used as
+ // page_token for the following request. An empty value means no more result.
+ string next_page_token = 2;
+
+ // Locations that could not be reached.
+ repeated string unreachable = 3;
+}
+
+// Request for [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub] method.
+message GetHubRequest {
+ // Required. Name of the Hub resource to get.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ }
+ ];
+}
+
+// Request for [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub] method.
+message CreateHubRequest {
+ // Required. The parent resource's name of the Hub.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Optional. Unique id for the Hub to create.
+ string hub_id = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. Initial values for a new Hub.
+ Hub hub = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request for [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub] method.
+message UpdateHubRequest {
+ // Optional. Field mask is used to specify the fields to be overwritten in the
+ // Hub resource by the update.
+ // 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 then all fields will be overwritten.
+ google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. The state that the Hub should be in after the update.
+ Hub hub = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The request for [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub].
+message DeleteHubRequest {
+ // Required. The name of the Hub to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Hub"
+ }
+ ];
+
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes after the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The request for [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes].
+message ListSpokesRequest {
+ // Required. The parent's resource name.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // The maximum number of results per page that should be returned.
+ int32 page_size = 2;
+
+ // The page token.
+ string page_token = 3;
+
+ // A filter expression that filters the results listed in the response.
+ string filter = 4;
+
+ // Sort the results by a certain order.
+ string order_by = 5;
+}
+
+// The response for [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes].
+message ListSpokesResponse {
+ // Spokes to be returned.
+ repeated Spoke spokes = 1;
+
+ // The next pagination token in the List response. It should be used as
+ // page_token for the following request. An empty value means no more result.
+ string next_page_token = 2;
+
+ // Locations that could not be reached.
+ repeated string unreachable = 3;
+}
+
+// The request for [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke].
+message GetSpokeRequest {
+ // Required. The name of Spoke resource.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Spoke"
+ }
+ ];
+}
+
+// The request for [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke].
+message CreateSpokeRequest {
+ // Required. The parent's resource name of the Spoke.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Optional. Unique id for the Spoke to create.
+ string spoke_id = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. Initial values for a new Hub.
+ Spoke spoke = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request for [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke] method.
+message UpdateSpokeRequest {
+ // Optional. Field mask is used to specify the fields to be overwritten in the
+ // Spoke resource by the update.
+ // 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 then all fields will be overwritten.
+ google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. The state that the Spoke should be in after the update.
+ Spoke spoke = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// The request for [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke].
+message DeleteSpokeRequest {
+ // Required. The name of the Spoke to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "networkconnectivity.googleapis.com/Spoke"
+ }
+ ];
+
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes after the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// RouterAppliance represents a Router appliance which is specified by a VM URI
+// and a NIC address.
+message RouterApplianceInstance {
+ // The URI of the virtual machine resource
+ string virtual_machine = 1 [(google.api.resource_reference) = {
+ type: "compute.googleapis.com/Instance"
+ }];
+
+ // The IP address of the network interface to use for peering.
+ string ip_address = 3;
+
+ string network_interface = 2 [deprecated = true];
+}
+
+// The State enum represents the lifecycle of a Network Connectivity Center
+// resource.
+enum State {
+ // No state information available
+ STATE_UNSPECIFIED = 0;
+
+ // The resource's create operation is in progress
+ CREATING = 1;
+
+ // The resource is active
+ ACTIVE = 2;
+
+ // The resource's Delete operation is in progress
+ DELETING = 3;
+}
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_grpc_service_config.json b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_grpc_service_config.json
new file mode 100644
index 0000000..d2db795
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_grpc_service_config.json
@@ -0,0 +1,24 @@
+{
+ "methodConfig": [{
+ "name": [{ "service": "google.cloud.networkconnectivity.v1alpha1.HubService" }],
+ "timeout": "60s",
+ "retryPolicy": {
+ "maxAttempts": 5,
+ "initialBackoff": "1s",
+ "maxBackoff": "10s",
+ "backoffMultiplier": 1.3,
+ "retryableStatusCodes": ["UNAVAILABLE"]
+ }
+ },
+ {
+ "name": [
+ { "service": "google.cloud.networkconnectivity.v1alpha1.HubService", "method": "CreateHub" },
+ { "service": "google.cloud.networkconnectivity.v1alpha1.HubService", "method": "UpdateHub" },
+ { "service": "google.cloud.networkconnectivity.v1alpha1.HubService", "method": "DeleteHub" },
+ { "service": "google.cloud.networkconnectivity.v1alpha1.HubService", "method": "CreateSpoke" },
+ { "service": "google.cloud.networkconnectivity.v1alpha1.HubService", "method": "UpdateSpoke" },
+ { "service": "google.cloud.networkconnectivity.v1alpha1.HubService", "method": "DeleteSpoke" }
+ ],
+ "timeout": "60s"
+ }]
+}
diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1.yaml b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1.yaml
new file mode 100644
index 0000000..f3e8dbf
--- /dev/null
+++ b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1.yaml
@@ -0,0 +1,119 @@
+type: google.api.Service
+config_version: 3
+name: networkconnectivity.googleapis.com
+title: Network Connectivity API
+
+apis:
+- name: google.cloud.networkconnectivity.v1alpha1.HubService
+
+types:
+- name: google.cloud.networkconnectivity.v1alpha1.OperationMetadata
+
+documentation:
+ summary: |-
+ The Network Connectivity API will be home to various services which provide
+ information pertaining to network connectivity.
+ overview: |-
+ The Network Connectivity API will be home to various services which
+ provide information pertaining to network connectivity. This includes
+ information like interconnects, VPNs, VPCs, routing information, ip
+ address details, etc. This information will help customers verify their
+ network configurations and helps them to discover misconfigurations,
+ inconsistencies, etc.
+ 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.location.Locations.GetLocation
+ deadline: 60.0
+ - selector: google.cloud.location.Locations.ListLocations
+ deadline: 60.0
+ - selector: 'google.cloud.networkconnectivity.v1alpha1.HubService.*'
+ deadline: 60.0
+ - selector: 'google.iam.v1.IAMPolicy.*'
+ deadline: 60.0
+ - selector: 'google.longrunning.Operations.*'
+ deadline: 60.0
+
+http:
+ rules:
+ - selector: google.cloud.location.Locations.GetLocation
+ get: '/v1alpha1/{name=projects/*/locations/*}'
+ - selector: google.cloud.location.Locations.ListLocations
+ get: '/v1alpha1/{name=projects/*}/locations'
+ - selector: google.iam.v1.IAMPolicy.GetIamPolicy
+ get: '/v1alpha1/{resource=projects/*/locations/global/hubs/*}:getIamPolicy'
+ additional_bindings:
+ - get: '/v1alpha1/{resource=projects/*/locations/*/spokes/*}:getIamPolicy'
+ - selector: google.iam.v1.IAMPolicy.SetIamPolicy
+ post: '/v1alpha1/{resource=projects/*/locations/global/hubs/*}:setIamPolicy'
+ body: '*'
+ additional_bindings:
+ - post: '/v1alpha1/{resource=projects/*/locations/*/spokes/*}:setIamPolicy'
+ body: '*'
+ - selector: google.iam.v1.IAMPolicy.TestIamPermissions
+ post: '/v1alpha1/{resource=projects/*/locations/global/hubs/*}:testIamPermissions'
+ body: '*'
+ additional_bindings:
+ - post: '/v1alpha1/{resource=projects/*/locations/*/spokes/*}:testIamPermissions'
+ body: '*'
+ - selector: google.longrunning.Operations.CancelOperation
+ post: '/v1alpha1/{name=projects/*/locations/*/operations/*}:cancel'
+ body: '*'
+ - selector: google.longrunning.Operations.DeleteOperation
+ delete: '/v1alpha1/{name=projects/*/locations/*/operations/*}'
+ - selector: google.longrunning.Operations.GetOperation
+ get: '/v1alpha1/{name=projects/*/locations/*/operations/*}'
+ - selector: google.longrunning.Operations.ListOperations
+ get: '/v1alpha1/{name=projects/*/locations/*}/operations'
+
+authentication:
+ rules:
+ - 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.cloud.networkconnectivity.v1alpha1.HubService.*'
+ 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