Clients can now target the v1alpha GKE Hub API to interact with Feature resources. PiperOrigin-RevId: 381332895pull/662/head
parent
7abd63f589
commit
3bd91d545c
17 changed files with 2635 additions and 30 deletions
@ -0,0 +1,348 @@ |
||||
# 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 = "gkehub_proto", |
||||
srcs = [ |
||||
"feature.proto", |
||||
"service.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:client_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"//google/api:resource_proto", |
||||
"//google/cloud/gkehub/v1alpha/cloudauditlogging:cloudauditlogging_proto", |
||||
"//google/cloud/gkehub/v1alpha/configmanagement:configmanagement_proto", |
||||
"//google/cloud/gkehub/v1alpha/metering:metering_proto", |
||||
"//google/cloud/gkehub/v1alpha/multiclusteringress:multiclusteringress_proto", |
||||
"//google/cloud/gkehub/v1alpha/servicemesh:servicemesh_proto", |
||||
"//google/longrunning:operations_proto", |
||||
"@com_google_protobuf//:field_mask_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
proto_library_with_info( |
||||
name = "gkehub_proto_with_info", |
||||
deps = [ |
||||
":gkehub_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 = "gkehub_java_proto", |
||||
deps = [":gkehub_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "gkehub_java_grpc", |
||||
srcs = [":gkehub_proto"], |
||||
deps = [":gkehub_java_proto"], |
||||
) |
||||
|
||||
java_gapic_library( |
||||
name = "gkehub_java_gapic", |
||||
srcs = [":gkehub_proto_with_info"], |
||||
grpc_service_config = "v1alpha_grpc_service_config.json", |
||||
test_deps = [ |
||||
":gkehub_java_grpc", |
||||
], |
||||
deps = [ |
||||
":gkehub_java_proto", |
||||
], |
||||
) |
||||
|
||||
java_gapic_test( |
||||
name = "gkehub_java_gapic_test_suite", |
||||
test_classes = [ |
||||
"com.google.cloud.gkehub.v1alpha.GkeHubClientTest", |
||||
], |
||||
runtime_deps = [":gkehub_java_gapic_test"], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
java_gapic_assembly_gradle_pkg( |
||||
name = "google-cloud-gkehub-v1alpha-java", |
||||
deps = [ |
||||
":gkehub_java_gapic", |
||||
":gkehub_java_grpc", |
||||
":gkehub_java_proto", |
||||
":gkehub_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 = "gkehub_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/gkehub/v1alpha", |
||||
protos = [":gkehub_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
"//google/cloud/gkehub/v1alpha/cloudauditlogging:cloudauditlogging_go_proto", |
||||
"//google/cloud/gkehub/v1alpha/configmanagement:configmanagement_go_proto", |
||||
"//google/cloud/gkehub/v1alpha/metering:metering_go_proto", |
||||
"//google/cloud/gkehub/v1alpha/multiclusteringress:multiclusteringress_go_proto", |
||||
"//google/cloud/gkehub/v1alpha/servicemesh:servicemesh_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
], |
||||
) |
||||
|
||||
go_gapic_library( |
||||
name = "gkehub_go_gapic", |
||||
srcs = [":gkehub_proto_with_info"], |
||||
grpc_service_config = "v1alpha_grpc_service_config.json", |
||||
importpath = "cloud.google.com/go/gkehub/apiv1alpha;gkehub", |
||||
metadata = True, |
||||
service_yaml = "gkehub_v1alpha.yaml", |
||||
deps = [ |
||||
":gkehub_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 = "gkehub_go_gapic_test", |
||||
srcs = [":gkehub_go_gapic_srcjar_test"], |
||||
embed = [":gkehub_go_gapic"], |
||||
importpath = "cloud.google.com/go/gkehub/apiv1alpha", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
go_gapic_assembly_pkg( |
||||
name = "gapi-cloud-gkehub-v1alpha-go", |
||||
deps = [ |
||||
":gkehub_go_gapic", |
||||
":gkehub_go_gapic_srcjar-metadata.srcjar", |
||||
":gkehub_go_gapic_srcjar-test.srcjar", |
||||
":gkehub_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"py_gapic_assembly_pkg", |
||||
"py_gapic_library", |
||||
) |
||||
|
||||
py_gapic_library( |
||||
name = "gkehub_py_gapic", |
||||
srcs = [":gkehub_proto"], |
||||
grpc_service_config = "v1alpha_grpc_service_config.json", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
py_gapic_assembly_pkg( |
||||
name = "gkehub-v1alpha-py", |
||||
deps = [ |
||||
":gkehub_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 = "gkehub_php_proto", |
||||
deps = [":gkehub_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "gkehub_php_grpc", |
||||
srcs = [":gkehub_proto"], |
||||
deps = [":gkehub_php_proto"], |
||||
) |
||||
|
||||
php_gapic_library( |
||||
name = "gkehub_php_gapic", |
||||
srcs = [":gkehub_proto_with_info"], |
||||
grpc_service_config = "v1alpha_grpc_service_config.json", |
||||
service_yaml = "gkehub_v1alpha.yaml", |
||||
deps = [ |
||||
":gkehub_php_grpc", |
||||
":gkehub_php_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
php_gapic_assembly_pkg( |
||||
name = "google-cloud-gkehub-v1alpha-php", |
||||
deps = [ |
||||
":gkehub_php_gapic", |
||||
":gkehub_php_grpc", |
||||
":gkehub_php_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
nodejs_gapic_library( |
||||
name = "gkehub_nodejs_gapic", |
||||
package_name = "@google-cloud/gkehub", |
||||
src = ":gkehub_proto_with_info", |
||||
extra_protoc_parameters = ["metadata"], |
||||
grpc_service_config = "v1alpha_grpc_service_config.json", |
||||
package = "google.cloud.gkehub.v1alpha", |
||||
service_yaml = "gkehub_v1alpha.yaml", |
||||
deps = [], |
||||
) |
||||
|
||||
nodejs_gapic_assembly_pkg( |
||||
name = "gkehub-v1alpha-nodejs", |
||||
deps = [ |
||||
":gkehub_nodejs_gapic", |
||||
":gkehub_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 = "gkehub_ruby_proto", |
||||
deps = [":gkehub_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "gkehub_ruby_grpc", |
||||
srcs = [":gkehub_proto"], |
||||
deps = [":gkehub_ruby_proto"], |
||||
) |
||||
|
||||
ruby_cloud_gapic_library( |
||||
name = "gkehub_ruby_gapic", |
||||
srcs = [":gkehub_proto_with_info"], |
||||
extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-gkehub-v1alpha"], |
||||
grpc_service_config = "v1alpha_grpc_service_config.json", |
||||
deps = [ |
||||
":gkehub_ruby_grpc", |
||||
":gkehub_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
ruby_gapic_assembly_pkg( |
||||
name = "google-cloud-gkehub-v1alpha-ruby", |
||||
deps = [ |
||||
":gkehub_ruby_gapic", |
||||
":gkehub_ruby_grpc", |
||||
":gkehub_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 = "gkehub_csharp_proto", |
||||
deps = [":gkehub_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "gkehub_csharp_grpc", |
||||
srcs = [":gkehub_proto"], |
||||
deps = [":gkehub_csharp_proto"], |
||||
) |
||||
|
||||
csharp_gapic_library( |
||||
name = "gkehub_csharp_gapic", |
||||
srcs = [":gkehub_proto_with_info"], |
||||
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", |
||||
grpc_service_config = "v1alpha_grpc_service_config.json", |
||||
deps = [ |
||||
":gkehub_csharp_grpc", |
||||
":gkehub_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
csharp_gapic_assembly_pkg( |
||||
name = "google-cloud-gkehub-v1alpha-csharp", |
||||
deps = [ |
||||
":gkehub_csharp_gapic", |
||||
":gkehub_csharp_grpc", |
||||
":gkehub_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ rules here |
@ -0,0 +1,161 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
|
||||
# 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") |
||||
|
||||
proto_library( |
||||
name = "cloudauditlogging_proto", |
||||
srcs = [ |
||||
"cloudauditlogging.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "cloudauditlogging_java_proto", |
||||
deps = [":cloudauditlogging_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "cloudauditlogging_java_grpc", |
||||
srcs = [":cloudauditlogging_proto"], |
||||
deps = [":cloudauditlogging_java_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_proto_library", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "cloudauditlogging_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/gkehub/cloudauditlogging/v1alpha", |
||||
protos = [":cloudauditlogging_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"moved_proto_library", |
||||
"py_grpc_library", |
||||
"py_proto_library", |
||||
) |
||||
|
||||
moved_proto_library( |
||||
name = "cloudauditlogging_moved_proto", |
||||
srcs = [":cloudauditlogging_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
], |
||||
) |
||||
|
||||
py_proto_library( |
||||
name = "cloudauditlogging_py_proto", |
||||
deps = [":cloudauditlogging_moved_proto"], |
||||
) |
||||
|
||||
py_grpc_library( |
||||
name = "cloudauditlogging_py_grpc", |
||||
srcs = [":cloudauditlogging_moved_proto"], |
||||
deps = [":cloudauditlogging_py_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "cloudauditlogging_php_proto", |
||||
deps = [":cloudauditlogging_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "cloudauditlogging_php_grpc", |
||||
srcs = [":cloudauditlogging_proto"], |
||||
deps = [":cloudauditlogging_php_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "cloudauditlogging_ruby_proto", |
||||
deps = [":cloudauditlogging_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "cloudauditlogging_ruby_grpc", |
||||
srcs = [":cloudauditlogging_proto"], |
||||
deps = [":cloudauditlogging_ruby_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "cloudauditlogging_csharp_proto", |
||||
deps = [":cloudauditlogging_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "cloudauditlogging_csharp_grpc", |
||||
srcs = [":cloudauditlogging_proto"], |
||||
deps = [":cloudauditlogging_csharp_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ code here |
@ -0,0 +1,37 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkehub.cloudauditlogging.v1alpha; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeHub.CloudAuditLogging.V1Alpha"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/cloudauditlogging/v1alpha;cloudauditlogging"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "CloudAuditLoggingProto"; |
||||
option java_package = "com.google.cloud.gkehub.cloudauditlogging.v1alpha"; |
||||
option php_namespace = "Google\\Cloud\\GkeHub\\CloudAuditLogging\\V1alpha"; |
||||
option ruby_package = "Google::Cloud::GkeHub::CloudAuditLogging::V1alpha"; |
||||
|
||||
// **Cloud Audit Logging**: Spec for Audit Logging Allowlisting. |
||||
message FeatureSpec { |
||||
// Service account that should be allowlisted to send the audit logs; eg |
||||
// cloudauditlogging@gcp-project.iam.gserviceaccount.com. These accounts must |
||||
// already exist, but do not need to have any permissions granted to them. |
||||
// The customer's entitlements will be checked prior to allowlisting (i.e. |
||||
// the customer must be an Anthos customer.) |
||||
repeated string allowlisted_service_accounts = 1; |
||||
} |
@ -0,0 +1,163 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
|
||||
# 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") |
||||
|
||||
proto_library( |
||||
name = "configmanagement_proto", |
||||
srcs = [ |
||||
"configmanagement.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "configmanagement_java_proto", |
||||
deps = [":configmanagement_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "configmanagement_java_grpc", |
||||
srcs = [":configmanagement_proto"], |
||||
deps = [":configmanagement_java_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_proto_library", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "configmanagement_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/gkehub/configmanagement/v1alpha", |
||||
protos = [":configmanagement_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"moved_proto_library", |
||||
"py_grpc_library", |
||||
"py_proto_library", |
||||
) |
||||
|
||||
moved_proto_library( |
||||
name = "configmanagement_moved_proto", |
||||
srcs = [":configmanagement_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
py_proto_library( |
||||
name = "configmanagement_py_proto", |
||||
deps = [":configmanagement_moved_proto"], |
||||
) |
||||
|
||||
py_grpc_library( |
||||
name = "configmanagement_py_grpc", |
||||
srcs = [":configmanagement_moved_proto"], |
||||
deps = [":configmanagement_py_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "configmanagement_php_proto", |
||||
deps = [":configmanagement_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "configmanagement_php_grpc", |
||||
srcs = [":configmanagement_proto"], |
||||
deps = [":configmanagement_php_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "configmanagement_ruby_proto", |
||||
deps = [":configmanagement_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "configmanagement_ruby_grpc", |
||||
srcs = [":configmanagement_proto"], |
||||
deps = [":configmanagement_ruby_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "configmanagement_csharp_proto", |
||||
deps = [":configmanagement_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "configmanagement_csharp_grpc", |
||||
srcs = [":configmanagement_proto"], |
||||
deps = [":configmanagement_csharp_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ code here |
@ -0,0 +1,416 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkehub.configmanagement.v1alpha; |
||||
|
||||
import "google/protobuf/timestamp.proto"; |
||||
import "google/api/annotations.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeHub.ConfigManagement.V1Alpha"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/configmanagement/v1alpha;configmanagement"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "ConfigManagementProto"; |
||||
option java_package = "com.google.cloud.gkehub.configmanagement.v1alpha"; |
||||
option php_namespace = "Google\\Cloud\\GkeHub\\ConfigManagement\\V1alpha"; |
||||
option ruby_package = "Google::Cloud::GkeHub::ConfigManagement::V1alpha"; |
||||
|
||||
// Enum representing the state of an ACM's deployment on a cluster |
||||
enum DeploymentState { |
||||
// Deployment's state cannot be determined |
||||
DEPLOYMENT_STATE_UNSPECIFIED = 0; |
||||
|
||||
// Deployment is not installed |
||||
NOT_INSTALLED = 1; |
||||
|
||||
// Deployment is installed |
||||
INSTALLED = 2; |
||||
|
||||
// Deployment was attempted to be installed, but has errors |
||||
ERROR = 3; |
||||
} |
||||
|
||||
// **Anthos Config Management**: State for a single cluster. |
||||
message MembershipState { |
||||
// The user-defined name for the cluster used by ClusterSelectors to group |
||||
// clusters together. This should match Membership's membership_name, |
||||
// unless the user installed ACM on the cluster manually prior to enabling |
||||
// the ACM hub feature. |
||||
// Unique within a Anthos Config Management installation. |
||||
string cluster_name = 1; |
||||
|
||||
// Membership configuration in the cluster. This represents the actual state |
||||
// in the cluster, while the MembershipSpec in the FeatureSpec represents |
||||
// the intended state |
||||
MembershipSpec membership_spec = 2; |
||||
|
||||
// Current install status of ACM's Operator |
||||
OperatorState operator_state = 3; |
||||
|
||||
// Current sync status |
||||
ConfigSyncState config_sync_state = 4; |
||||
|
||||
// PolicyController status |
||||
PolicyControllerState policy_controller_state = 5; |
||||
|
||||
// Binauthz status |
||||
BinauthzState binauthz_state = 6; |
||||
|
||||
// Hierarchy Controller status |
||||
HierarchyControllerState hierarchy_controller_state = 7; |
||||
} |
||||
|
||||
// **Anthos Config Management**: Configuration for a single cluster. |
||||
// Intended to parallel the ConfigManagement CR. |
||||
message MembershipSpec { |
||||
// Config Sync configuration for the cluster. |
||||
ConfigSync config_sync = 1; |
||||
|
||||
// Policy Controller configuration for the cluster. |
||||
PolicyController policy_controller = 2; |
||||
|
||||
// Binauthz conifguration for the cluster. |
||||
BinauthzConfig binauthz = 3; |
||||
|
||||
// Hierarchy Controller configuration for the cluster. |
||||
HierarchyControllerConfig hierarchy_controller = 4; |
||||
|
||||
// Version of ACM installed. |
||||
string version = 10; |
||||
} |
||||
|
||||
// Configuration for Config Sync |
||||
message ConfigSync { |
||||
// Git repo configuration for the cluster. |
||||
GitConfig git = 7; |
||||
|
||||
// Specifies whether the Config Sync Repo is |
||||
// in “hierarchical” or “unstructured” mode. |
||||
string source_format = 8; |
||||
} |
||||
|
||||
// Git repo configuration for a single cluster. |
||||
message GitConfig { |
||||
// The URL of the Git repository to use as the source of truth. |
||||
string sync_repo = 1; |
||||
|
||||
// The branch of the repository to sync from. Default: master. |
||||
string sync_branch = 2; |
||||
|
||||
// The path within the Git repository that represents the top level of the |
||||
// repo to sync. Default: the root directory of the repository. |
||||
string policy_dir = 3; |
||||
|
||||
// Period in seconds between consecutive syncs. Default: 15. |
||||
int64 sync_wait_secs = 4; |
||||
|
||||
// Git revision (tag or hash) to check out. Default HEAD. |
||||
string sync_rev = 5; |
||||
|
||||
// Type of secret configured for access to the Git repo. |
||||
string secret_type = 6; |
||||
|
||||
// URL for the HTTPS proxy to be used when communicating with the Git repo. |
||||
string https_proxy = 7; |
||||
|
||||
// The GCP Service Account Email used for auth when secret_type is |
||||
// gcpServiceAccount. |
||||
string gcp_service_account_email = 8; |
||||
} |
||||
|
||||
// Configuration for Policy Controller |
||||
message PolicyController { |
||||
// Enables the installation of Policy Controller. |
||||
// If false, the rest of PolicyController fields take no |
||||
// effect. |
||||
bool enabled = 1; |
||||
|
||||
// Installs the default template library along with Policy Controller. |
||||
optional bool template_library_installed = 2; |
||||
|
||||
// Sets the interval for Policy Controller Audit Scans (in seconds). |
||||
// When set to 0, this disables audit functionality altogether. |
||||
optional int64 audit_interval_seconds = 3; |
||||
|
||||
// The set of namespaces that are excluded from Policy Controller checks. |
||||
// Namespaces do not need to currently exist on the cluster. |
||||
repeated string exemptable_namespaces = 4; |
||||
|
||||
// Enables the ability to use Constraint Templates that reference to objects |
||||
// other than the object currently being evaluated. |
||||
bool referential_rules_enabled = 5; |
||||
|
||||
// Logs all denies and dry run failures. |
||||
bool log_denies_enabled = 6; |
||||
|
||||
// Enable users to try out mutation for PolicyController. |
||||
bool mutation_enabled = 7; |
||||
} |
||||
|
||||
// Configuration for Binauthz |
||||
message BinauthzConfig { |
||||
// Whether binauthz is enabled in this cluster. |
||||
bool enabled = 1; |
||||
} |
||||
|
||||
// Configuration for Hierarchy Controller |
||||
message HierarchyControllerConfig { |
||||
// Whether Hierarchy Controller is enabled in this cluster. |
||||
bool enabled = 1; |
||||
|
||||
// Whether pod tree labels are enabled in this cluster. |
||||
bool enable_pod_tree_labels = 2; |
||||
|
||||
// Whether hierarchical resource quota is enabled in this cluster. |
||||
bool enable_hierarchical_resource_quota = 3; |
||||
} |
||||
|
||||
// Deployment state for Hierarchy Controller |
||||
message HierarchyControllerDeploymentState { |
||||
// The deployment state for open source HNC (e.g. v0.7.0-hc.0) |
||||
DeploymentState hnc = 1; |
||||
|
||||
// The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1) |
||||
DeploymentState extension = 2; |
||||
} |
||||
|
||||
// Version for Hierarchy Controller |
||||
message HierarchyControllerVersion { |
||||
// Version for open source HNC |
||||
string hnc = 1; |
||||
|
||||
// Version for Hierarchy Controller extension |
||||
string extension = 2; |
||||
} |
||||
|
||||
// State for Hierarchy Controller |
||||
message HierarchyControllerState { |
||||
// The version for Hierarchy Controller |
||||
HierarchyControllerVersion version = 1; |
||||
|
||||
// The deployment state for Hierarchy Controller |
||||
HierarchyControllerDeploymentState state = 2; |
||||
} |
||||
|
||||
// State information for an ACM's Operator |
||||
message OperatorState { |
||||
// The semenatic version number of the operator |
||||
string version = 1; |
||||
|
||||
// The state of the Operator's deployment |
||||
DeploymentState deployment_state = 2; |
||||
|
||||
// Install errors. |
||||
repeated InstallError errors = 3; |
||||
} |
||||
|
||||
// Errors pertaining to the installation of ACM |
||||
message InstallError { |
||||
// A string representing the user facing error message |
||||
string error_message = 1; |
||||
} |
||||
|
||||
// State information for ConfigSync |
||||
message ConfigSyncState { |
||||
// The version of ConfigSync deployed |
||||
ConfigSyncVersion version = 1; |
||||
|
||||
// Information about the deployment of ConfigSync, including the version |
||||
// of the various Pods deployed |
||||
ConfigSyncDeploymentState deployment_state = 2; |
||||
|
||||
// The state of ConfigSync's process to sync configs to a cluster |
||||
SyncState sync_state = 3; |
||||
} |
||||
|
||||
// Specific versioning information pertaining to ConfigSync's Pods |
||||
message ConfigSyncVersion { |
||||
// Version of the deployed importer pod |
||||
string importer = 1; |
||||
|
||||
// Version of the deployed syncer pod |
||||
string syncer = 2; |
||||
|
||||
// Version of the deployed git-sync pod |
||||
string git_sync = 3; |
||||
|
||||
// Version of the deployed monitor pod |
||||
string monitor = 4; |
||||
|
||||
// Version of the deployed reconciler-manager pod |
||||
string reconciler_manager = 5; |
||||
|
||||
// Version of the deployed reconciler container in root-reconciler pod |
||||
string root_reconciler = 6; |
||||
} |
||||
|
||||
// The state of ConfigSync's deployment on a cluster |
||||
message ConfigSyncDeploymentState { |
||||
// Deployment state of the importer pod |
||||
DeploymentState importer = 1; |
||||
|
||||
// Deployment state of the syncer pod |
||||
DeploymentState syncer = 2; |
||||
|
||||
// Deployment state of the git-sync pod |
||||
DeploymentState git_sync = 3; |
||||
|
||||
// Deployment state of the monitor pod |
||||
DeploymentState monitor = 4; |
||||
|
||||
// Deployment state of reconciler-manager pod |
||||
DeploymentState reconciler_manager = 5; |
||||
|
||||
// Deployment state of root-reconciler |
||||
DeploymentState root_reconciler = 6; |
||||
} |
||||
|
||||
// State indicating an ACM's progress syncing configurations to a cluster |
||||
message SyncState { |
||||
// An enum representing an ACM's status syncing configs to a cluster |
||||
enum SyncCode { |
||||
// ACM cannot determine a sync code |
||||
SYNC_CODE_UNSPECIFIED = 0; |
||||
|
||||
// ACM successfully synced the git Repo with the cluster |
||||
SYNCED = 1; |
||||
|
||||
// ACM is in the progress of syncing a new change |
||||
PENDING = 2; |
||||
|
||||
// Indicates an error configuring ACM, and user action is required |
||||
ERROR = 3; |
||||
|
||||
// ACM has been installed (operator manifest deployed), |
||||
// but not configured. |
||||
NOT_CONFIGURED = 4; |
||||
|
||||
// ACM has not been installed (no operator pod found) |
||||
NOT_INSTALLED = 5; |
||||
|
||||
// Error authorizing with the cluster |
||||
UNAUTHORIZED = 6; |
||||
|
||||
// Cluster could not be reached |
||||
UNREACHABLE = 7; |
||||
} |
||||
|
||||
// Token indicating the state of the repo. |
||||
string source_token = 1; |
||||
|
||||
// Token indicating the state of the importer. |
||||
string import_token = 2; |
||||
|
||||
// Token indicating the state of the syncer. |
||||
string sync_token = 3; |
||||
|
||||
// Deprecated: use last_sync_time instead. |
||||
// Timestamp of when ACM last successfully synced the repo |
||||
// The time format is specified in https://golang.org/pkg/time/#Time.String |
||||
string last_sync = 4 [deprecated = true]; |
||||
|
||||
// Timestamp type of when ACM last successfully synced the repo |
||||
google.protobuf.Timestamp last_sync_time = 7; |
||||
|
||||
// Sync status code |
||||
SyncCode code = 5; |
||||
|
||||
// A list of errors resulting from problematic configs. |
||||
// This list will be truncated after 100 errors, although it is |
||||
// unlikely for that many errors to simultaneously exist. |
||||
repeated SyncError errors = 6; |
||||
} |
||||
|
||||
// An ACM created error representing a problem syncing configurations |
||||
message SyncError { |
||||
// An ACM defined error code |
||||
string code = 1; |
||||
|
||||
// A description of the error |
||||
string error_message = 2; |
||||
|
||||
// A list of config(s) associated with the error, if any |
||||
repeated ErrorResource error_resources = 3; |
||||
} |
||||
|
||||
// Model for a config file in the git repo with an associated Sync error |
||||
message ErrorResource { |
||||
// Path in the git repo of the erroneous config |
||||
string source_path = 1; |
||||
|
||||
// Metadata name of the resource that is causing an error |
||||
string resource_name = 2; |
||||
|
||||
// Namespace of the resource that is causing an error |
||||
string resource_namespace = 3; |
||||
|
||||
// Group/version/kind of the resource that is causing an error |
||||
GroupVersionKind resource_gvk = 4; |
||||
} |
||||
|
||||
// A Kubernetes object's GVK |
||||
message GroupVersionKind { |
||||
// Kubernetes Group |
||||
string group = 1; |
||||
|
||||
// Kubernetes Version |
||||
string version = 2; |
||||
|
||||
// Kubernetes Kind |
||||
string kind = 3; |
||||
} |
||||
|
||||
// State for PolicyControllerState. |
||||
message PolicyControllerState { |
||||
// The version of Gatekeeper Policy Controller deployed. |
||||
PolicyControllerVersion version = 1; |
||||
|
||||
// The state about the policy controller installation. |
||||
GatekeeperDeploymentState deployment_state = 2; |
||||
} |
||||
|
||||
// The build version of Gatekeeper Policy Controller is using. |
||||
message PolicyControllerVersion { |
||||
// The gatekeeper image tag that is composed of ACM version, git tag, build |
||||
// number. |
||||
string version = 1; |
||||
} |
||||
|
||||
// State for Binauthz |
||||
message BinauthzState { |
||||
// The state of the binauthz webhook. |
||||
DeploymentState webhook = 1; |
||||
|
||||
// The version of binauthz that is installed. |
||||
BinauthzVersion version = 2; |
||||
} |
||||
|
||||
// The version of binauthz. |
||||
message BinauthzVersion { |
||||
// The version of the binauthz webhook. |
||||
string webhook_version = 1; |
||||
} |
||||
|
||||
// State of Policy Controller installation. |
||||
message GatekeeperDeploymentState { |
||||
// Status of gatekeeper-controller-manager pod. |
||||
DeploymentState gatekeeper_controller_manager_state = 1; |
||||
|
||||
// Status of gatekeeper-audit deployment. |
||||
DeploymentState gatekeeper_audit = 2; |
||||
|
||||
// Status of the pod serving the mutation webhook. |
||||
DeploymentState gatekeeper_mutation = 3; |
||||
} |
@ -0,0 +1,216 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkehub.v1alpha; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto"; |
||||
import "google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto"; |
||||
import "google/cloud/gkehub/v1alpha/metering/metering.proto"; |
||||
import "google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto"; |
||||
import "google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
import "google/api/annotations.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeHub.V1Alpha"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/v1alpha;gkehub"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "FeatureProto"; |
||||
option java_package = "com.google.cloud.gkehub.v1alpha"; |
||||
option php_namespace = "Google\\Cloud\\GkeHub\\V1alpha"; |
||||
option ruby_package = "Google::Cloud::GkeHub::V1alpha"; |
||||
|
||||
// Feature represents the settings and status of any Hub Feature. |
||||
message Feature { |
||||
option (google.api.resource) = { |
||||
type: "gkehub.googleapis.com/Feature" |
||||
pattern: "projects/{project}/locations/{location}/features/{feature}" |
||||
}; |
||||
|
||||
// Output only. The full, unique name of this Feature resource in the format |
||||
// `projects/*/locations/*/features/*`. |
||||
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// GCP labels for this Feature. |
||||
map<string, string> labels = 2; |
||||
|
||||
// Output only. State of the Feature resource itself. |
||||
FeatureResourceState resource_state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Optional. Hub-wide Feature configuration. If this Feature does not support any |
||||
// Hub-wide configuration, this field may be unused. |
||||
CommonFeatureSpec spec = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Membership-specific configuration for this Feature. If this Feature does |
||||
// not support any per-Membership configuration, this field may be unused. |
||||
// |
||||
// The keys indicate which Membership the configuration is for, in the form: |
||||
// |
||||
// projects/{p}/locations/{l}/memberships/{m} |
||||
// |
||||
// Where {p} is the project, {l} is a valid location and {m} is a valid |
||||
// Membership in this project at that location. {p} WILL match the Feature's |
||||
// project. |
||||
// |
||||
// {p} will always be returned as the project number, but the project ID is |
||||
// also accepted during input. If the same Membership is specified in the map |
||||
// twice (using the project ID form, and the project number form), exactly |
||||
// ONE of the entries will be saved, with no guarantees as to which. For this |
||||
// reason, it is recommended the same format be used for all entries when |
||||
// mutating a Feature. |
||||
map<string, MembershipFeatureSpec> membership_specs = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Output only. The Hub-wide Feature state. |
||||
CommonFeatureState state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. Membership-specific Feature status. If this Feature does |
||||
// report any per-Membership status, this field may be unused. |
||||
// |
||||
// The keys indicate which Membership the state is for, in the form: |
||||
// |
||||
// projects/{p}/locations/{l}/memberships/{m} |
||||
// |
||||
// Where {p} is the project number, {l} is a valid location and {m} is a valid |
||||
// Membership in this project at that location. {p} MUST match the Feature's |
||||
// project number. |
||||
map<string, MembershipFeatureState> membership_states = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. When the Feature resource was created. |
||||
google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. When the Feature resource was last updated. |
||||
google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. When the Feature resource was deleted. |
||||
google.protobuf.Timestamp delete_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// FeatureResourceState describes the state of a Feature *resource* in the |
||||
// GkeHub API. See `FeatureState` for the "running state" of the Feature in the |
||||
// Hub and across Memberships. |
||||
message FeatureResourceState { |
||||
// State describes the lifecycle status of a Feature. |
||||
enum State { |
||||
// State is unknown or not set. |
||||
STATE_UNSPECIFIED = 0; |
||||
|
||||
// The Feature is being enabled, and the Feature resource is being created. |
||||
// Once complete, the corresponding Feature will be enabled in this Hub. |
||||
ENABLING = 1; |
||||
|
||||
// The Feature is enabled in this Hub, and the Feature resource is fully |
||||
// available. |
||||
ACTIVE = 2; |
||||
|
||||
// The Feature is being disabled in this Hub, and the Feature resource |
||||
// is being deleted. |
||||
DISABLING = 3; |
||||
|
||||
// The Feature resource is being updated. |
||||
UPDATING = 4; |
||||
|
||||
// The Feature resource is being updated by the Hub Service. |
||||
SERVICE_UPDATING = 5; |
||||
} |
||||
|
||||
// The current state of the Feature resource in the Hub API. |
||||
State state = 1; |
||||
} |
||||
|
||||
// FeatureState describes the high-level state of a Feature. It may be used to |
||||
// describe a Feature's state at the environ-level, or per-membershop, depending |
||||
// on the context. |
||||
message FeatureState { |
||||
// Code represents a machine-readable, high-level status of the Feature. |
||||
enum Code { |
||||
// Unknown or not set. |
||||
CODE_UNSPECIFIED = 0; |
||||
|
||||
// The Feature is operating normally. |
||||
OK = 1; |
||||
|
||||
// The Feature has encountered an issue, and is operating in a degraded |
||||
// state. The Feature may need intervention to return to normal operation. |
||||
// See the description and any associated Feature-specific details for more |
||||
// information. |
||||
WARNING = 2; |
||||
|
||||
// The Feature is not operating or is in a severely degraded state. |
||||
// The Feature may need intervention to return to normal operation. |
||||
// See the description and any associated Feature-specific details for more |
||||
// information. |
||||
ERROR = 3; |
||||
} |
||||
|
||||
// The high-level, machine-readable status of this Feature. |
||||
Code code = 1; |
||||
|
||||
// A human-readable description of the current status. |
||||
string description = 2; |
||||
|
||||
// The time this status and any related Feature-specific details were updated. |
||||
google.protobuf.Timestamp update_time = 3; |
||||
} |
||||
|
||||
// CommonFeatureSpec contains Hub-wide configuration information |
||||
message CommonFeatureSpec { |
||||
oneof feature_spec { |
||||
// Multicluster Ingress-specific spec. |
||||
google.cloud.gkehub.multiclusteringress.v1alpha.FeatureSpec multiclusteringress = 102; |
||||
|
||||
// Cloud Audit Logging-specific spec. |
||||
google.cloud.gkehub.cloudauditlogging.v1alpha.FeatureSpec cloudauditlogging = 108; |
||||
} |
||||
} |
||||
|
||||
// CommonFeatureState contains Hub-wide Feature status information. |
||||
message CommonFeatureState { |
||||
oneof feature_state { |
||||
// Service Mesh-specific state. |
||||
google.cloud.gkehub.servicemesh.v1alpha.FeatureState servicemesh = 100; |
||||
} |
||||
|
||||
// Output only. The "running state" of the Feature in this Hub. |
||||
FeatureState state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// MembershipFeatureSpec contains configuration information for a single |
||||
// Membership. |
||||
message MembershipFeatureSpec { |
||||
oneof feature_spec { |
||||
// Config Management-specific spec. |
||||
google.cloud.gkehub.configmanagement.v1alpha.MembershipSpec configmanagement = 106; |
||||
} |
||||
} |
||||
|
||||
// MembershipFeatureState contains Feature status information for a single |
||||
// Membership. |
||||
message MembershipFeatureState { |
||||
oneof feature_state { |
||||
// Service Mesh-specific state. |
||||
google.cloud.gkehub.servicemesh.v1alpha.MembershipState servicemesh = 100; |
||||
|
||||
// Metering-specific spec. |
||||
google.cloud.gkehub.metering.v1alpha.MembershipState metering = 104; |
||||
|
||||
// Config Management-specific state. |
||||
google.cloud.gkehub.configmanagement.v1alpha.MembershipState configmanagement = 106; |
||||
} |
||||
|
||||
// The high-level state of this Feature for a single membership. |
||||
FeatureState state = 1; |
||||
} |
@ -0,0 +1,111 @@ |
||||
type: google.api.Service |
||||
config_version: 3 |
||||
name: gkehub.googleapis.com |
||||
title: GKE Hub |
||||
|
||||
apis: |
||||
- name: google.cloud.gkehub.v1alpha.GkeHub |
||||
|
||||
types: |
||||
- name: google.cloud.gkehub.v1alpha.OperationMetadata |
||||
|
||||
documentation: |
||||
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.gkehub.v1alpha.GkeHub.*' |
||||
deadline: 60.0 |
||||
- selector: google.cloud.location.Locations.GetLocation |
||||
deadline: 60.0 |
||||
- selector: google.cloud.location.Locations.ListLocations |
||||
deadline: 60.0 |
||||
- selector: 'google.iam.v1.IAMPolicy.*' |
||||
deadline: 60.0 |
||||
- selector: 'google.longrunning.Operations.*' |
||||
deadline: 60.0 |
||||
- selector: google.longrunning.Operations.GetOperation |
||||
deadline: 5.0 |
||||
|
||||
http: |
||||
rules: |
||||
- selector: google.cloud.location.Locations.GetLocation |
||||
get: '/v1alpha/{name=projects/*/locations/*}' |
||||
- selector: google.cloud.location.Locations.ListLocations |
||||
get: '/v1alpha/{name=projects/*}/locations' |
||||
- selector: google.iam.v1.IAMPolicy.GetIamPolicy |
||||
get: '/v1alpha/{resource=projects/*/locations/*/memberships/*}:getIamPolicy' |
||||
additional_bindings: |
||||
- get: '/v1alpha/{resource=projects/*/locations/*/features/*}:getIamPolicy' |
||||
- selector: google.iam.v1.IAMPolicy.SetIamPolicy |
||||
post: '/v1alpha/{resource=projects/*/locations/*/memberships/*}:setIamPolicy' |
||||
body: '*' |
||||
additional_bindings: |
||||
- post: '/v1alpha/{resource=projects/*/locations/*/features/*}:setIamPolicy' |
||||
body: '*' |
||||
- selector: google.iam.v1.IAMPolicy.TestIamPermissions |
||||
post: '/v1alpha/{resource=projects/*/locations/*/memberships/*}:testIamPermissions' |
||||
body: '*' |
||||
additional_bindings: |
||||
- post: '/v1alpha/{resource=projects/*/locations/*/features/*}:testIamPermissions' |
||||
body: '*' |
||||
- selector: google.longrunning.Operations.CancelOperation |
||||
post: '/v1alpha/{name=projects/*/locations/*/operations/*}:cancel' |
||||
body: '*' |
||||
- selector: google.longrunning.Operations.DeleteOperation |
||||
delete: '/v1alpha/{name=projects/*/locations/*/operations/*}' |
||||
- selector: google.longrunning.Operations.GetOperation |
||||
get: '/v1alpha/{name=projects/*/locations/*/operations/*}' |
||||
- selector: google.longrunning.Operations.ListOperations |
||||
get: '/v1alpha/{name=projects/*/locations/*}/operations' |
||||
|
||||
authentication: |
||||
rules: |
||||
- selector: 'google.cloud.gkehub.v1alpha.GkeHub.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: google.cloud.location.Locations.GetLocation |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: google.cloud.location.Locations.ListLocations |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.iam.v1.IAMPolicy.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.longrunning.Operations.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
@ -0,0 +1,163 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
|
||||
# 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") |
||||
|
||||
proto_library( |
||||
name = "metering_proto", |
||||
srcs = [ |
||||
"metering.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "metering_java_proto", |
||||
deps = [":metering_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "metering_java_grpc", |
||||
srcs = [":metering_proto"], |
||||
deps = [":metering_java_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_proto_library", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "metering_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/gkehub/metering/v1alpha", |
||||
protos = [":metering_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"moved_proto_library", |
||||
"py_grpc_library", |
||||
"py_proto_library", |
||||
) |
||||
|
||||
moved_proto_library( |
||||
name = "metering_moved_proto", |
||||
srcs = [":metering_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
py_proto_library( |
||||
name = "metering_py_proto", |
||||
deps = [":metering_moved_proto"], |
||||
) |
||||
|
||||
py_grpc_library( |
||||
name = "metering_py_grpc", |
||||
srcs = [":metering_moved_proto"], |
||||
deps = [":metering_py_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "metering_php_proto", |
||||
deps = [":metering_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "metering_php_grpc", |
||||
srcs = [":metering_proto"], |
||||
deps = [":metering_php_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "metering_ruby_proto", |
||||
deps = [":metering_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "metering_ruby_grpc", |
||||
srcs = [":metering_proto"], |
||||
deps = [":metering_ruby_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "metering_csharp_proto", |
||||
deps = [":metering_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "metering_csharp_grpc", |
||||
srcs = [":metering_proto"], |
||||
deps = [":metering_csharp_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ code here |
@ -0,0 +1,39 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkehub.metering.v1alpha; |
||||
|
||||
import "google/protobuf/timestamp.proto"; |
||||
import "google/api/annotations.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeHub.Metering.V1Alpha"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/metering/v1alpha;metering"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "MeteringProto"; |
||||
option java_package = "com.google.cloud.gkehub.metering.v1alpha"; |
||||
option php_namespace = "Google\\Cloud\\GkeHub\\Metering\\V1alpha"; |
||||
option ruby_package = "Google::Cloud::GkeHub::Metering::V1alpha"; |
||||
|
||||
// **Metering**: Per-Membership Feature State. |
||||
message MembershipState { |
||||
// The time stamp of the most recent measurement of the number of vCPUs |
||||
// in the cluster. |
||||
google.protobuf.Timestamp last_measurement_time = 1; |
||||
|
||||
// The vCPUs capacity in the cluster according to the most recent |
||||
// measurement (1/1000 precision). |
||||
float precise_last_measured_cluster_vcpu_capacity = 3; |
||||
} |
@ -0,0 +1,161 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
|
||||
# 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") |
||||
|
||||
proto_library( |
||||
name = "multiclusteringress_proto", |
||||
srcs = [ |
||||
"multiclusteringress.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "multiclusteringress_java_proto", |
||||
deps = [":multiclusteringress_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "multiclusteringress_java_grpc", |
||||
srcs = [":multiclusteringress_proto"], |
||||
deps = [":multiclusteringress_java_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_proto_library", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "multiclusteringress_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/gkehub/multiclusteringress/v1alpha", |
||||
protos = [":multiclusteringress_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"moved_proto_library", |
||||
"py_grpc_library", |
||||
"py_proto_library", |
||||
) |
||||
|
||||
moved_proto_library( |
||||
name = "multiclusteringress_moved_proto", |
||||
srcs = [":multiclusteringress_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
], |
||||
) |
||||
|
||||
py_proto_library( |
||||
name = "multiclusteringress_py_proto", |
||||
deps = [":multiclusteringress_moved_proto"], |
||||
) |
||||
|
||||
py_grpc_library( |
||||
name = "multiclusteringress_py_grpc", |
||||
srcs = [":multiclusteringress_moved_proto"], |
||||
deps = [":multiclusteringress_py_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "multiclusteringress_php_proto", |
||||
deps = [":multiclusteringress_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "multiclusteringress_php_grpc", |
||||
srcs = [":multiclusteringress_proto"], |
||||
deps = [":multiclusteringress_php_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "multiclusteringress_ruby_proto", |
||||
deps = [":multiclusteringress_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "multiclusteringress_ruby_grpc", |
||||
srcs = [":multiclusteringress_proto"], |
||||
deps = [":multiclusteringress_ruby_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "multiclusteringress_csharp_proto", |
||||
deps = [":multiclusteringress_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "multiclusteringress_csharp_grpc", |
||||
srcs = [":multiclusteringress_proto"], |
||||
deps = [":multiclusteringress_csharp_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ code here |
@ -0,0 +1,50 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkehub.multiclusteringress.v1alpha; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeHub.MultiClusterIngress.V1Alpha"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/multiclusteringress/v1alpha;multiclusteringress"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "MultiClusterIngressProto"; |
||||
option java_package = "com.google.cloud.gkehub.multiclusteringress.v1alpha"; |
||||
option php_namespace = "Google\\Cloud\\GkeHub\\MultiClusterIngress\\V1alpha"; |
||||
option ruby_package = "Google::Cloud::GkeHub::MultiClusterIngress::V1alpha"; |
||||
|
||||
// Billing identifies which billing structure the customer is using. |
||||
enum Billing { |
||||
// Unknown |
||||
BILLING_UNSPECIFIED = 0; |
||||
|
||||
// User pays a fee per-endpoint. |
||||
PAY_AS_YOU_GO = 1; |
||||
|
||||
// User is paying for Anthos as a whole. |
||||
ANTHOS_LICENSE = 2; |
||||
} |
||||
|
||||
// **Multi-cluster Ingress**: The configuration for the MultiClusterIngress |
||||
// feature. |
||||
message FeatureSpec { |
||||
// Fully-qualified Membership name which hosts the MultiClusterIngress CRD. |
||||
// Example: `projects/foo-proj/locations/global/memberships/bar` |
||||
string config_membership = 1; |
||||
|
||||
// Customer's billing structure |
||||
Billing billing = 2; |
||||
} |
@ -0,0 +1,281 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkehub.v1alpha; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/gkehub/v1alpha/feature.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
import "google/protobuf/field_mask.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeHub.V1Alpha"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/v1alpha;gkehub"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "ServiceProto"; |
||||
option java_package = "com.google.cloud.gkehub.v1alpha"; |
||||
option php_namespace = "Google\\Cloud\\GkeHub\\V1alpha"; |
||||
option ruby_package = "Google::Cloud::GkeHub::V1alpha"; |
||||
|
||||
// The GKE Hub service handles the registration of many Kubernetes clusters to |
||||
// Google Cloud, and the management of multi-cluster features over those |
||||
// clusters. |
||||
// |
||||
// The GKE Hub service operates on the following resources: |
||||
// |
||||
// * [Membership][google.cloud.gkehub.v1alpha.Membership] |
||||
// * [Feature][google.cloud.gkehub.v1alpha.Feature] |
||||
// |
||||
// GKE Hub is currently only available in the global region. |
||||
// |
||||
// **Membership management may be non-trivial:** it is recommended to use one |
||||
// of the Google-provided client libraries or tools where possible when working |
||||
// with Membership resources. |
||||
service GkeHub { |
||||
option (google.api.default_host) = "gkehub.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Lists Features in a given project and location. |
||||
rpc ListFeatures(ListFeaturesRequest) returns (ListFeaturesResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1alpha/{parent=projects/*/locations/*}/features" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Gets details of a single Feature. |
||||
rpc GetFeature(GetFeatureRequest) returns (Feature) { |
||||
option (google.api.http) = { |
||||
get: "/v1alpha/{name=projects/*/locations/*/features/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Adds a new Feature. |
||||
rpc CreateFeature(CreateFeatureRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1alpha/{parent=projects/*/locations/*}/features" |
||||
body: "resource" |
||||
}; |
||||
option (google.api.method_signature) = "parent,resource,feature_id"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Feature" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Removes a Feature. |
||||
rpc DeleteFeature(DeleteFeatureRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1alpha/{name=projects/*/locations/*/features/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.protobuf.Empty" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Updates an existing Feature. |
||||
rpc UpdateFeature(UpdateFeatureRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1alpha/{name=projects/*/locations/*/features/*}" |
||||
body: "resource" |
||||
}; |
||||
option (google.api.method_signature) = "name,resource,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Feature" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Request message for `GkeHub.ListFeatures` method. |
||||
message ListFeaturesRequest { |
||||
// The parent (project and location) where the Features will be listed. |
||||
// Specified in the format `projects/*/locations/*`. |
||||
string parent = 1; |
||||
|
||||
// When requesting a 'page' of resources, `page_size` specifies number of |
||||
// resources to return. If unspecified or set to 0, all resources will |
||||
// be returned. |
||||
int32 page_size = 2; |
||||
|
||||
// Token returned by previous call to `ListFeatures` which |
||||
// specifies the position in the list from where to continue listing the |
||||
// resources. |
||||
string page_token = 3; |
||||
|
||||
// Lists Features that match the filter expression, following the syntax |
||||
// outlined in https://google.aip.dev/160. |
||||
// |
||||
// Examples: |
||||
// |
||||
// - Feature with the name "servicemesh" in project "foo-proj": |
||||
// |
||||
// name = "projects/foo-proj/locations/global/features/servicemesh" |
||||
// |
||||
// - Features that have a label called `foo`: |
||||
// |
||||
// labels.foo:* |
||||
// |
||||
// - Features that have a label called `foo` whose value is `bar`: |
||||
// |
||||
// labels.foo = bar |
||||
string filter = 4; |
||||
|
||||
// One or more fields to compare and use to sort the output. |
||||
// See https://google.aip.dev/132#ordering. |
||||
string order_by = 5; |
||||
} |
||||
|
||||
// Response message for the `GkeHub.ListFeatures` method. |
||||
message ListFeaturesResponse { |
||||
// The list of matching Features |
||||
repeated Feature resources = 1; |
||||
|
||||
// A token to request the next page of resources from the |
||||
// `ListFeatures` method. The value of an empty string means |
||||
// that there are no more resources to return. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// Request message for `GkeHub.GetFeature` method. |
||||
message GetFeatureRequest { |
||||
// The Feature resource name in the format |
||||
// `projects/*/locations/*/features/*` |
||||
string name = 1; |
||||
} |
||||
|
||||
// Request message for the `GkeHub.CreateFeature` method. |
||||
message CreateFeatureRequest { |
||||
// The parent (project and location) where the Feature will be created. |
||||
// Specified in the format `projects/*/locations/*`. |
||||
string parent = 1; |
||||
|
||||
// The ID of the feature to create. |
||||
string feature_id = 2; |
||||
|
||||
// The Feature resource to create. |
||||
Feature resource = 3; |
||||
|
||||
// Optional. A 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 |
||||
// the 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 message for `GkeHub.DeleteFeature` method. |
||||
message DeleteFeatureRequest { |
||||
// The Feature resource name in the format |
||||
// `projects/*/locations/*/features/*`. |
||||
string name = 1; |
||||
|
||||
// If set to true, the delete will ignore any outstanding resources for |
||||
// this Feature (that is, `FeatureState.has_resources` is set to true). These |
||||
// resources will NOT be cleaned up or modified in any way. |
||||
bool force = 2; |
||||
|
||||
// Optional. A 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 |
||||
// the 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]; |
||||
} |
||||
|
||||
// Request message for `GkeHub.UpdateFeature` method. |
||||
message UpdateFeatureRequest { |
||||
// The Feature resource name in the format |
||||
// `projects/*/locations/*/features/*`. |
||||
string name = 1; |
||||
|
||||
// Mask of fields to update. |
||||
google.protobuf.FieldMask update_mask = 2; |
||||
|
||||
// Only fields specified in update_mask are updated. |
||||
// If you specify a field in the update_mask but don't specify its value here |
||||
// that field will be deleted. |
||||
// If you are updating a map field, set the value of a key to null or empty |
||||
// string to delete the key from the map. It's not possible to update a key's |
||||
// value to the empty string. |
||||
// If you specify the update_mask to be a special path "*", fully replaces all |
||||
// user-modifiable fields to match `resource`. |
||||
Feature resource = 3; |
||||
|
||||
// Optional. A 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 |
||||
// the 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]; |
||||
} |
||||
|
||||
// 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_detail = 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 cancel_requested = 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]; |
||||
} |
@ -0,0 +1,165 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
|
||||
# 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") |
||||
|
||||
proto_library( |
||||
name = "servicemesh_proto", |
||||
srcs = [ |
||||
"servicemesh.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"@com_google_protobuf//:struct_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "servicemesh_java_proto", |
||||
deps = [":servicemesh_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "servicemesh_java_grpc", |
||||
srcs = [":servicemesh_proto"], |
||||
deps = [":servicemesh_java_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_proto_library", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "servicemesh_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/gkehub/servicemesh/v1alpha", |
||||
protos = [":servicemesh_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"moved_proto_library", |
||||
"py_grpc_library", |
||||
"py_proto_library", |
||||
) |
||||
|
||||
moved_proto_library( |
||||
name = "servicemesh_moved_proto", |
||||
srcs = [":servicemesh_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"@com_google_protobuf//:struct_proto", |
||||
], |
||||
) |
||||
|
||||
py_proto_library( |
||||
name = "servicemesh_py_proto", |
||||
deps = [":servicemesh_moved_proto"], |
||||
) |
||||
|
||||
py_grpc_library( |
||||
name = "servicemesh_py_grpc", |
||||
srcs = [":servicemesh_moved_proto"], |
||||
deps = [":servicemesh_py_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "servicemesh_php_proto", |
||||
deps = [":servicemesh_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "servicemesh_php_grpc", |
||||
srcs = [":servicemesh_proto"], |
||||
deps = [":servicemesh_php_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "servicemesh_ruby_proto", |
||||
deps = [":servicemesh_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "servicemesh_ruby_grpc", |
||||
srcs = [":servicemesh_proto"], |
||||
deps = [":servicemesh_ruby_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "servicemesh_csharp_proto", |
||||
deps = [":servicemesh_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "servicemesh_csharp_grpc", |
||||
srcs = [":servicemesh_proto"], |
||||
deps = [":servicemesh_csharp_proto"], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ code here |
@ -0,0 +1,115 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkehub.servicemesh.v1alpha; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
import "google/api/annotations.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeHub.ServiceMesh.V1Alpha"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkehub/servicemesh/v1alpha;servicemesh"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "ServiceMeshProto"; |
||||
option java_package = "com.google.cloud.gkehub.servicemesh.v1alpha"; |
||||
option php_namespace = "Google\\Cloud\\GkeHub\\ServiceMesh\\V1alpha"; |
||||
option ruby_package = "Google::Cloud::GkeHub::ServiceMesh::V1alpha"; |
||||
|
||||
// **Service Mesh**: State for the whole Hub, as analyzed by the Service Mesh |
||||
// Hub Controller. |
||||
message FeatureState { |
||||
// Output only. Results of running Service Mesh analyzers. |
||||
repeated AnalysisMessage analysis_messages = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// **Service Mesh**: State for a single Membership, as analyzed by the Service |
||||
// Mesh Hub Controller. |
||||
message MembershipState { |
||||
// Output only. Results of running Service Mesh analyzers. |
||||
repeated AnalysisMessage analysis_messages = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// AnalysisMessageBase describes some common information that is |
||||
// needed for all messages. |
||||
message AnalysisMessageBase { |
||||
// A unique identifier for the type of message. Display_name is intended to be |
||||
// human-readable, code is intended to be machine readable. There should be a |
||||
// one-to-one mapping between display_name and code. (i.e. do not re-use |
||||
// display_names or codes between message types.) |
||||
// See istio.analysis.v1alpha1.AnalysisMessageBase.Type |
||||
message Type { |
||||
// A human-readable name for the message type. e.g. "InternalError", |
||||
// "PodMissingProxy". This should be the same for all messages of the same |
||||
// type. (This corresponds to the `name` field in open-source Istio.) |
||||
string display_name = 1; |
||||
|
||||
// A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended |
||||
// to uniquely identify the message type. (e.g. "IST0001" is mapped to the |
||||
// "InternalError" message type.) |
||||
string code = 2; |
||||
} |
||||
|
||||
// The values here are chosen so that more severe messages get sorted higher, |
||||
// as well as leaving space in between to add more later |
||||
// See istio.analysis.v1alpha1.AnalysisMessageBase.Level |
||||
enum Level { |
||||
// Illegal. Same istio.analysis.v1alpha1.AnalysisMessageBase.Level.UNKNOWN. |
||||
LEVEL_UNSPECIFIED = 0; |
||||
|
||||
// ERROR represents a misconfiguration that must be fixed. |
||||
ERROR = 3; |
||||
|
||||
// WARNING represents a misconfiguration that should be fixed. |
||||
WARNING = 8; |
||||
|
||||
// INFO represents an informational finding. |
||||
INFO = 12; |
||||
} |
||||
|
||||
// Represents the specific type of a message. |
||||
Type type = 1; |
||||
|
||||
// Represents how severe a message is. |
||||
Level level = 2; |
||||
|
||||
// A url pointing to the Service Mesh or Istio documentation for this specific |
||||
// error type. |
||||
string documentation_url = 3; |
||||
} |
||||
|
||||
// AnalysisMessage is a single message produced by an analyzer, and |
||||
// it used to communicate to the end user about the state of their Service |
||||
// Mesh configuration. |
||||
message AnalysisMessage { |
||||
// Details common to all types of Istio and ServiceMesh analysis messages. |
||||
AnalysisMessageBase message_base = 1; |
||||
|
||||
// A human readable description of what the error means. It is suitable for |
||||
// non-internationalize display purposes. |
||||
string description = 2; |
||||
|
||||
// A list of strings specifying the resource identifiers that were the cause |
||||
// of message generation. |
||||
// A "path" here may be: |
||||
// * MEMBERSHIP_ID if the cause is a specific member cluster |
||||
// * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource |
||||
// in a cluster |
||||
repeated string resource_paths = 3; |
||||
|
||||
// A UI can combine these args with a template (based on message_base.type) |
||||
// to produce an internationalized message. |
||||
google.protobuf.Struct args = 4; |
||||
} |
@ -0,0 +1,13 @@ |
||||
{ |
||||
"methodConfig": [{ |
||||
"name": [{ "service": "google.cloud.gkehub.v1alpha.GkeHub" }], |
||||
"timeout": "60s", |
||||
"retryPolicy": { |
||||
"maxAttempts": 5, |
||||
"initialBackoff": "1s", |
||||
"maxBackoff": "10s", |
||||
"backoffMultiplier": 1.3, |
||||
"retryableStatusCodes": ["UNAVAILABLE"] |
||||
} |
||||
}] |
||||
} |
Loading…
Reference in new issue