Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / devtools / resultstore / v2 / target.proto
1 // Copyright 2018 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 //
15
16 syntax = "proto3";
17
18 package google.devtools.resultstore.v2;
19
20 import "google/devtools/resultstore/v2/common.proto";
21 import "google/devtools/resultstore/v2/file.proto";
22
23 option go_package = "google.golang.org/genproto/googleapis/devtools/resultstore/v2;resultstore";
24 option java_multiple_files = true;
25 option java_package = "com.google.devtools.resultstore.v2";
26
27 // Each Target represents data for a given target in a given Invocation.
28 // ConfiguredTarget and Action resources under each Target contain the bulk of
29 // the data.
30 message Target {
31   // The resource ID components that identify the Target.
32   message Id {
33     // The Invocation ID.
34     string invocation_id = 1;
35
36     // The Target ID.
37     string target_id = 2;
38   }
39
40   // The resource name.  Its format must be:
41   // invocations/${INVOCATION_ID}/targets/${TARGET_ID}
42   string name = 1;
43
44   // The resource ID components that identify the Target. They must match the
45   // resource name after proper encoding.
46   Id id = 2;
47
48   // This is the aggregate status of the target.
49   StatusAttributes status_attributes = 3;
50
51   // When this target started and its duration.
52   Timing timing = 4;
53
54   // Attributes that apply to all targets.
55   TargetAttributes target_attributes = 5;
56
57   // Attributes that apply to all test actions under this target.
58   TestAttributes test_attributes = 6;
59
60   // Arbitrary name-value pairs.
61   // This is implemented as a multi-map. Multiple properties are allowed with
62   // the same key. Properties will be returned in lexicographical order by key.
63   repeated Property properties = 7;
64
65   // A list of file references for target level files.
66   // The file IDs must be unique within this list. Duplicate file IDs will
67   // result in an error. Files will be returned in lexicographical order by ID.
68   // Use this field to specify outputs not related to a configuration.
69   repeated File files = 8;
70
71   // Provides a hint to clients as to whether to display the Target to users.
72   // If true then clients likely want to display the Target by default.
73   // Once set to true, this may not be set back to false.
74   bool visible = 10;
75 }
76
77 // Attributes that apply to all targets.
78 message TargetAttributes {
79   // If known, indicates the type of this target.  In bazel this corresponds
80   // to the rule-suffix.
81   TargetType type = 1;
82
83   // If known, the main language of this target, e.g. java, cc, python, etc.
84   Language language = 2;
85
86   // The tags attribute of the build rule. These should be short, descriptive
87   // words, and there should only be a few of them.
88   // This is implemented as a set. All tags will be unique. Any duplicate tags
89   // will be ignored. Tags will be returned in lexicographical order.
90   repeated string tags = 3;
91 }
92
93 // Attributes that apply only to test actions under this target.
94 message TestAttributes {
95   // Indicates how big the user indicated the test action was.
96   TestSize size = 1;
97 }
98
99 // These correspond to the suffix of the rule name. Eg cc_test has type TEST.
100 enum TargetType {
101   // Unspecified by the build system.
102   TARGET_TYPE_UNSPECIFIED = 0;
103
104   // An application e.g. ios_application.
105   APPLICATION = 1;
106
107   // A binary target e.g. cc_binary.
108   BINARY = 2;
109
110   // A library target e.g. java_library
111   LIBRARY = 3;
112
113   // A package
114   PACKAGE = 4;
115
116   // Any test target, in bazel that means a rule with a '_test' suffix.
117   TEST = 5;
118 }
119
120 // Indicates how big the user indicated the test action was.
121 enum TestSize {
122   // Unspecified by the user.
123   TEST_SIZE_UNSPECIFIED = 0;
124
125   // Unit test taking less than 1 minute.
126   SMALL = 1;
127
128   // Integration tests taking less than 5 minutes.
129   MEDIUM = 2;
130
131   // End-to-end tests taking less than 15 minutes.
132   LARGE = 3;
133
134   // Even bigger than LARGE.
135   ENORMOUS = 4;
136
137   // Something that doesn't fit into the above categories.
138   OTHER_SIZE = 5;
139 }