// Copyright 2017 Istio Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// THIS FILE IS AUTOMATICALLY GENERATED.

syntax = "proto3";

package istio.mixer.adapter.metricentry;

import "mixer/v1/template/extensions.proto";
import "mixer/v1/config/descriptor/value_type.proto";

option (istio.mixer.v1.template.template_variety) = TEMPLATE_VARIETY_REPORT;


// 
// Overview of what metric is etc..
// 
// Additional overview of what metric is etc..
// metric template is ..
// aso it is...
message Type {
  
  // value is ...
  istio.mixer.v1.config.descriptor.ValueType value = 1;
  // dimensions are ...
  map<string, istio.mixer.v1.config.descriptor.ValueType> dimensions = 2;
  
  istio.mixer.v1.config.descriptor.ValueType anotherValueType = 7;
  
  repeated Resource3Type res3_list = 15;
  
  map<string, Resource3Type> res3_map = 16;
}



message Resource1Type {
  
  
  Resource1Type self_ref_res1 = 3;
  
  Resource2Type resRef2 = 2;
}


message Resource2Type {
  
  
  Resource3Type res3 = 2;
  
  repeated Resource3Type res3_list = 4;
  
  map<string, Resource3Type> res3_map = 5;
}

// resource3 comment
message Resource3Type {
  
  // value is ...
  istio.mixer.v1.config.descriptor.ValueType value = 1;
  // dimensions are ...
  map<string, istio.mixer.v1.config.descriptor.ValueType> dimensions = 2;
  
  istio.mixer.v1.config.descriptor.ValueType anotherValueType = 7;
}



message InstanceParam {
  
  string value = 1;
  
  map<string, string> dimensions = 2;
  
  string int64Primitive = 3;
  
  string boolPrimitive = 4;
  
  string doublePrimitive = 5;
  
  string stringPrimitive = 6;
  
  string anotherValueType = 7;
  
  map<string, string> dimensionsFixedInt64ValueDType = 8;
  
  string timeStamp = 9;
  
  string duration = 10;
  
  string ip_addr = 11;
  
  string dns_name = 12;
  
  string email_addr = 13;
  
  string uri = 14;
  
  repeated Resource3InstanceParam res3_list = 15;
  
  map<string, Resource3InstanceParam> res3_map = 16;
  
  
}


message Resource1InstanceParam {
  
  string str = 1;
  
  Resource1InstanceParam self_ref_res1 = 3;
  
  Resource2InstanceParam resRef2 = 2;
  
}

message Resource2InstanceParam {
  
  string str = 1;
  
  Resource3InstanceParam res3 = 2;
  
  repeated Resource3InstanceParam res3_list = 4;
  
  map<string, Resource3InstanceParam> res3_map = 5;
  
}

message Resource3InstanceParam {
  
  string value = 1;
  
  map<string, string> dimensions = 2;
  
  string int64Primitive = 3;
  
  string boolPrimitive = 4;
  
  string doublePrimitive = 5;
  
  string stringPrimitive = 6;
  
  string anotherValueType = 7;
  
  map<string, string> dimensionsFixedInt64ValueDType = 8;
  
  string timeStamp = 9;
  
  string duration = 10;
  
}

