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.monitoring.dashboard.v1; 18 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21import "google/monitoring/dashboard/v1/dashboard_filter.proto"; 22import "google/monitoring/dashboard/v1/layouts.proto"; 23 24option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1"; 25option go_package = "cloud.google.com/go/monitoring/dashboard/apiv1/dashboardpb;dashboardpb"; 26option java_multiple_files = true; 27option java_outer_classname = "DashboardsProto"; 28option java_package = "com.google.monitoring.dashboard.v1"; 29option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1"; 30option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1"; 31 32// A Google Stackdriver dashboard. Dashboards define the content and layout 33// of pages in the Stackdriver web application. 34message Dashboard { 35 option (google.api.resource) = { 36 type: "monitoring.googleapis.com/Dashboard" 37 pattern: "projects/{project}/dashboards/{dashboard}" 38 }; 39 40 // Identifier. The resource name of the dashboard. 41 string name = 1 [(google.api.field_behavior) = IDENTIFIER]; 42 43 // Required. The mutable, human-readable name. 44 string display_name = 2 [(google.api.field_behavior) = REQUIRED]; 45 46 // `etag` is used for optimistic concurrency control as a way to help 47 // prevent simultaneous updates of a policy from overwriting each other. 48 // An `etag` is returned in the response to `GetDashboard`, and 49 // users are expected to put that etag in the request to `UpdateDashboard` to 50 // ensure that their change will be applied to the same version of the 51 // Dashboard configuration. The field should not be passed during 52 // dashboard creation. 53 string etag = 4; 54 55 // A dashboard's root container element that defines the layout style. 56 oneof layout { 57 // Content is arranged with a basic layout that re-flows a simple list of 58 // informational elements like widgets or tiles. 59 GridLayout grid_layout = 5; 60 61 // The content is arranged as a grid of tiles, with each content widget 62 // occupying one or more grid blocks. 63 MosaicLayout mosaic_layout = 6; 64 65 // The content is divided into equally spaced rows and the widgets are 66 // arranged horizontally. 67 RowLayout row_layout = 8; 68 69 // The content is divided into equally spaced columns and the widgets are 70 // arranged vertically. 71 ColumnLayout column_layout = 9; 72 } 73 74 // Filters to reduce the amount of data charted based on the filter criteria. 75 repeated DashboardFilter dashboard_filters = 11; 76 77 // Labels applied to the dashboard 78 map<string, string> labels = 12; 79} 80