Shuffle files around as agreed.

Also includes minor comment updates and a few
field renames, based on outstanding feedback.
This commit is contained in:
Martin Taillefer 2017-01-10 06:15:54 -08:00 committed by Martin Taillefer
parent 56e57ce2e8
commit 4ee728da07
18 changed files with 70 additions and 54 deletions

View File

@ -1,15 +1,13 @@
# Istio APIs and Common Configuration Definitions
This repo defines component-level APIs and common configuration formats for the Istio
This repository defines component-level APIs and common configuration formats for the Istio
platform. These definitions are specified using the [protobuf](https://github.com/google/protobuf)
syntax.
All other Istio repositories can take a dependency on the api
repository. This repository *will not* depend on any other repos
We may check-in generated .pb.go and .pb.cc files here.
## Standard vocabulary
All components of an Istio installation operate on a shared vocabulary of attributes.
A standard vocabulary of attributes including it meaning is available in this repo.
All components of an Istio installation operate on a shared vocabulary of attributes,
as defined in this repo.

View File

@ -1 +0,0 @@
*.pb.*

View File

@ -1 +0,0 @@
*.pb.*

View File

@ -18,7 +18,7 @@ package istio.mixer.v1;
import "google/protobuf/timestamp.proto";
// An instance of this is delivered to the mixer with every
// An instance of this message is delivered to the mixer with every
// API call.
//
// The general idea is to leverage the stateful gRPC streams from the
@ -52,7 +52,7 @@ message Attributes {
// This is intended to leverage the stateful gRPC stream from the
// proxy to the mixer. This dictionary is sent over only when a
// stream to the mixer is first established and when the proxy's
// config changes and different attributes may be produced.
// configuration changes and different attributes may be produced.
//
// Once a dictionary has been sent over, it stays in effect until
// a new dictionary is sent to replace it. The first request sent on a
@ -60,7 +60,7 @@ message Attributes {
// any attribute updates.
//
// Dictionaries are independent of the attribute context and are thus global
// for the current gRPC stream.
// to each gRPC stream.
map<int32, string> dictionary = 1;
// The attribute context against which to operate.
@ -76,7 +76,7 @@ message Attributes {
// to prevent an explosion of contexts in the mixer's memory space.
//
// TODO: Consider removing support for this feature. The proxy can achieve
// the same thing using multiple gRPC streams. The benefit of using streams
// the same effect using multiple gRPC streams. The benefit of using streams
// would be that the mixer would be in control of the maximum number of streams
// it allows, whereas with the current model the proxy could overwhelm the
// mixer by creating too many contexts.

View File

@ -14,8 +14,8 @@
syntax = "proto3";
package istio.config.v1.aspect.denyChecker;
package istio.mixer.v1.config.aspect;
// Config - User visible configuration of this aspect
message Config {
// Configures a deny checker aspect
message DenyCheckerConfig {
}

View File

@ -14,12 +14,10 @@
syntax = "proto3";
package istio.config.v1.aspect.listChecker;
package istio.mixer.v1.config.aspect;
// Config - User visible configuration of this aspect
// Must be defined as a proto
message Config {
// Configures a list checker aspect
message ListCheckerConfig {
// blacklist determines if this behaves like a blacklist
// default is whitelist
bool blacklist = 1;

View File

@ -0,0 +1,21 @@
// Copyright 2017 Google Inc.
//
// 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.
syntax = "proto3";
package istio.mixer.v1.config.aspect;
// Configures a quota aspect.
message QuotaConfig {
}

View File

@ -17,11 +17,11 @@ syntax = "proto3";
import "google/protobuf/struct.proto";
package istio.config.v1;
package istio.mixer.v1.config;
// Configures a set of services
// following example configures metrics collection and ratelimit for
// all services
// all services
//# service config
//subject: "namespace:ns1"
//revision: "1011"

View File

@ -14,7 +14,7 @@
syntax = "proto3";
package istio.mixer.v1;
package istio.mixer.v1.config.descriptor;
// An `AttributeDescriptor` describes the schema of an Istio attribute type.
//
@ -70,11 +70,11 @@ message AttributeDescriptor {
// name with a component-specific suffix such as request_count-my_component
string name = 1;
// The type of data carried by attributes
ValueType value_type = 2;
// An optional human-readable description of the attribute's purpose.
string description = 3;
string description = 2;
// The type of data carried by attributes
ValueType value_type = 3;
// Types of supported attribute values.
enum ValueType {

View File

@ -21,9 +21,13 @@ message LogEntryDescriptor {
// The name of this descriptor.
string name = 1;
// The set of attributes that are necessary to describe a log entry of this type.
repeated string attributes = 2;
// An optional concise name for the log entry type, which can be displayed in user interfaces.
// Use sentence case without an ending period, for example "Request count".
string display_name = 2;
// The monitored resource to associated with log entries of this type.
string monitored_resource_descriptor = 3;
// An optional description of the log entry type, which can be used in documentation.
string description = 3;
// The set of attributes that are necessary to describe a log entry of this type.
repeated string attributes = 4;
}

View File

@ -30,20 +30,17 @@ message MetricDescriptor {
// The set of attributes that are necessary to describe a specific value cell
// for a metric of this type.
repeated string dimension_attributes = 3;
// The monitored resource to associate with metrics of this type.
string monitored_resource_descriptor = 4;
repeated string attributes = 3;
// Whether the metric records instantaneous values, changes to a value, etc.
MetricKind metric_kind = 5;
MetricKind metric_kind = 4;
// An optional description of the metric, which can be used in documentation.
string description = 6;
string description = 5;
// An optional concise name for the metric, which can be displayed in user interfaces.
// Use sentence case without an ending period, for example "Request count".
string display_name = 7;
string display_name = 6;
// The kind of measurement. It describes how the data is reported.
enum MetricKind {

View File

@ -22,10 +22,10 @@ message MonitoredResourceDescriptor {
// The name of this descriptor
string name = 1;
// The set of attributes that are necessary to describe a specific monitored resource.
repeated string attributes = 3;
// An optional detailed description of the monitored resource descriptor that might
// be used in documentation.
string description = 2;
// The set of attributes that are necessary to describe a specific instance of a monitored resource.
repeated string attributes = 3;
}

View File

@ -14,7 +14,7 @@
syntax = "proto3";
package istio.mixer.v1;
package istio.mixer.v1.config.descriptor;
// Configuration state for a particular quota.
//
@ -23,7 +23,7 @@ package istio.mixer.v1;
// The descriptor below lets you define a quota and indicate the maximum
// amount values of this quota are allowed to hold.
//
// A given quota is described by a set of attribtues. These attributes represent
// A given quota is described by a set of attributes. These attributes represent
// the different dimensions to associate with the quota. A given quota holds a
// unique value for potentially any combination of these attributes.
//
@ -34,20 +34,20 @@ message QuotaDescriptor {
// The name of this descriptor.
string name = 1;
// A optional concise name for the quota, which can be displayed in user interfaces.
// Use sentence case without an ending period, for example "Request count".
string display_name = 2;
// An optional description of the quota, which can be used in documentation.
string description = 3;
// The name of the attribute that supplies the amount for a given
// quota allocation or release operation.
string amount_attribute = 2;
string amount_attribute = 4;
// The set of attributes that are necessary to describe a specific value cell
// for a quota of this type.
repeated string dimension_attributes = 3;
// An optional description of the quota, which can be used in documentation.
string description = 4;
// A optional concise name for the quota, which can be displayed in user interfaces.
// Use sentence case without an ending period, for example "Request count".
string display_name = 5;
repeated string attributes = 5;
// The default imposed maximum amount for values of this quota.
int64 max_amount = 6;
@ -58,11 +58,11 @@ message QuotaDescriptor {
// Whether the quota's current value is tracked precisely or not.
// Precisely tracked quotas only allow a relatively modest level of
// scaling, whereas imprecise quotas can support a nearly unbounded
// level of scaling at the cost of potentially having inaccuracies.
// level of scaling at the cost of potential accounting inaccuracies.
bool precise = 8;
enum QuotaKind {
// Quota values are always explicitly manipulated via the Quota method.
// Quota values are always explicitly manipulated via API calls.
ALLOCATION_LIMIT = 0;
// Quota limit expresses a maximum amount over a rolling time interval

View File

@ -30,7 +30,7 @@ message QuotaRequest {
OperationKind kind = 3;
// Used for deduplicating quota allocation/free calls in the case of
// failed RPCs are retries. This should be a UUID per call, where the same
// failed RPCs and retries. This should be a UUID per call, where the same
// UUID is used for retries of the same quota allocation or release call.
string deduplication_id = 4;