xref: /aosp_15_r20/external/googleapis/google/cloud/visionai/v1alpha1/lva.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.visionai.v1alpha1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.VisionAI.V1Alpha1";
20*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/visionai/apiv1alpha1/visionaipb;visionaipb";
21*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
22*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "LvaProto";
23*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.visionai.v1alpha1";
24*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\VisionAI\\V1alpha1";
25*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::VisionAI::V1alpha1";
26*d5c09012SAndroid Build Coastguard Worker
27*d5c09012SAndroid Build Coastguard Worker// Represents an actual value of an operator attribute.
28*d5c09012SAndroid Build Coastguard Workermessage AttributeValue {
29*d5c09012SAndroid Build Coastguard Worker  // Attribute value.
30*d5c09012SAndroid Build Coastguard Worker  oneof value {
31*d5c09012SAndroid Build Coastguard Worker    // int.
32*d5c09012SAndroid Build Coastguard Worker    int64 i = 1;
33*d5c09012SAndroid Build Coastguard Worker
34*d5c09012SAndroid Build Coastguard Worker    // float.
35*d5c09012SAndroid Build Coastguard Worker    float f = 2;
36*d5c09012SAndroid Build Coastguard Worker
37*d5c09012SAndroid Build Coastguard Worker    // bool.
38*d5c09012SAndroid Build Coastguard Worker    bool b = 3;
39*d5c09012SAndroid Build Coastguard Worker
40*d5c09012SAndroid Build Coastguard Worker    // string.
41*d5c09012SAndroid Build Coastguard Worker    bytes s = 4;
42*d5c09012SAndroid Build Coastguard Worker  }
43*d5c09012SAndroid Build Coastguard Worker}
44*d5c09012SAndroid Build Coastguard Worker
45*d5c09012SAndroid Build Coastguard Worker// Defines an Analyzer.
46*d5c09012SAndroid Build Coastguard Worker//
47*d5c09012SAndroid Build Coastguard Worker// An analyzer processes data from its input streams using the logic defined in
48*d5c09012SAndroid Build Coastguard Worker// the Operator that it represents. Of course, it produces data for the output
49*d5c09012SAndroid Build Coastguard Worker// streams declared in the Operator.
50*d5c09012SAndroid Build Coastguard Workermessage AnalyzerDefinition {
51*d5c09012SAndroid Build Coastguard Worker  // The inputs to this analyzer.
52*d5c09012SAndroid Build Coastguard Worker  //
53*d5c09012SAndroid Build Coastguard Worker  // We accept input name references of the following form:
54*d5c09012SAndroid Build Coastguard Worker  // <analyzer-name>:<output-argument-name>
55*d5c09012SAndroid Build Coastguard Worker  //
56*d5c09012SAndroid Build Coastguard Worker  // Example:
57*d5c09012SAndroid Build Coastguard Worker  //
58*d5c09012SAndroid Build Coastguard Worker  // Suppose you had an operator named "SomeOp" that has 2 output
59*d5c09012SAndroid Build Coastguard Worker  // arguments, the first of which is named "foo" and the second of which is
60*d5c09012SAndroid Build Coastguard Worker  // named "bar", and an operator named "MyOp" that accepts 2 inputs.
61*d5c09012SAndroid Build Coastguard Worker  //
62*d5c09012SAndroid Build Coastguard Worker  // Also suppose that there is an analyzer named "some-analyzer" that is
63*d5c09012SAndroid Build Coastguard Worker  // running "SomeOp" and another analyzer named "my-analyzer" running "MyOp".
64*d5c09012SAndroid Build Coastguard Worker  //
65*d5c09012SAndroid Build Coastguard Worker  // To indicate that "my-analyzer" is to consume "some-analyzer"'s "foo"
66*d5c09012SAndroid Build Coastguard Worker  // output as its first input and "some-analyzer"'s "bar" output as its
67*d5c09012SAndroid Build Coastguard Worker  // second input, you can set this field to the following:
68*d5c09012SAndroid Build Coastguard Worker  // input = ["some-analyzer:foo", "some-analyzer:bar"]
69*d5c09012SAndroid Build Coastguard Worker  message StreamInput {
70*d5c09012SAndroid Build Coastguard Worker    // The name of the stream input (as discussed above).
71*d5c09012SAndroid Build Coastguard Worker    string input = 1;
72*d5c09012SAndroid Build Coastguard Worker  }
73*d5c09012SAndroid Build Coastguard Worker
74*d5c09012SAndroid Build Coastguard Worker  // Options available for debugging purposes only.
75*d5c09012SAndroid Build Coastguard Worker  message DebugOptions {
76*d5c09012SAndroid Build Coastguard Worker    // Environment variables.
77*d5c09012SAndroid Build Coastguard Worker    map<string, string> environment_variables = 1;
78*d5c09012SAndroid Build Coastguard Worker  }
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker  // The name of this analyzer.
81*d5c09012SAndroid Build Coastguard Worker  //
82*d5c09012SAndroid Build Coastguard Worker  // Tentatively [a-z][a-z0-9]*(_[a-z0-9]+)*.
83*d5c09012SAndroid Build Coastguard Worker  string analyzer = 1;
84*d5c09012SAndroid Build Coastguard Worker
85*d5c09012SAndroid Build Coastguard Worker  // The name of the operator that this analyzer runs.
86*d5c09012SAndroid Build Coastguard Worker  //
87*d5c09012SAndroid Build Coastguard Worker  // Must match the name of a supported operator.
88*d5c09012SAndroid Build Coastguard Worker  string operator = 2;
89*d5c09012SAndroid Build Coastguard Worker
90*d5c09012SAndroid Build Coastguard Worker  // Input streams.
91*d5c09012SAndroid Build Coastguard Worker  repeated StreamInput inputs = 3;
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker  // The attribute values that this analyzer applies to the operator.
94*d5c09012SAndroid Build Coastguard Worker  //
95*d5c09012SAndroid Build Coastguard Worker  // Supply a mapping between the attribute names and the actual value you wish
96*d5c09012SAndroid Build Coastguard Worker  // to apply. If an attribute name is omitted, then it will take a
97*d5c09012SAndroid Build Coastguard Worker  // preconfigured default value.
98*d5c09012SAndroid Build Coastguard Worker  map<string, AttributeValue> attrs = 4;
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // Debug options.
101*d5c09012SAndroid Build Coastguard Worker  DebugOptions debug_options = 5;
102*d5c09012SAndroid Build Coastguard Worker}
103*d5c09012SAndroid Build Coastguard Worker
104*d5c09012SAndroid Build Coastguard Worker// Defines a full analysis.
105*d5c09012SAndroid Build Coastguard Worker//
106*d5c09012SAndroid Build Coastguard Worker// This is a description of the overall live analytics pipeline.
107*d5c09012SAndroid Build Coastguard Worker// You may think of this as an edge list representation of a multigraph.
108*d5c09012SAndroid Build Coastguard Worker//
109*d5c09012SAndroid Build Coastguard Worker// This may be directly authored by a human in protobuf textformat, or it may be
110*d5c09012SAndroid Build Coastguard Worker// generated by a programming API (perhaps Python or JavaScript depending on
111*d5c09012SAndroid Build Coastguard Worker// context).
112*d5c09012SAndroid Build Coastguard Workermessage AnalysisDefinition {
113*d5c09012SAndroid Build Coastguard Worker  // Analyzer definitions.
114*d5c09012SAndroid Build Coastguard Worker  repeated AnalyzerDefinition analyzers = 1;
115*d5c09012SAndroid Build Coastguard Worker}
116