Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions packages/google-cloud-gkehub/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,49 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ
| Sample | Source Code |
| --------------------------- | --------------------------------- |
| create feature | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_feature.js) |
| create fleet | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_fleet.js) |
| create membership | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_membership.js) |
| create membership binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_membership_binding.js) |
| create membership r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_membership_r_b_a_c_role_binding.js) |
| create scope | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_scope.js) |
| create scope namespace | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_scope_namespace.js) |
| create scope r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.create_scope_r_b_a_c_role_binding.js) |
| delete feature | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_feature.js) |
| delete fleet | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_fleet.js) |
| delete membership | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_membership.js) |
| delete membership binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_membership_binding.js) |
| delete membership r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_membership_r_b_a_c_role_binding.js) |
| delete scope | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_scope.js) |
| delete scope namespace | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_scope_namespace.js) |
| delete scope r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.delete_scope_r_b_a_c_role_binding.js) |
| generate connect manifest | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.generate_connect_manifest.js) |
| generate membership r b a c role binding y a m l | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.generate_membership_r_b_a_c_role_binding_y_a_m_l.js) |
| get feature | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_feature.js) |
| get fleet | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_fleet.js) |
| get membership | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_membership.js) |
| get membership binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_membership_binding.js) |
| get membership r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_membership_r_b_a_c_role_binding.js) |
| get scope | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_scope.js) |
| get scope namespace | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_scope_namespace.js) |
| get scope r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.get_scope_r_b_a_c_role_binding.js) |
| list bound memberships | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_bound_memberships.js) |
| list features | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_features.js) |
| list fleets | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_fleets.js) |
| list membership bindings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_membership_bindings.js) |
| list membership r b a c role bindings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_membership_r_b_a_c_role_bindings.js) |
| list memberships | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_memberships.js) |
| list permitted scopes | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_permitted_scopes.js) |
| list scope namespaces | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_scope_namespaces.js) |
| list scope r b a c role bindings | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_scope_r_b_a_c_role_bindings.js) |
| list scopes | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.list_scopes.js) |
| update feature | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_feature.js) |
| update fleet | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_fleet.js) |
| update membership | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_membership.js) |
| update membership binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_membership_binding.js) |
| update membership r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_membership_r_b_a_c_role_binding.js) |
| update scope | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_scope.js) |
| update scope namespace | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_scope_namespace.js) |
| update scope r b a c role binding | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/gke_hub.update_scope_r_b_a_c_role_binding.js) |
| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1/snippet_metadata_google.cloud.gkehub.v1.json) |
| create feature | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1alpha/gke_hub.create_feature.js) |
| delete feature | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-gkehub/samples/generated/v1alpha/gke_hub.delete_feature.js) |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2025 Google LLC
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand All @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/gkehub/v1/configmanagement/configmanagement.proto";
import "google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto";
import "google/cloud/gkehub/v1/rbacrolebindingactuation/rbacrolebindingactuation.proto";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "Google.Cloud.GkeHub.V1";
Expand All @@ -30,7 +31,7 @@ option java_package = "com.google.cloud.gkehub.v1";
option php_namespace = "Google\\Cloud\\GkeHub\\V1";
option ruby_package = "Google::Cloud::GkeHub::V1";

// Feature represents the settings and status of any Hub Feature.
// Feature represents the settings and status of any Fleet Feature.
message Feature {
option (google.api.resource) = {
type: "gkehub.googleapis.com/Feature"
Expand All @@ -41,22 +42,24 @@ message Feature {
// `projects/*/locations/*/features/*`.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

// GCP labels for this Feature.
// 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];
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.
// Optional. Fleet-wide Feature configuration. If this Feature does not
// support any Fleet-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.
// 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}
// `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
Expand All @@ -68,51 +71,91 @@ message Feature {
// 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];
map<string, MembershipFeatureSpec> membership_specs = 5
[(google.api.field_behavior) = OPTIONAL];

// Output only. The Hub-wide Feature state.
// Output only. The Fleet-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}
// `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];
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];
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];
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];
google.protobuf.Timestamp delete_time = 10
[(google.api.field_behavior) = OUTPUT_ONLY];

// Optional. Scope-specific configuration for this Feature. If this Feature
// does not support any per-Scope configuration, this field may be unused.
//
// The keys indicate which Scope the configuration is for, in the form:
//
// `projects/{p}/locations/global/scopes/{s}`
//
// Where {p} is the project, {s} is a valid Scope in this project.
// {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 Scope 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, ScopeFeatureSpec> scope_specs = 12
[(google.api.field_behavior) = OPTIONAL];

// Output only. Scope-specific Feature status. If this Feature does
// report any per-Scope status, this field may be unused.
//
// The keys indicate which Scope the state is for, in the form:
//
// `projects/{p}/locations/global/scopes/{s}`
//
// Where {p} is the project, {s} is a valid Scope in this project.
// {p} WILL match the Feature's project.
map<string, ScopeFeatureState> scope_states = 13
[(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. List of locations that could not be reached while fetching
// this feature.
repeated string unreachable = 15 [(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.
// Fleet 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.
// Once complete, the corresponding Feature will be enabled in this Fleet.
ENABLING = 1;

// The Feature is enabled in this Hub, and the Feature resource is fully
// The Feature is enabled in this Fleet, and the Feature resource is fully
// available.
ACTIVE = 2;

// The Feature is being disabled in this Hub, and the Feature resource
// The Feature is being disabled in this Fleet, and the Feature resource
// is being deleted.
DISABLING = 3;

Expand Down Expand Up @@ -166,13 +209,29 @@ message FeatureState {
message CommonFeatureSpec {
oneof feature_spec {
// Multicluster Ingress-specific spec.
google.cloud.gkehub.multiclusteringress.v1.FeatureSpec multiclusteringress = 102;
google.cloud.gkehub.multiclusteringress.v1.FeatureSpec multiclusteringress =
102;
}
}

// CommonFeatureState contains Hub-wide Feature status information.
// CommonFeatureState contains Fleet-wide Feature status information.
message CommonFeatureState {
// Output only. The "running state" of the Feature in this Hub.
oneof feature_state {
// RBAC Role Binding Actuation feature state
google.cloud.gkehub.rbacrolebindingactuation.v1.FeatureState
rbacrolebindingactuation = 120;
}

// Output only. The "running state" of the Feature in this Fleet.
FeatureState state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
}

// ScopeFeatureSpec contains feature specs for a fleet scope.
message ScopeFeatureSpec {}

// ScopeFeatureState contains Scope-wide Feature status information.
message ScopeFeatureState {
// Output only. The "running state" of the Feature in this Scope.
FeatureState state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
}

Expand All @@ -181,7 +240,8 @@ message CommonFeatureState {
message MembershipFeatureSpec {
oneof feature_spec {
// Config Management-specific spec.
google.cloud.gkehub.configmanagement.v1.MembershipSpec configmanagement = 106;
google.cloud.gkehub.configmanagement.v1.MembershipSpec configmanagement =
106;
}
}

Expand All @@ -190,7 +250,8 @@ message MembershipFeatureSpec {
message MembershipFeatureState {
oneof feature_state {
// Config Management-specific state.
google.cloud.gkehub.configmanagement.v1.MembershipState configmanagement = 106;
google.cloud.gkehub.configmanagement.v1.MembershipState configmanagement =
106;
}

// The high-level state of this Feature for a single membership.
Expand Down
Loading