Skip to content

Commit 622ea70

Browse files
feat: Initial generation of google-cloud-hypercompute_cluster (#32127)
Co-authored-by: Yoshi Automation Bot <[email protected]>
1 parent 2b8c4e5 commit 622ea70

22 files changed

+1158
-0
lines changed

.release-please-manifest.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,8 @@
453453
"google-cloud-gsuite_add_ons+FILLER": "0.0.0",
454454
"google-cloud-gsuite_add_ons-v1": "1.4.1",
455455
"google-cloud-gsuite_add_ons-v1+FILLER": "0.0.0",
456+
"google-cloud-hypercompute_cluster": "0.0.1",
457+
"google-cloud-hypercompute_cluster+FILLER": "0.0.0",
456458
"google-cloud-hypercompute_cluster-v1beta": "0.0.1",
457459
"google-cloud-hypercompute_cluster-v1beta+FILLER": "0.0.0",
458460
"google-cloud-iap": "1.5.2",
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
deep-copy-regex:
2+
- source: /google/cloud/hypercomputecluster/[^/]+-ruby/(.*)
3+
dest: /owl-bot-staging/google-cloud-hypercompute_cluster/$1
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Ignore bundler lockfiles
2+
Gemfile.lock
3+
gems.locked
4+
5+
# Ignore documentation output
6+
doc/*
7+
.yardoc/*
8+
9+
# Ignore test output
10+
coverage/*
11+
12+
# Ignore build artifacts
13+
pkg/*
14+
15+
# Ignore files commonly present in certain dev environments
16+
.vagrant
17+
.DS_STORE
18+
.idea
19+
*.iml
20+
21+
# Ignore synth output
22+
__pycache__
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"generated": [
3+
".gitignore",
4+
".repo-metadata.json",
5+
".rubocop.yml",
6+
".toys.rb",
7+
".yardopts",
8+
"AUTHENTICATION.md",
9+
"CHANGELOG.md",
10+
"Gemfile",
11+
"LICENSE.md",
12+
"README.md",
13+
"Rakefile",
14+
"google-cloud-hypercompute_cluster.gemspec",
15+
"lib/google-cloud-hypercompute_cluster.rb",
16+
"lib/google/cloud/hypercompute_cluster.rb",
17+
"lib/google/cloud/hypercompute_cluster/version.rb",
18+
"test/google/cloud/hypercompute_cluster/client_test.rb",
19+
"test/google/cloud/hypercompute_cluster/version_test.rb",
20+
"test/helper.rb"
21+
],
22+
"static": [
23+
".OwlBot.yaml"
24+
]
25+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"api_id": "hypercomputecluster.googleapis.com",
3+
"api_shortname": "hypercomputecluster",
4+
"client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-hypercompute_cluster/latest",
5+
"distribution_name": "google-cloud-hypercompute_cluster",
6+
"is_cloud": true,
7+
"language": "ruby",
8+
"name": "hypercomputecluster",
9+
"name_pretty": "Cluster Director API",
10+
"product_documentation": "https://cloud.google.com/blog/products/compute/managed-slurm-and-other-cluster-director-enhancements",
11+
"release_level": "unreleased",
12+
"repo": "googleapis/google-cloud-ruby",
13+
"requires_billing": true,
14+
"ruby-cloud-description": "google-cloud-hypercompute_cluster is the official client library for the Cluster Director API.",
15+
"ruby-cloud-product-url": "https://cloud.google.com/blog/products/compute/managed-slurm-and-other-cluster-director-enhancements",
16+
"library_type": "GAPIC_MANUAL"
17+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
inherit_gem:
2+
google-style: google-style.yml
3+
4+
AllCops:
5+
Exclude:
6+
- "google-cloud-hypercompute_cluster.gemspec"
7+
- "Rakefile"
8+
- "acceptance/**/*"
9+
- "test/**/*"
10+
11+
Bundler/OrderedGems:
12+
Enabled: false
13+
Documentation:
14+
Enabled: false
15+
Layout/LineLength:
16+
Enabled: false
17+
Metrics/BlockLength:
18+
Exclude:
19+
- "samples/**/acceptance/*.rb"
20+
Metrics/AbcSize:
21+
Enabled: false
22+
Metrics/ClassLength:
23+
Enabled: false
24+
Metrics/CyclomaticComplexity:
25+
Enabled: false
26+
Metrics/MethodLength:
27+
Enabled: false
28+
Metrics/ModuleLength:
29+
Enabled: false
30+
Metrics/PerceivedComplexity:
31+
Enabled: false
32+
33+
Naming/FileName:
34+
Exclude:
35+
- "lib/google-cloud-hypercompute_cluster.rb"
36+
37+
Style/BlockDelimiters:
38+
Exclude:
39+
- "samples/**/acceptance/*.rb"
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# frozen_string_literal: true
2+
3+
# Copyright 2025 Google LLC
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18+
19+
toys_version! ">= 0.15.3"
20+
21+
if ENV["RUBY_COMMON_TOOLS"]
22+
common_tools_dir = File.expand_path ENV["RUBY_COMMON_TOOLS"]
23+
load File.join(common_tools_dir, "toys", "gapic")
24+
else
25+
load_git remote: "https://github.com/googleapis/ruby-common-tools.git",
26+
path: "toys/gapic",
27+
update: true
28+
end
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--no-private
2+
--title="Cluster Director API"
3+
--exclude _pb\.rb$
4+
--markup markdown
5+
--markup-provider redcarpet
6+
7+
./lib/**/*.rb
8+
-
9+
README.md
10+
AUTHENTICATION.md
11+
LICENSE.md
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Authentication
2+
3+
The recommended way to authenticate to the google-cloud-hypercompute_cluster library is to use
4+
[Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/application-default-credentials).
5+
To review all of your authentication options, see [Credentials lookup](#credential-lookup).
6+
7+
## Quickstart
8+
9+
The following example shows how to set up authentication for a local development
10+
environment with your user credentials.
11+
12+
**NOTE:** This method is _not_ recommended for running in production. User credentials
13+
should be used only during development.
14+
15+
1. [Download and install the Google Cloud CLI](https://cloud.google.com/sdk).
16+
2. Set up a local ADC file with your user credentials:
17+
18+
```sh
19+
gcloud auth application-default login
20+
```
21+
22+
3. Write code as if already authenticated.
23+
24+
For more information about setting up authentication for a local development environment, see
25+
[Set up Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev).
26+
27+
## Credential Lookup
28+
29+
The google-cloud-hypercompute_cluster library provides several mechanisms to configure your system.
30+
Generally, using Application Default Credentials to facilitate automatic
31+
credentials discovery is the easist method. But if you need to explicitly specify
32+
credentials, there are several methods available to you.
33+
34+
Credentials are accepted in the following ways, in the following order or precedence:
35+
36+
1. Credentials specified in method arguments
37+
2. Credentials specified in configuration
38+
3. Credentials pointed to or included in environment variables
39+
4. Credentials found in local ADC file
40+
5. Credentials returned by the metadata server for the attached service account (GCP)
41+
42+
### Configuration
43+
44+
You can configure a path to a JSON credentials file, either for an individual client object or
45+
globally, for all client objects. The JSON file can contain credentials created for
46+
[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation),
47+
[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a
48+
[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key).
49+
50+
Note: Service account keys are a security risk if not managed correctly. You should
51+
[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree)
52+
whenever possible.
53+
54+
To configure a credentials file for an individual client initialization:
55+
56+
```ruby
57+
require "google/cloud/hypercompute_cluster"
58+
59+
client = Google::Cloud::HypercomputeCluster.hypercompute_cluster do |config|
60+
config.credentials = "path/to/credentialfile.json"
61+
end
62+
```
63+
64+
To configure a credentials file globally for all clients:
65+
66+
```ruby
67+
require "google/cloud/hypercompute_cluster"
68+
69+
Google::Cloud::HypercomputeCluster.configure do |config|
70+
config.credentials = "path/to/credentialfile.json"
71+
end
72+
73+
client = Google::Cloud::HypercomputeCluster.hypercompute_cluster
74+
```
75+
76+
### Environment Variables
77+
78+
You can also use an environment variable to provide a JSON credentials file.
79+
The environment variable can contain a path to the credentials file or, for
80+
environments such as Docker containers where writing files is not encouraged,
81+
you can include the credentials file itself.
82+
83+
The JSON file can contain credentials created for
84+
[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation),
85+
[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a
86+
[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key).
87+
88+
Note: Service account keys are a security risk if not managed correctly. You should
89+
[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree)
90+
whenever possible.
91+
92+
The environment variables that google-cloud-hypercompute_cluster
93+
checks for credentials are:
94+
95+
* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
96+
* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
97+
98+
```ruby
99+
require "google/cloud/hypercompute_cluster"
100+
101+
ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json"
102+
103+
client = Google::Cloud::HypercomputeCluster.hypercompute_cluster
104+
```
105+
106+
### Local ADC file
107+
108+
You can set up a local ADC file with your user credentials for authentication during
109+
development. If credentials are not provided in code or in environment variables,
110+
then the local ADC credentials are discovered.
111+
112+
Follow the steps in [Quickstart](#quickstart) to set up a local ADC file.
113+
114+
### Google Cloud Platform environments
115+
116+
When running on Google Cloud Platform (GCP), including Google Compute Engine
117+
(GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud
118+
Functions (GCF) and Cloud Run, credentials are retrieved from the attached
119+
service account automatically. Code should be written as if already authenticated.
120+
121+
For more information, see
122+
[Set up ADC for Google Cloud services](https://cloud.google.com/docs/authentication/provide-credentials-adc#attached-sa).
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Release History
2+

0 commit comments

Comments
 (0)