xref: /aosp_15_r20/external/googleapis/google/monitoring/dashboard/v1/dashboard.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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