google-cloud-tpu-v1 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +31 -21
- data/lib/google/cloud/tpu/v1/cloud_tpu_pb.rb +1 -1
- data/lib/google/cloud/tpu/v1/tpu/client.rb +43 -12
- data/lib/google/cloud/tpu/v1/tpu/operations.rb +19 -15
- data/lib/google/cloud/tpu/v1/version.rb +1 -1
- data/proto_docs/google/api/client.rb +39 -0
- data/proto_docs/google/cloud/tpu/v1/cloud_tpu.rb +3 -0
- data/proto_docs/google/longrunning/operations.rb +23 -14
- metadata +6 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bae9ee5338c8bb5ea68d325b0a889df760ee0b81aa77630561940f44b8067062
|
4
|
+
data.tar.gz: 2f66512063bfbe4d338adeb5bd004d29d245948f20ce5a404cde0d543d8951ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a780a41f80ff9f7e158d4c1854001df8acb828cdf9ea07ed9a8d865cb2aedb2ccd541c2a798706cb969ef6bae2d641cfddee48c28eb9f1edb20d72048b8c653
|
7
|
+
data.tar.gz: 1517a6e07f2da20e1215e7a7bc329870a6180f702405fb1cc746e4ea63f9aabcc102c06d8d03b0d33f0917c286cf01b7c53f5d07627f490c4b2a316d09f887bd
|
data/README.md
CHANGED
@@ -43,40 +43,50 @@ for class and method documentation.
|
|
43
43
|
See also the [Product Documentation](https://cloud.google.com/tpu/)
|
44
44
|
for general usage information.
|
45
45
|
|
46
|
-
##
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
46
|
+
## Debug Logging
|
47
|
+
|
48
|
+
This library comes with opt-in Debug Logging that can help you troubleshoot
|
49
|
+
your application's integration with the API. When logging is activated, key
|
50
|
+
events such as requests and responses, along with data payloads and metadata
|
51
|
+
such as headers and client configuration, are logged to the standard error
|
52
|
+
stream.
|
53
|
+
|
54
|
+
**WARNING:** Client Library Debug Logging includes your data payloads in
|
55
|
+
plaintext, which could include sensitive data such as PII for yourself or your
|
56
|
+
customers, private keys, or other security data that could be compromising if
|
57
|
+
leaked. Always practice good data hygiene with your application logs, and follow
|
58
|
+
the principle of least access. Google also recommends that Client Library Debug
|
59
|
+
Logging be enabled only temporarily during active debugging, and not used
|
60
|
+
permanently in production.
|
61
|
+
|
62
|
+
To enable logging, set the environment variable `GOOGLE_SDK_RUBY_LOGGING_GEMS`
|
63
|
+
to the value `all`. Alternatively, you can set the value to a comma-delimited
|
64
|
+
list of client library gem names. This will select the default logging behavior,
|
65
|
+
which writes logs to the standard error stream. On a local workstation, this may
|
66
|
+
result in logs appearing on the console. When running on a Google Cloud hosting
|
67
|
+
service such as [Google Cloud Run](https://cloud.google.com/run), this generally
|
68
|
+
results in logs appearing alongside your application logs in the
|
69
|
+
[Google Cloud Logging](https://cloud.google.com/logging/) service.
|
70
|
+
|
71
|
+
You can customize logging by modifying the `logger` configuration when
|
72
|
+
constructing a client object. For example:
|
55
73
|
|
56
74
|
```ruby
|
75
|
+
require "google/cloud/tpu/v1"
|
57
76
|
require "logger"
|
58
77
|
|
59
|
-
|
60
|
-
|
61
|
-
def logger
|
62
|
-
LOGGER
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
# Define a gRPC module-level logger method before grpc/logconfig.rb loads.
|
67
|
-
module GRPC
|
68
|
-
extend MyLogger
|
78
|
+
client = ::Google::Cloud::Tpu::V1::Tpu::Client.new do |config|
|
79
|
+
config.logger = Logger.new "my-app.log"
|
69
80
|
end
|
70
81
|
```
|
71
82
|
|
72
|
-
|
73
83
|
## Google Cloud Samples
|
74
84
|
|
75
85
|
To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples).
|
76
86
|
|
77
87
|
## Supported Ruby Versions
|
78
88
|
|
79
|
-
This library is supported on Ruby
|
89
|
+
This library is supported on Ruby 3.0+.
|
80
90
|
|
81
91
|
Google provides official support for Ruby versions that are actively supported
|
82
92
|
by Ruby Core—that is, Ruby versions that are either in normal maintenance or
|
@@ -12,7 +12,7 @@ require 'google/longrunning/operations_pb'
|
|
12
12
|
require 'google/protobuf/timestamp_pb'
|
13
13
|
|
14
14
|
|
15
|
-
descriptor_data = "\n#google/cloud/tpu/v1/cloud_tpu.proto\x12\x13google.cloud.tpu.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"9\n\x10SchedulingConfig\x12\x13\n\x0bpreemptible\x18\x01 \x01(\x08\x12\x10\n\x08reserved\x18\x02 \x01(\x08\"3\n\x0fNetworkEndpoint\x12\x12\n\nip_address\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\
|
15
|
+
descriptor_data = "\n#google/cloud/tpu/v1/cloud_tpu.proto\x12\x13google.cloud.tpu.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"9\n\x10SchedulingConfig\x12\x13\n\x0bpreemptible\x18\x01 \x01(\x08\x12\x10\n\x08reserved\x18\x02 \x01(\x08\"3\n\x0fNetworkEndpoint\x12\x12\n\nip_address\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\xc1\n\n\x04Node\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x03\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x1d\n\x10\x61\x63\x63\x65lerator_type\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\nip_address\x18\x08 \x01(\tB\x02\x18\x01\x12\x10\n\x04port\x18\x0e \x01(\tB\x02\x18\x01\x12\x33\n\x05state\x18\t \x01(\x0e\x32\x1f.google.cloud.tpu.v1.Node.StateB\x03\xe0\x41\x03\x12\x1f\n\x12health_description\x18\n \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12tensorflow_version\x18\x0b \x01(\tB\x03\xe0\x41\x02\x12\x0f\n\x07network\x18\x0c \x01(\t\x12\x12\n\ncidr_block\x18\r \x01(\t\x12\x1c\n\x0fservice_account\x18\x0f \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x11scheduling_config\x18\x11 \x01(\x0b\x32%.google.cloud.tpu.v1.SchedulingConfig\x12\x44\n\x11network_endpoints\x18\x15 \x03(\x0b\x32$.google.cloud.tpu.v1.NetworkEndpointB\x03\xe0\x41\x03\x12\x30\n\x06health\x18\x16 \x01(\x0e\x32 .google.cloud.tpu.v1.Node.Health\x12\x35\n\x06labels\x18\x18 \x03(\x0b\x32%.google.cloud.tpu.v1.Node.LabelsEntry\x12\x1e\n\x16use_service_networking\x18\x1b \x01(\x08\x12>\n\x0b\x61pi_version\x18& \x01(\x0e\x32$.google.cloud.tpu.v1.Node.ApiVersionB\x03\xe0\x41\x03\x12\x33\n\x08symptoms\x18\' \x03(\x0b\x32\x1c.google.cloud.tpu.v1.SymptomB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xee\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0e\n\nRESTARTING\x10\x03\x12\r\n\tREIMAGING\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\r\n\tREPAIRING\x10\x06\x12\x0b\n\x07STOPPED\x10\x08\x12\x0c\n\x08STOPPING\x10\t\x12\x0c\n\x08STARTING\x10\n\x12\r\n\tPREEMPTED\x10\x0b\x12\x0e\n\nTERMINATED\x10\x0c\x12\n\n\x06HIDING\x10\r\x12\n\n\x06HIDDEN\x10\x0e\x12\x0c\n\x08UNHIDING\x10\x0f\x12\x0b\n\x07UNKNOWN\x10\x10\"\x89\x01\n\x06Health\x12\x16\n\x12HEALTH_UNSPECIFIED\x10\x00\x12\x0b\n\x07HEALTHY\x10\x01\x12\x18\n\x14\x44\x45PRECATED_UNHEALTHY\x10\x02\x12\x0b\n\x07TIMEOUT\x10\x03\x12\x18\n\x14UNHEALTHY_TENSORFLOW\x10\x04\x12\x19\n\x15UNHEALTHY_MAINTENANCE\x10\x05\"O\n\nApiVersion\x12\x1b\n\x17\x41PI_VERSION_UNSPECIFIED\x10\x00\x12\r\n\tV1_ALPHA1\x10\x01\x12\x06\n\x02V1\x10\x02\x12\r\n\tV2_ALPHA1\x10\x03:R\xea\x41O\n\x17tpu.googleapis.com/Node\x12\x34projects/{project}/locations/{location}/nodes/{node}\"j\n\x10ListNodesRequest\x12/\n\x06parent\x18\x01 \x01(\tB\x1f\xe0\x41\x02\xfa\x41\x19\x12\x17tpu.googleapis.com/Node\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"k\n\x11ListNodesResponse\x12(\n\x05nodes\x18\x01 \x03(\x0b\x32\x19.google.cloud.tpu.v1.Node\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"?\n\x0eGetNodeRequest\x12-\n\x04name\x18\x01 \x01(\tB\x1f\xe0\x41\x02\xfa\x41\x19\n\x17tpu.googleapis.com/Node\"\x83\x01\n\x11\x43reateNodeRequest\x12/\n\x06parent\x18\x01 \x01(\tB\x1f\xe0\x41\x02\xfa\x41\x19\x12\x17tpu.googleapis.com/Node\x12\x0f\n\x07node_id\x18\x02 \x01(\t\x12,\n\x04node\x18\x03 \x01(\x0b\x32\x19.google.cloud.tpu.v1.NodeB\x03\xe0\x41\x02\"B\n\x11\x44\x65leteNodeRequest\x12-\n\x04name\x18\x01 \x01(\tB\x1f\xe0\x41\x02\xfa\x41\x19\n\x17tpu.googleapis.com/Node\">\n\x12ReimageNodeRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1a\n\x12tensorflow_version\x18\x02 \x01(\t\"\x1f\n\x0fStopNodeRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\" \n\x10StartNodeRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xaf\x01\n\x11TensorFlowVersion\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t:{\xea\x41x\n$tpu.googleapis.com/TensorFlowVersion\x12Pprojects/{project}/locations/{location}/tensorFlowVersions/{tensor_flow_version}\"Y\n\x1bGetTensorFlowVersionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$tpu.googleapis.com/TensorFlowVersion\"\xa6\x01\n\x1dListTensorFlowVersionsRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$tpu.googleapis.com/TensorFlowVersion\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\x12\x10\n\x08order_by\x18\x06 \x01(\t\"\x93\x01\n\x1eListTensorFlowVersionsResponse\x12\x43\n\x13tensorflow_versions\x18\x01 \x03(\x0b\x32&.google.cloud.tpu.v1.TensorFlowVersion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\xa3\x01\n\x0f\x41\x63\x63\x65leratorType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t:t\xea\x41q\n\"tpu.googleapis.com/AcceleratorType\x12Kprojects/{project}/locations/{location}/acceleratorTypes/{accelerator_type}\"U\n\x19GetAcceleratorTypeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"tpu.googleapis.com/AcceleratorType\"\xa2\x01\n\x1bListAcceleratorTypesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"tpu.googleapis.com/AcceleratorType\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\x12\x10\n\x08order_by\x18\x06 \x01(\t\"\x8d\x01\n\x1cListAcceleratorTypesResponse\x12?\n\x11\x61\x63\x63\x65lerator_types\x18\x01 \x03(\x0b\x32$.google.cloud.tpu.v1.AcceleratorType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\xd6\x01\n\x11OperationMetadata\x12/\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06target\x18\x03 \x01(\t\x12\x0c\n\x04verb\x18\x04 \x01(\t\x12\x15\n\rstatus_detail\x18\x05 \x01(\t\x12\x18\n\x10\x63\x61ncel_requested\x18\x06 \x01(\x08\x12\x13\n\x0b\x61pi_version\x18\x07 \x01(\t\"\xc5\x02\n\x07Symptom\x12/\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x0csymptom_type\x18\x02 \x01(\x0e\x32(.google.cloud.tpu.v1.Symptom.SymptomType\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\x12\x11\n\tworker_id\x18\x04 \x01(\t\"\xa4\x01\n\x0bSymptomType\x12\x1c\n\x18SYMPTOM_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nLOW_MEMORY\x10\x01\x12\x11\n\rOUT_OF_MEMORY\x10\x02\x12\x15\n\x11\x45XECUTE_TIMED_OUT\x10\x03\x12\x13\n\x0fMESH_BUILD_FAIL\x10\x04\x12\x15\n\x11HBM_OUT_OF_MEMORY\x10\x05\x12\x11\n\rPROJECT_ABUSE\x10\x06\x32\xde\x0f\n\x03Tpu\x12\x96\x01\n\tListNodes\x12%.google.cloud.tpu.v1.ListNodesRequest\x1a&.google.cloud.tpu.v1.ListNodesResponse\":\xda\x41\x06parent\x82\xd3\xe4\x93\x02+\x12)/v1/{parent=projects/*/locations/*}/nodes\x12\x83\x01\n\x07GetNode\x12#.google.cloud.tpu.v1.GetNodeRequest\x1a\x19.google.cloud.tpu.v1.Node\"8\xda\x41\x04name\x82\xd3\xe4\x93\x02+\x12)/v1/{name=projects/*/locations/*/nodes/*}\x12\xbe\x01\n\nCreateNode\x12&.google.cloud.tpu.v1.CreateNodeRequest\x1a\x1d.google.longrunning.Operation\"i\xca\x41\x19\n\x04Node\x12\x11OperationMetadata\xda\x41\x13parent,node,node_id\x82\xd3\xe4\x93\x02\x31\")/v1/{parent=projects/*/locations/*}/nodes:\x04node\x12\xa9\x01\n\nDeleteNode\x12&.google.cloud.tpu.v1.DeleteNodeRequest\x1a\x1d.google.longrunning.Operation\"T\xca\x41\x19\n\x04Node\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02+*)/v1/{name=projects/*/locations/*/nodes/*}\x12\xaf\x01\n\x0bReimageNode\x12\'.google.cloud.tpu.v1.ReimageNodeRequest\x1a\x1d.google.longrunning.Operation\"X\xca\x41\x19\n\x04Node\x12\x11OperationMetadata\x82\xd3\xe4\x93\x02\x36\"1/v1/{name=projects/*/locations/*/nodes/*}:reimage:\x01*\x12\xa6\x01\n\x08StopNode\x12$.google.cloud.tpu.v1.StopNodeRequest\x1a\x1d.google.longrunning.Operation\"U\xca\x41\x19\n\x04Node\x12\x11OperationMetadata\x82\xd3\xe4\x93\x02\x33\"./v1/{name=projects/*/locations/*/nodes/*}:stop:\x01*\x12\xa9\x01\n\tStartNode\x12%.google.cloud.tpu.v1.StartNodeRequest\x1a\x1d.google.longrunning.Operation\"V\xca\x41\x19\n\x04Node\x12\x11OperationMetadata\x82\xd3\xe4\x93\x02\x34\"//v1/{name=projects/*/locations/*/nodes/*}:start:\x01*\x12\xca\x01\n\x16ListTensorFlowVersions\x12\x32.google.cloud.tpu.v1.ListTensorFlowVersionsRequest\x1a\x33.google.cloud.tpu.v1.ListTensorFlowVersionsResponse\"G\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x38\x12\x36/v1/{parent=projects/*/locations/*}/tensorflowVersions\x12\xb7\x01\n\x14GetTensorFlowVersion\x12\x30.google.cloud.tpu.v1.GetTensorFlowVersionRequest\x1a&.google.cloud.tpu.v1.TensorFlowVersion\"E\xda\x41\x04name\x82\xd3\xe4\x93\x02\x38\x12\x36/v1/{name=projects/*/locations/*/tensorflowVersions/*}\x12\xc2\x01\n\x14ListAcceleratorTypes\x12\x30.google.cloud.tpu.v1.ListAcceleratorTypesRequest\x1a\x31.google.cloud.tpu.v1.ListAcceleratorTypesResponse\"E\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{parent=projects/*/locations/*}/acceleratorTypes\x12\xaf\x01\n\x12GetAcceleratorType\x12..google.cloud.tpu.v1.GetAcceleratorTypeRequest\x1a$.google.cloud.tpu.v1.AcceleratorType\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{name=projects/*/locations/*/acceleratorTypes/*}\x1a\x46\xca\x41\x12tpu.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformBU\n\x17\x63om.google.cloud.tpu.v1B\rCloudTpuProtoP\x01Z)cloud.google.com/go/tpu/apiv1/tpupb;tpupbb\x06proto3"
|
16
16
|
|
17
17
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
18
18
|
|
@@ -169,14 +169,26 @@ module Google
|
|
169
169
|
universe_domain: @config.universe_domain,
|
170
170
|
channel_args: @config.channel_args,
|
171
171
|
interceptors: @config.interceptors,
|
172
|
-
channel_pool_config: @config.channel_pool
|
172
|
+
channel_pool_config: @config.channel_pool,
|
173
|
+
logger: @config.logger
|
173
174
|
)
|
174
175
|
|
176
|
+
@tpu_stub.stub_logger&.info do |entry|
|
177
|
+
entry.set_system_name
|
178
|
+
entry.set_service
|
179
|
+
entry.message = "Created client for #{entry.service}"
|
180
|
+
entry.set_credentials_fields credentials
|
181
|
+
entry.set "customEndpoint", @config.endpoint if @config.endpoint
|
182
|
+
entry.set "defaultTimeout", @config.timeout if @config.timeout
|
183
|
+
entry.set "quotaProject", @quota_project_id if @quota_project_id
|
184
|
+
end
|
185
|
+
|
175
186
|
@location_client = Google::Cloud::Location::Locations::Client.new do |config|
|
176
187
|
config.credentials = credentials
|
177
188
|
config.quota_project = @quota_project_id
|
178
189
|
config.endpoint = @tpu_stub.endpoint
|
179
190
|
config.universe_domain = @tpu_stub.universe_domain
|
191
|
+
config.logger = @tpu_stub.logger if config.respond_to? :logger=
|
180
192
|
end
|
181
193
|
end
|
182
194
|
|
@@ -194,6 +206,15 @@ module Google
|
|
194
206
|
#
|
195
207
|
attr_reader :location_client
|
196
208
|
|
209
|
+
##
|
210
|
+
# The logger used for request/response debug logging.
|
211
|
+
#
|
212
|
+
# @return [Logger]
|
213
|
+
#
|
214
|
+
def logger
|
215
|
+
@tpu_stub.logger
|
216
|
+
end
|
217
|
+
|
197
218
|
# Service calls
|
198
219
|
|
199
220
|
##
|
@@ -285,7 +306,7 @@ module Google
|
|
285
306
|
@tpu_stub.call_rpc :list_nodes, request, options: options do |response, operation|
|
286
307
|
response = ::Gapic::PagedEnumerable.new @tpu_stub, :list_nodes, request, response, operation, options
|
287
308
|
yield response, operation if block_given?
|
288
|
-
|
309
|
+
throw :response, response
|
289
310
|
end
|
290
311
|
rescue ::GRPC::BadStatus => e
|
291
312
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -371,7 +392,6 @@ module Google
|
|
371
392
|
|
372
393
|
@tpu_stub.call_rpc :get_node, request, options: options do |response, operation|
|
373
394
|
yield response, operation if block_given?
|
374
|
-
return response
|
375
395
|
end
|
376
396
|
rescue ::GRPC::BadStatus => e
|
377
397
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -469,7 +489,7 @@ module Google
|
|
469
489
|
@tpu_stub.call_rpc :create_node, request, options: options do |response, operation|
|
470
490
|
response = ::Gapic::Operation.new response, @operations_client, options: options
|
471
491
|
yield response, operation if block_given?
|
472
|
-
|
492
|
+
throw :response, response
|
473
493
|
end
|
474
494
|
rescue ::GRPC::BadStatus => e
|
475
495
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -563,7 +583,7 @@ module Google
|
|
563
583
|
@tpu_stub.call_rpc :delete_node, request, options: options do |response, operation|
|
564
584
|
response = ::Gapic::Operation.new response, @operations_client, options: options
|
565
585
|
yield response, operation if block_given?
|
566
|
-
|
586
|
+
throw :response, response
|
567
587
|
end
|
568
588
|
rescue ::GRPC::BadStatus => e
|
569
589
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -659,7 +679,7 @@ module Google
|
|
659
679
|
@tpu_stub.call_rpc :reimage_node, request, options: options do |response, operation|
|
660
680
|
response = ::Gapic::Operation.new response, @operations_client, options: options
|
661
681
|
yield response, operation if block_given?
|
662
|
-
|
682
|
+
throw :response, response
|
663
683
|
end
|
664
684
|
rescue ::GRPC::BadStatus => e
|
665
685
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -753,7 +773,7 @@ module Google
|
|
753
773
|
@tpu_stub.call_rpc :stop_node, request, options: options do |response, operation|
|
754
774
|
response = ::Gapic::Operation.new response, @operations_client, options: options
|
755
775
|
yield response, operation if block_given?
|
756
|
-
|
776
|
+
throw :response, response
|
757
777
|
end
|
758
778
|
rescue ::GRPC::BadStatus => e
|
759
779
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -847,7 +867,7 @@ module Google
|
|
847
867
|
@tpu_stub.call_rpc :start_node, request, options: options do |response, operation|
|
848
868
|
response = ::Gapic::Operation.new response, @operations_client, options: options
|
849
869
|
yield response, operation if block_given?
|
850
|
-
|
870
|
+
throw :response, response
|
851
871
|
end
|
852
872
|
rescue ::GRPC::BadStatus => e
|
853
873
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -946,7 +966,7 @@ module Google
|
|
946
966
|
@tpu_stub.call_rpc :list_tensor_flow_versions, request, options: options do |response, operation|
|
947
967
|
response = ::Gapic::PagedEnumerable.new @tpu_stub, :list_tensor_flow_versions, request, response, operation, options
|
948
968
|
yield response, operation if block_given?
|
949
|
-
|
969
|
+
throw :response, response
|
950
970
|
end
|
951
971
|
rescue ::GRPC::BadStatus => e
|
952
972
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -1032,7 +1052,6 @@ module Google
|
|
1032
1052
|
|
1033
1053
|
@tpu_stub.call_rpc :get_tensor_flow_version, request, options: options do |response, operation|
|
1034
1054
|
yield response, operation if block_given?
|
1035
|
-
return response
|
1036
1055
|
end
|
1037
1056
|
rescue ::GRPC::BadStatus => e
|
1038
1057
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -1131,7 +1150,7 @@ module Google
|
|
1131
1150
|
@tpu_stub.call_rpc :list_accelerator_types, request, options: options do |response, operation|
|
1132
1151
|
response = ::Gapic::PagedEnumerable.new @tpu_stub, :list_accelerator_types, request, response, operation, options
|
1133
1152
|
yield response, operation if block_given?
|
1134
|
-
|
1153
|
+
throw :response, response
|
1135
1154
|
end
|
1136
1155
|
rescue ::GRPC::BadStatus => e
|
1137
1156
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -1217,7 +1236,6 @@ module Google
|
|
1217
1236
|
|
1218
1237
|
@tpu_stub.call_rpc :get_accelerator_type, request, options: options do |response, operation|
|
1219
1238
|
yield response, operation if block_given?
|
1220
|
-
return response
|
1221
1239
|
end
|
1222
1240
|
rescue ::GRPC::BadStatus => e
|
1223
1241
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -1267,6 +1285,13 @@ module Google
|
|
1267
1285
|
# * (`GRPC::Core::Channel`) a gRPC channel with included credentials
|
1268
1286
|
# * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
|
1269
1287
|
# * (`nil`) indicating no credentials
|
1288
|
+
#
|
1289
|
+
# Warning: If you accept a credential configuration (JSON file or Hash) from an
|
1290
|
+
# external source for authentication to Google Cloud, you must validate it before
|
1291
|
+
# providing it to a Google API client library. Providing an unvalidated credential
|
1292
|
+
# configuration to Google APIs can compromise the security of your systems and data.
|
1293
|
+
# For more information, refer to [Validate credential configurations from external
|
1294
|
+
# sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
|
1270
1295
|
# @return [::Object]
|
1271
1296
|
# @!attribute [rw] scope
|
1272
1297
|
# The OAuth scopes
|
@@ -1306,6 +1331,11 @@ module Google
|
|
1306
1331
|
# default endpoint URL. The default value of nil uses the environment
|
1307
1332
|
# universe (usually the default "googleapis.com" universe).
|
1308
1333
|
# @return [::String,nil]
|
1334
|
+
# @!attribute [rw] logger
|
1335
|
+
# A custom logger to use for request/response debug logging, or the value
|
1336
|
+
# `:default` (the default) to construct a default logger, or `nil` to
|
1337
|
+
# explicitly disable logging.
|
1338
|
+
# @return [::Logger,:default,nil]
|
1309
1339
|
#
|
1310
1340
|
class Configuration
|
1311
1341
|
extend ::Gapic::Config
|
@@ -1330,6 +1360,7 @@ module Google
|
|
1330
1360
|
config_attr :retry_policy, nil, ::Hash, ::Proc, nil
|
1331
1361
|
config_attr :quota_project, nil, ::String, nil
|
1332
1362
|
config_attr :universe_domain, nil, ::String, nil
|
1363
|
+
config_attr :logger, :default, ::Logger, nil, :default
|
1333
1364
|
|
1334
1365
|
# @private
|
1335
1366
|
def initialize parent_config = nil
|
@@ -124,14 +124,6 @@ module Google
|
|
124
124
|
# Lists operations that match the specified filter in the request. If the
|
125
125
|
# server doesn't support this method, it returns `UNIMPLEMENTED`.
|
126
126
|
#
|
127
|
-
# NOTE: the `name` binding allows API services to override the binding
|
128
|
-
# to use different resource name schemes, such as `users/*/operations`. To
|
129
|
-
# override the binding, API services can add a binding such as
|
130
|
-
# `"/v1/{name=users/*}/operations"` to their service configuration.
|
131
|
-
# For backwards compatibility, the default name includes the operations
|
132
|
-
# collection id, however overriding users must ensure the name binding
|
133
|
-
# is the parent resource, without the operations collection id.
|
134
|
-
#
|
135
127
|
# @overload list_operations(request, options = nil)
|
136
128
|
# Pass arguments to `list_operations` via a request object, either of type
|
137
129
|
# {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash.
|
@@ -221,7 +213,7 @@ module Google
|
|
221
213
|
wrap_lro_operation = ->(op_response) { ::Gapic::Operation.new op_response, @operations_client }
|
222
214
|
response = ::Gapic::PagedEnumerable.new @operations_stub, :list_operations, request, response, operation, options, format_resource: wrap_lro_operation
|
223
215
|
yield response, operation if block_given?
|
224
|
-
|
216
|
+
throw :response, response
|
225
217
|
end
|
226
218
|
rescue ::GRPC::BadStatus => e
|
227
219
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -317,7 +309,7 @@ module Google
|
|
317
309
|
@operations_stub.call_rpc :get_operation, request, options: options do |response, operation|
|
318
310
|
response = ::Gapic::Operation.new response, @operations_client, options: options
|
319
311
|
yield response, operation if block_given?
|
320
|
-
|
312
|
+
throw :response, response
|
321
313
|
end
|
322
314
|
rescue ::GRPC::BadStatus => e
|
323
315
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -406,7 +398,6 @@ module Google
|
|
406
398
|
|
407
399
|
@operations_stub.call_rpc :delete_operation, request, options: options do |response, operation|
|
408
400
|
yield response, operation if block_given?
|
409
|
-
return response
|
410
401
|
end
|
411
402
|
rescue ::GRPC::BadStatus => e
|
412
403
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -421,8 +412,9 @@ module Google
|
|
421
412
|
# other methods to check whether the cancellation succeeded or whether the
|
422
413
|
# operation completed despite cancellation. On successful cancellation,
|
423
414
|
# the operation is not deleted; instead, it becomes an operation with
|
424
|
-
# an {::Google::Longrunning::Operation#error Operation.error} value with a
|
425
|
-
# corresponding to
|
415
|
+
# an {::Google::Longrunning::Operation#error Operation.error} value with a
|
416
|
+
# {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to
|
417
|
+
# `Code.CANCELLED`.
|
426
418
|
#
|
427
419
|
# @overload cancel_operation(request, options = nil)
|
428
420
|
# Pass arguments to `cancel_operation` via a request object, either of type
|
@@ -501,7 +493,6 @@ module Google
|
|
501
493
|
|
502
494
|
@operations_stub.call_rpc :cancel_operation, request, options: options do |response, operation|
|
503
495
|
yield response, operation if block_given?
|
504
|
-
return response
|
505
496
|
end
|
506
497
|
rescue ::GRPC::BadStatus => e
|
507
498
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -599,7 +590,7 @@ module Google
|
|
599
590
|
@operations_stub.call_rpc :wait_operation, request, options: options do |response, operation|
|
600
591
|
response = ::Gapic::Operation.new response, @operations_client, options: options
|
601
592
|
yield response, operation if block_given?
|
602
|
-
|
593
|
+
throw :response, response
|
603
594
|
end
|
604
595
|
rescue ::GRPC::BadStatus => e
|
605
596
|
raise ::Google::Cloud::Error.from_error(e)
|
@@ -649,6 +640,13 @@ module Google
|
|
649
640
|
# * (`GRPC::Core::Channel`) a gRPC channel with included credentials
|
650
641
|
# * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
|
651
642
|
# * (`nil`) indicating no credentials
|
643
|
+
#
|
644
|
+
# Warning: If you accept a credential configuration (JSON file or Hash) from an
|
645
|
+
# external source for authentication to Google Cloud, you must validate it before
|
646
|
+
# providing it to a Google API client library. Providing an unvalidated credential
|
647
|
+
# configuration to Google APIs can compromise the security of your systems and data.
|
648
|
+
# For more information, refer to [Validate credential configurations from external
|
649
|
+
# sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
|
652
650
|
# @return [::Object]
|
653
651
|
# @!attribute [rw] scope
|
654
652
|
# The OAuth scopes
|
@@ -688,6 +686,11 @@ module Google
|
|
688
686
|
# default endpoint URL. The default value of nil uses the environment
|
689
687
|
# universe (usually the default "googleapis.com" universe).
|
690
688
|
# @return [::String,nil]
|
689
|
+
# @!attribute [rw] logger
|
690
|
+
# A custom logger to use for request/response debug logging, or the value
|
691
|
+
# `:default` (the default) to construct a default logger, or `nil` to
|
692
|
+
# explicitly disable logging.
|
693
|
+
# @return [::Logger,:default,nil]
|
691
694
|
#
|
692
695
|
class Configuration
|
693
696
|
extend ::Gapic::Config
|
@@ -712,6 +715,7 @@ module Google
|
|
712
715
|
config_attr :retry_policy, nil, ::Hash, ::Proc, nil
|
713
716
|
config_attr :quota_project, nil, ::String, nil
|
714
717
|
config_attr :universe_domain, nil, ::String, nil
|
718
|
+
config_attr :logger, :default, ::Logger, nil, :default
|
715
719
|
|
716
720
|
# @private
|
717
721
|
def initialize parent_config = nil
|
@@ -28,6 +28,9 @@ module Google
|
|
28
28
|
# @!attribute [rw] destinations
|
29
29
|
# @return [::Array<::Google::Api::ClientLibraryDestination>]
|
30
30
|
# The destination where API teams want this client library to be published.
|
31
|
+
# @!attribute [rw] selective_gapic_generation
|
32
|
+
# @return [::Google::Api::SelectiveGapicGeneration]
|
33
|
+
# Configuration for which RPCs should be generated in the GAPIC client.
|
31
34
|
class CommonLanguageSettings
|
32
35
|
include ::Google::Protobuf::MessageExts
|
33
36
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -212,6 +215,12 @@ module Google
|
|
212
215
|
# enabled. By default, asynchronous REST clients will not be generated.
|
213
216
|
# This feature will be enabled by default 1 month after launching the
|
214
217
|
# feature in preview packages.
|
218
|
+
# @!attribute [rw] protobuf_pythonic_types_enabled
|
219
|
+
# @return [::Boolean]
|
220
|
+
# Enables generation of protobuf code using new types that are more
|
221
|
+
# Pythonic which are included in `protobuf>=5.29.x`. This feature will be
|
222
|
+
# enabled by default 1 month after launching the feature in preview
|
223
|
+
# packages.
|
215
224
|
class ExperimentalFeatures
|
216
225
|
include ::Google::Protobuf::MessageExts
|
217
226
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -297,9 +306,28 @@ module Google
|
|
297
306
|
# @!attribute [rw] common
|
298
307
|
# @return [::Google::Api::CommonLanguageSettings]
|
299
308
|
# Some settings.
|
309
|
+
# @!attribute [rw] renamed_services
|
310
|
+
# @return [::Google::Protobuf::Map{::String => ::String}]
|
311
|
+
# Map of service names to renamed services. Keys are the package relative
|
312
|
+
# service names and values are the name to be used for the service client
|
313
|
+
# and call options.
|
314
|
+
#
|
315
|
+
# publishing:
|
316
|
+
# go_settings:
|
317
|
+
# renamed_services:
|
318
|
+
# Publisher: TopicAdmin
|
300
319
|
class GoSettings
|
301
320
|
include ::Google::Protobuf::MessageExts
|
302
321
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
322
|
+
|
323
|
+
# @!attribute [rw] key
|
324
|
+
# @return [::String]
|
325
|
+
# @!attribute [rw] value
|
326
|
+
# @return [::String]
|
327
|
+
class RenamedServicesEntry
|
328
|
+
include ::Google::Protobuf::MessageExts
|
329
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
330
|
+
end
|
303
331
|
end
|
304
332
|
|
305
333
|
# Describes the generator configuration for a method.
|
@@ -375,6 +403,17 @@ module Google
|
|
375
403
|
end
|
376
404
|
end
|
377
405
|
|
406
|
+
# This message is used to configure the generation of a subset of the RPCs in
|
407
|
+
# a service for client libraries.
|
408
|
+
# @!attribute [rw] methods
|
409
|
+
# @return [::Array<::String>]
|
410
|
+
# An allowlist of the fully qualified names of RPCs that should be included
|
411
|
+
# on public client surfaces.
|
412
|
+
class SelectiveGapicGeneration
|
413
|
+
include ::Google::Protobuf::MessageExts
|
414
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
415
|
+
end
|
416
|
+
|
378
417
|
# The organization for which the client libraries are being published.
|
379
418
|
# Affects the url where generated docs are published, etc.
|
380
419
|
module ClientLibraryOrganization
|
@@ -40,9 +40,11 @@ module Google
|
|
40
40
|
# @!attribute [rw] error
|
41
41
|
# @return [::Google::Rpc::Status]
|
42
42
|
# The error result of the operation in case of failure or cancellation.
|
43
|
+
#
|
44
|
+
# Note: The following fields are mutually exclusive: `error`, `response`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
43
45
|
# @!attribute [rw] response
|
44
46
|
# @return [::Google::Protobuf::Any]
|
45
|
-
# The normal response of the operation
|
47
|
+
# The normal, successful response of the operation. If the original
|
46
48
|
# method returns no data on success, such as `Delete`, the response is
|
47
49
|
# `google.protobuf.Empty`. If the original method is standard
|
48
50
|
# `Get`/`Create`/`Update`, the response should be the resource. For other
|
@@ -50,12 +52,15 @@ module Google
|
|
50
52
|
# is the original method name. For example, if the original method name
|
51
53
|
# is `TakeSnapshot()`, the inferred response type is
|
52
54
|
# `TakeSnapshotResponse`.
|
55
|
+
#
|
56
|
+
# Note: The following fields are mutually exclusive: `response`, `error`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
53
57
|
class Operation
|
54
58
|
include ::Google::Protobuf::MessageExts
|
55
59
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
56
60
|
end
|
57
61
|
|
58
|
-
# The request message for
|
62
|
+
# The request message for
|
63
|
+
# Operations.GetOperation.
|
59
64
|
# @!attribute [rw] name
|
60
65
|
# @return [::String]
|
61
66
|
# The name of the operation resource.
|
@@ -64,7 +69,8 @@ module Google
|
|
64
69
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
65
70
|
end
|
66
71
|
|
67
|
-
# The request message for
|
72
|
+
# The request message for
|
73
|
+
# Operations.ListOperations.
|
68
74
|
# @!attribute [rw] name
|
69
75
|
# @return [::String]
|
70
76
|
# The name of the operation's parent resource.
|
@@ -82,7 +88,8 @@ module Google
|
|
82
88
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
83
89
|
end
|
84
90
|
|
85
|
-
# The response message for
|
91
|
+
# The response message for
|
92
|
+
# Operations.ListOperations.
|
86
93
|
# @!attribute [rw] operations
|
87
94
|
# @return [::Array<::Google::Longrunning::Operation>]
|
88
95
|
# A list of operations that matches the specified filter in the request.
|
@@ -94,7 +101,8 @@ module Google
|
|
94
101
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
95
102
|
end
|
96
103
|
|
97
|
-
# The request message for
|
104
|
+
# The request message for
|
105
|
+
# Operations.CancelOperation.
|
98
106
|
# @!attribute [rw] name
|
99
107
|
# @return [::String]
|
100
108
|
# The name of the operation resource to be cancelled.
|
@@ -103,7 +111,8 @@ module Google
|
|
103
111
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
104
112
|
end
|
105
113
|
|
106
|
-
# The request message for
|
114
|
+
# The request message for
|
115
|
+
# Operations.DeleteOperation.
|
107
116
|
# @!attribute [rw] name
|
108
117
|
# @return [::String]
|
109
118
|
# The name of the operation resource to be deleted.
|
@@ -112,7 +121,8 @@ module Google
|
|
112
121
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
113
122
|
end
|
114
123
|
|
115
|
-
# The request message for
|
124
|
+
# The request message for
|
125
|
+
# Operations.WaitOperation.
|
116
126
|
# @!attribute [rw] name
|
117
127
|
# @return [::String]
|
118
128
|
# The name of the operation resource to wait on.
|
@@ -130,13 +140,12 @@ module Google
|
|
130
140
|
#
|
131
141
|
# Example:
|
132
142
|
#
|
133
|
-
#
|
134
|
-
#
|
135
|
-
#
|
136
|
-
#
|
137
|
-
#
|
138
|
-
# }
|
139
|
-
# }
|
143
|
+
# rpc Export(ExportRequest) returns (google.longrunning.Operation) {
|
144
|
+
# option (google.longrunning.operation_info) = {
|
145
|
+
# response_type: "ExportResponse"
|
146
|
+
# metadata_type: "ExportMetadata"
|
147
|
+
# };
|
148
|
+
# }
|
140
149
|
# @!attribute [rw] response_type
|
141
150
|
# @return [::String]
|
142
151
|
# Required. The message name of the primary return type for this
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-tpu-v1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-01-29 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: gapic-common
|
@@ -16,7 +15,7 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
18
|
+
version: 0.25.0
|
20
19
|
- - "<"
|
21
20
|
- !ruby/object:Gem::Version
|
22
21
|
version: 2.a
|
@@ -26,7 +25,7 @@ dependencies:
|
|
26
25
|
requirements:
|
27
26
|
- - ">="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
28
|
+
version: 0.25.0
|
30
29
|
- - "<"
|
31
30
|
- !ruby/object:Gem::Version
|
32
31
|
version: 2.a
|
@@ -105,7 +104,6 @@ homepage: https://github.com/googleapis/google-cloud-ruby
|
|
105
104
|
licenses:
|
106
105
|
- Apache-2.0
|
107
106
|
metadata: {}
|
108
|
-
post_install_message:
|
109
107
|
rdoc_options: []
|
110
108
|
require_paths:
|
111
109
|
- lib
|
@@ -113,15 +111,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
111
|
requirements:
|
114
112
|
- - ">="
|
115
113
|
- !ruby/object:Gem::Version
|
116
|
-
version: '
|
114
|
+
version: '3.0'
|
117
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
116
|
requirements:
|
119
117
|
- - ">="
|
120
118
|
- !ruby/object:Gem::Version
|
121
119
|
version: '0'
|
122
120
|
requirements: []
|
123
|
-
rubygems_version: 3.
|
124
|
-
signing_key:
|
121
|
+
rubygems_version: 3.6.2
|
125
122
|
specification_version: 4
|
126
123
|
summary: TPU API provides customers with access to Google TPU technology.
|
127
124
|
test_files: []
|