1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.aiplatform.v1beta1; 18 19import "google/api/field_behavior.proto"; 20import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto"; 21import "google/protobuf/timestamp.proto"; 22 23option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; 24option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; 25option java_multiple_files = true; 26option java_outer_classname = "TensorboardDataProto"; 27option java_package = "com.google.cloud.aiplatform.v1beta1"; 28option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; 29option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; 30 31// All the data stored in a TensorboardTimeSeries. 32message TimeSeriesData { 33 // Required. The ID of the TensorboardTimeSeries, which will become the final 34 // component of the TensorboardTimeSeries' resource name 35 string tensorboard_time_series_id = 1 36 [(google.api.field_behavior) = REQUIRED]; 37 38 // Required. Immutable. The value type of this time series. All the values in 39 // this time series data must match this value type. 40 TensorboardTimeSeries.ValueType value_type = 2 [ 41 (google.api.field_behavior) = REQUIRED, 42 (google.api.field_behavior) = IMMUTABLE 43 ]; 44 45 // Required. Data points in this time series. 46 repeated TimeSeriesDataPoint values = 3 47 [(google.api.field_behavior) = REQUIRED]; 48} 49 50// A TensorboardTimeSeries data point. 51message TimeSeriesDataPoint { 52 // Value of this time series data point. 53 oneof value { 54 // A scalar value. 55 Scalar scalar = 3; 56 57 // A tensor value. 58 TensorboardTensor tensor = 4; 59 60 // A blob sequence value. 61 TensorboardBlobSequence blobs = 5; 62 } 63 64 // Wall clock timestamp when this data point is generated by the end user. 65 google.protobuf.Timestamp wall_time = 1; 66 67 // Step index of this data point within the run. 68 int64 step = 2; 69} 70 71// One point viewable on a scalar metric plot. 72message Scalar { 73 // Value of the point at this step / timestamp. 74 double value = 1; 75} 76 77// One point viewable on a tensor metric plot. 78message TensorboardTensor { 79 // Required. Serialized form of 80 // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto 81 bytes value = 1 [(google.api.field_behavior) = REQUIRED]; 82 83 // Optional. Version number of TensorProto used to serialize 84 // [value][google.cloud.aiplatform.v1beta1.TensorboardTensor.value]. 85 int32 version_number = 2 [(google.api.field_behavior) = OPTIONAL]; 86} 87 88// One point viewable on a blob metric plot, but mostly just a wrapper message 89// to work around repeated fields can't be used directly within `oneof` fields. 90message TensorboardBlobSequence { 91 // List of blobs contained within the sequence. 92 repeated TensorboardBlob values = 1; 93} 94 95// One blob (e.g, image, graph) viewable on a blob metric plot. 96message TensorboardBlob { 97 // Output only. A URI safe key uniquely identifying a blob. Can be used to 98 // locate the blob stored in the Cloud Storage bucket of the consumer project. 99 string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 100 101 // Optional. The bytes of the blob is not present unless it's returned by the 102 // ReadTensorboardBlobData endpoint. 103 bytes data = 2 [(google.api.field_behavior) = OPTIONAL]; 104} 105