mirror of https://github.com/istio/istio.io.git
7 lines
35 KiB
HTML
7 lines
35 KiB
HTML
<!DOCTYPE html><html lang="en" itemscope itemtype="https://schema.org/WebPage" style="overflow-y: scroll;"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="title" content="Mixer Service"><meta name="og:title" content="Mixer Service"><meta name="og:image" content="/v0.4/img/logo.png"/><meta name="theme-color" content="#466BB0"/><meta name="description" content="Generated documentation for Mixer's API Surface"><meta name="og:description" content="Generated documentation for Mixer's API Surface"><title>Istioldie 0.4 / Mixer Service</title><script> window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga('create', 'UA-98480406-2', 'auto'); ga('send', 'pageview'); </script> <script async src='https://www.google-analytics.com/analytics.js'></script><link rel="alternate" type="application/rss+xml" title="Istio Blog RSS" href="/v0.4/feed.xml"><link rel="shortcut icon" href="/v0.4/favicons/favicon.ico" ><link rel="apple-touch-icon" href="/v0.4/favicons/apple-touch-icon-180x180.png" sizes="180x180"><link rel="icon" type="image/png" href="/v0.4/favicons/favicon-16x16.png" sizes="16x16"><link rel="icon" type="image/png" href="/v0.4/favicons/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/v0.4/favicons/android-36x36.png" sizes="36x36"><link rel="icon" type="image/png" href="/v0.4/favicons/android-48x48.png" sizes="48x48"><link rel="icon" type="image/png" href="/v0.4/favicons/android-72x72.png" sizes="72x72"><link rel="icon" type="image/png" href="/v0.4/favicons/android-96x196.png" sizes="96x196"><link rel="icon" type="image/png" href="/v0.4/favicons/android-144x144.png" sizes="144x144"><link rel="icon" type="image/png" href="/v0.4/favicons/android-192x192.png" sizes="192x192"><link rel="manifest" href="/v0.4/manifest.json"><meta name="apple-mobile-web-app-title" content="Istio"><meta name="application-name" content="Istio"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"><link rel="stylesheet" href="/v0.4/css/all.css"><link rel="stylesheet" href="/v0.4/css/prism.css"></head><body class="language-unknown"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script><div class="nav-hero-container" style="z-index: 200000;"><nav id="header-nav" class="navbar navbar-inverse" role="navigation" style="z-index: 200000;"><div class="container"><div class="row"><div class="col-md-11 nofloat center-block "><div class="navbar-header"> <button type="button" class="hamburger navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/v0.4/"><div> <img src="/v0.4/img/istio-logo.svg" alt="Istio Logo" height="54px"/> <span class="brand-name">Istioldie 0.4</span></div></a></div><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="/v0.4/about" >About</a></li><li><a href="/v0.4/blog/posts/2017/mixer-spof-myth.html" >Blog</a></li><li><a href="/v0.4/docs/welcome" class='current'>Docs</a></li><li><a href="/v0.4/help" >Help</a></li><li><a href="/v0.4/community" >Community</a></li><li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href=""> <i class='fa fa-lg fa-cog'></i> <span class="caret"></span> </a><ul class="dropdown-menu"><h6 class="dropdown-header">Other versions of this site</h6><li> <a href="https://istio.io">Current Release</a></li><li> <a href="https://preliminary.istio.io">Next Release</a></li><li> <a href="https://archive.istio.io">Older Releases</a></li></ul></li><li><form name="cse" id="searchbox_demo" class="navbar-form navbar-right" role="search"> <input type="hidden" name="cx" value="013699703217164175118:iwwf17ikgf4" /> <input type="hidden" name="ie" value="utf-8" /> <input type="hidden" name="hl" value="en" /><div class="form-group"><div class="input-group"> <input name="q" class="form-control search-box" type="text" size="30" /><div class="input-group-addon"> <span class="btn-search glyphicon glyphicon-search"></span></div></div></div></form> <script type="text/javascript" src="https://www.google.com/cse/brand?form=searchbox_demo"></script></li></ul></div></div></div></div></nav></div><div class="container"><div class="row"><div class="col-md-11 nofloat center-block" style="margin-top: 3px;"><ul class="col-sm-10 nav nav-tabs"><li role="presentation" ><a href="/v0.4/docs/welcome/">Welcome</a></li><li role="presentation" ><a href="/v0.4/docs/concepts/">Concepts</a></li><li role="presentation" ><a href="/v0.4/docs/setup/">Setup</a></li><li role="presentation" ><a href="/v0.4/docs/tasks/">Tasks</a></li><li role="presentation" ><a href="/v0.4/docs/guides/">Guides</a></li><li role="presentation" class='active'><a href="/v0.4/docs/reference/">Reference</a></li></ul></div></div></div><script src="/v0.4/js/navtree.min.js"></script><div class="container docs"><div class="row"><div class="col-md-11 nofloat center-block"><div class="row"><div id="sidebar-container" class="col-sm-3"><ul class="sidebar"><li><h5 class='sidebar-title'>Reference</h5></li><script type="text/javascript"> var docs = []; docs.push({path: [ "api", "index.md", ], url: "/docs/reference/api/", title: "API", order: 10, overview: "Detailed information on API parameters."}); docs.push({path: [ "api", "mixer", "index.md", ], url: "/docs/reference/api/mixer/", title: "Mixer", order: 10, overview: "Detailed information on configuration and API exposed by Mixer."}); docs.push({path: [ "api", "mixer", "mixer-service.md", ], url: "/docs/reference/api/mixer/mixer-service.html", title: "Mixer Service", order: 20, overview: "Generated documentation for Mixer's API Surface"}); docs.push({path: [ "api", "mixer", "status.md", ], url: "/docs/reference/api/mixer/status.html", title: "Status RPC", order: 40, overview: "Google's rpc.Status proto"}); docs.push({path: [ "commands", "index.md", ], url: "/docs/reference/commands/", title: "CLI", order: 30, overview: "Describes usage and options of the Istio CLI and other utilities."}); docs.push({path: [ "commands", "istio_ca.md", ], url: "/docs/reference/commands/istio_ca.html", title: "istio_ca", order: 301, overview: "Istio Certificate Authority (CA)"}); docs.push({path: [ "commands", "istioctl.md", ], url: "/docs/reference/commands/istioctl.html", title: "istioctl", order: 20, overview: "Istio control interface"}); docs.push({path: [ "commands", "mixc.md", ], url: "/docs/reference/commands/mixc.html", title: "mixc", order: 101, overview: "Utility to trigger direct calls to Mixer's API."}); docs.push({path: [ "commands", "mixs.md", ], url: "/docs/reference/commands/mixs.html", title: "mixs", order: 201, overview: "Mixer is Istio's abstraction on top of infrastructure backends."}); docs.push({path: [ "config", "index.md", ], url: "/docs/reference/config/", title: "Configuration", order: 20, overview: "Detailed information on configuration options."}); docs.push({path: [ "config", "mixer", "adapters", "denier.md", ], url: "/docs/reference/config/mixer/adapters/denier.html", title: "denier Config", order: 100, overview: "Generated documentation for Mixer's denier Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "index.md", ], url: "/docs/reference/config/mixer/adapters/", title: "Adapters", order: 40, overview: "Generated documentation for Mixer's adapters."}); docs.push({path: [ "config", "mixer", "adapters", "kubernetes.md", ], url: "/docs/reference/config/mixer/adapters/kubernetes.html", title: "kubernetes Config", order: 10, overview: "Generated documentation for Mixer's kubernetes Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "list.md", ], url: "/docs/reference/config/mixer/adapters/list.html", title: "list Config", order: 20, overview: "Generated documentation for Mixer's list Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "memquota.md", ], url: "/docs/reference/config/mixer/adapters/memquota.html", title: "memquota Config", order: 30, overview: "Generated documentation for Mixer's memquota Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "prometheus.md", ], url: "/docs/reference/config/mixer/adapters/prometheus.html", title: "prometheus Config", order: 40, overview: "Generated documentation for Mixer's prometheus Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "stackdriver.md", ], url: "/docs/reference/config/mixer/adapters/stackdriver.html", title: "stackdriver Config", order: 50, overview: "Generated documentation for Mixer's stackdriver Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "statsd.md", ], url: "/docs/reference/config/mixer/adapters/statsd.html", title: "statsd Config", order: 60, overview: "Generated documentation for Mixer's statsd Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "stdio.md", ], url: "/docs/reference/config/mixer/adapters/stdio.html", title: "stdio Config", order: 70, overview: "Generated documentation for Mixer's stdio Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "adapters", "svcctrl.md", ], url: "/docs/reference/config/mixer/adapters/svcctrl.html", title: "svcctrl Config", order: 80, overview: "Generated documentation for Mixer's svcctrl Adapter Configuration Schema"}); docs.push({path: [ "config", "mixer", "attribute-manifests.md", ], url: "/docs/reference/config/mixer/attribute-manifests.html", title: "Attribute Manifests", order: 15, overview: "Describes the resource containing the collection of attributes known to Mixer at runtime."}); docs.push({path: [ "config", "mixer", "attribute-vocabulary.md", ], url: "/docs/reference/config/mixer/attribute-vocabulary.html", title: "Attribute Vocabulary", order: 10, overview: "Describes the base attribute vocabulary used for policy and control."}); docs.push({path: [ "config", "mixer", "expression-language.md", ], url: "/docs/reference/config/mixer/expression-language.html", title: "Expression Language", order: 20, overview: "Mixer config expression language reference."}); docs.push({path: [ "config", "mixer", "index.md", ], url: "/docs/reference/config/mixer/", title: "Mixer", order: 30, overview: "Detailed information on configuration and API exposed by Mixer."}); docs.push({path: [ "config", "mixer", "policy-and-telemetry-rules.md", ], url: "/docs/reference/config/mixer/policy-and-telemetry-rules.html", title: "Policy and Telemetry Rules", order: 40, overview: "Describes the rules used to configure Mixer policy and telemetry."}); docs.push({path: [ "config", "mixer", "template", "checknothing.md", ], url: "/docs/reference/config/mixer/template/checknothing.html", title: "checknothing Config", order: 1150, overview: "Generated documentation for Mixer's Template Configuration Schema"}); docs.push({path: [ "config", "mixer", "template", "index.md", ], url: "/docs/reference/config/mixer/template/", title: "Templates", order: 50, overview: "Generated documentation for Mixer's Templates."}); docs.push({path: [ "config", "mixer", "template", "listentry.md", ], url: "/docs/reference/config/mixer/template/listentry.html", title: "listentry Config", order: 1160, overview: "Generated documentation for Mixer's Template Configuration Schema"}); docs.push({path: [ "config", "mixer", "template", "logentry.md", ], url: "/docs/reference/config/mixer/template/logentry.html", title: "logentry Config", order: 1170, overview: "Generated documentation for Mixer's Template Configuration Schema"}); docs.push({path: [ "config", "mixer", "template", "metric.md", ], url: "/docs/reference/config/mixer/template/metric.html", title: "metric Config", order: 1180, overview: "Generated documentation for Mixer's Template Configuration Schema"}); docs.push({path: [ "config", "mixer", "template", "quota.md", ], url: "/docs/reference/config/mixer/template/quota.html", title: "quota Config", order: 1190, overview: "Generated documentation for Mixer's Template Configuration Schema"}); docs.push({path: [ "config", "mixer", "template", "reportnothing.md", ], url: "/docs/reference/config/mixer/template/reportnothing.html", title: "reportnothing Config", order: 1200, overview: "Generated documentation for Mixer's Template Configuration Schema"}); docs.push({path: [ "config", "mixer", "value-type.md", ], url: "/docs/reference/config/mixer/value-type.html", title: "Value Type", order: 50, overview: "Generated documentation for Mixer Config's Value Type"}); docs.push({path: [ "config", "service-mesh.md", ], url: "/docs/reference/config/service-mesh.html", title: "Service Mesh", order: 15, overview: "Global Configuration Schema"}); docs.push({path: [ "config", "traffic-rules", "destination-policies.md", ], url: "/docs/reference/config/traffic-rules/destination-policies.html", title: "Destination Policies", order: 30, overview: "Configuration schema for Client-side traffic management policies"}); docs.push({path: [ "config", "traffic-rules", "egress-rules.md", ], url: "/docs/reference/config/traffic-rules/egress-rules.html", title: "Egress Rules", order: 40, overview: "Routing configuration for traffic exiting the service mesh"}); docs.push({path: [ "config", "traffic-rules", "index.md", ], url: "/docs/reference/config/traffic-rules/", title: "Traffic Management Rules", order: 20, overview: "Detailed information on rules configuration and API exposed by Pilot for managing them."}); docs.push({path: [ "config", "traffic-rules", "routing-rules.md", ], url: "/docs/reference/config/traffic-rules/routing-rules.html", title: "Routing Rules", order: 20, overview: "Traffic routing rule configuration schema"}); docs.push({path: [ "index.md", ], url: "/docs/reference/", title: "Reference", order: 60, overview: "The Reference section contains detailed authoritative reference material such as command-line options, configuration options, and API calling parameters."}); docs.push({path: [ "writing-config.md", ], url: "/docs/reference/writing-config.html", title: "Writing Configuration", order: 70, overview: "How to write Istio config YAML content."}); genSideBarTree(docs) </script></ul></div><div id="tab-container" class="col-xs-1 tab-neg-margin pull-left"> <a id="sidebar-tab" class="glyphicon glyphicon-chevron-left" href="javascript:void 0;"> </a></div><div id="content-container" class="thin-left-border col-sm-9 markdown"><div id="toc" class="toc"></div><div id="doc-content"><h1>Mixer Service</h1><p><a name="rpcIstio.mixer.v1"></a></p><h2 id="package-istiomixerv1">Package istio.mixer.v1</h2><p><a name="rpcIstio.mixer.v1Index"></a></p><h3 id="index">Index</h3><ul><li><a href="#istio.mixer.v1.Mixer">Mixer</a> (interface)</li><li><a href="#istio.mixer.v1.Attributes">Attributes</a> (message)</li><li><a href="#istio.mixer.v1.CheckRequest">CheckRequest</a> (message)</li><li><a href="#istio.mixer.v1.CheckRequest.QuotaParams">CheckRequest.QuotaParams</a> (message)</li><li><a href="#istio.mixer.v1.CheckResponse">CheckResponse</a> (message)</li><li><a href="#istio.mixer.v1.CheckResponse.PreconditionResult">CheckResponse.PreconditionResult</a> (message)</li><li><a href="#istio.mixer.v1.CheckResponse.QuotaResult">CheckResponse.QuotaResult</a> (message)</li><li><a href="#istio.mixer.v1.ReferencedAttributes">ReferencedAttributes</a> (message)</li><li><a href="#istio.mixer.v1.ReferencedAttributes.AttributeMatch">ReferencedAttributes.AttributeMatch</a> (message)</li><li><a href="#istio.mixer.v1.ReferencedAttributes.Condition">ReferencedAttributes.Condition</a> (enum)</li><li><a href="#istio.mixer.v1.ReportRequest">ReportRequest</a> (message)</li><li><a href="#istio.mixer.v1.ReportResponse">ReportResponse</a> (message)</li><li><a href="#istio.mixer.v1.StringMap">StringMap</a> (message)</li></ul><p><a name="istio.mixer.v1.Mixer"></a></p><h3 id="mixer">Mixer</h3><p>Mixer provides three core features:</p><ul><li><p><em>Precondition Checking</em>. Enables callers to verify a number of preconditions before responding to an incoming request from a service consumer. Preconditions can include whether the service consumer is properly authenticated, is on the service’s whitelist, passes ACL checks, and more.</p></li><li><p><em>Quota Management</em>. Enables services to allocate and free quota on a number of dimensions, Quotas are used as a relatively simple resource management tool to provide some fairness between service consumers when contending for limited resources. Rate limits are examples of quotas.</p></li><li><p><em>Telemetry Reporting</em>. Enables services to report logging and monitoring. In the future, it will also enable tracing and billing streams intended for both the service operator as well as for service consumers.</p></li></ul><p><a name="istio.mixer.v1.Mixer.Check"></a></p><h4 id="check">Check</h4><pre> rpc Check(<a href="#istio.mixer.v1.CheckRequest">CheckRequest</a>) returns (<a href="istio.mixer.v1.CheckResponse">CheckResponse</a>) </pre><p>Checks preconditions and allocate quota before performing an operation. The preconditions enforced depend on the set of supplied attributes and the active configuration.</p><p><a name="istio.mixer.v1.Mixer.Report"></a></p><h4 id="report">Report</h4><pre> rpc Report(<a href="#istio.mixer.v1.ReportRequest">ReportRequest</a>) returns (<a href="#istio.mixer.v1.ReportResponse">ReportResponse</a>) </pre><p>Reports telemetry, such as logs and metrics. The reported information depends on the set of supplied attributes and the active configuration.</p><p><a name="istio.mixer.v1.Attributes"></a></p><h3 id="attributes">Attributes</h3><p>Attributes represents a set of typed name/value pairs. Many of Mixer’s API either consume and/or return attributes.</p><p>Istio uses attributes to control the runtime behavior of services running in the service mesh. Attributes are named and typed pieces of metadata describing ingress and egress traffic and the environment this traffic occurs in. An Istio attribute carries a specific piece of information such as the error code of an API request, the latency of an API request, or the original IP address of a TCP connection. For example:</p><pre><code>request.path: xyz/abc
|
||
request.size: 234
|
||
request.time: 12:34:56.789 04/17/2017
|
||
source.ip: 192.168.0.1
|
||
target.service: example
|
||
</code></pre><p>A given Istio deployment has a fixed vocabulary of attributes that it understands. The specific vocabulary is determined by the set of attribute producers being used in the deployment. The primary attribute producer in Istio is Envoy, although specialized Mixer adapters and services can also generate attributes.</p><p>The common baseline set of attributes available in most Istio deployments is defined <a href="/v0.4/docs/reference/config/mixer/attribute-vocabulary.html">here</a>.</p><p>Attributes are strongly typed. The supported attribute types are defined by <a href="https://github.com/istio/api/blob/master/mixer/v1/config/descriptor/value_type.proto">ValueType</a>. Each type of value is encoded into one of the so-called transport types present in this message.</p><p>Within this message, strings are referenced using integer indices into one of two string dictionaries. Positive integers index into the global deployment-wide dictionary, whereas negative integers index into the message-level dictionary instead. The message-level dictionary is carried by the <code>words</code> field of this message, the deployment-wide dictionary is determined via configuration.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.Attributes.words"></a><tr><td><code>words[]</code></td><td>repeated string</td><td>The message-level dictionary.</td></tr><a name="istio.mixer.v1.Attributes.strings"></a><tr><td><code>strings</code></td><td>repeated map<sint32, sint32></td><td>Attribute payload. All <code>sint32</code> values represent indices into one of the word dictionaries. Positive values are indices into the global deployment-wide dictionary, negative values are indices into the message-level dictionary.</td></tr><a name="istio.mixer.v1.Attributes.int64s"></a><tr><td><code>int64s</code></td><td>repeated map<sint32, int64></td><td></td></tr><a name="istio.mixer.v1.Attributes.doubles"></a><tr><td><code>doubles</code></td><td>repeated map<sint32, double></td><td></td></tr><a name="istio.mixer.v1.Attributes.bools"></a><tr><td><code>bools</code></td><td>repeated map<sint32, bool></td><td></td></tr><a name="istio.mixer.v1.Attributes.timestamps"></a><tr><td><code>timestamps</code></td><td>repeated map<sint32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">Timestamp</a>></td><td></td></tr><a name="istio.mixer.v1.Attributes.durations"></a><tr><td><code>durations</code></td><td>repeated map<sint32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a>></td><td></td></tr><a name="istio.mixer.v1.Attributes.bytes"></a><tr><td><code>bytes</code></td><td>repeated map<sint32, bytes></td><td></td></tr><a name="istio.mixer.v1.Attributes.stringMaps"></a><tr><td><code>stringMaps</code></td><td>repeated map<sint32, <a href="#istio.mixer.v1.StringMap">StringMap</a>></td><td></td></tr></table><p><a name="istio.mixer.v1.CheckRequest"></a></p><h3 id="checkrequest">CheckRequest</h3><p>Used to get a thumbs-up/thumbs-down before performing an action.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.CheckRequest.attributes"></a><tr><td><code>attributes</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td><p>The attributes to use for this request.</p><p>Mixer's configuration determines how these attributes are used to establish the result returned in the response.</p></td></tr><a name="istio.mixer.v1.CheckRequest.globalWordCount"></a><tr><td><code>globalWordCount</code></td><td>uint32</td><td>The number of words in the global dictionary, used with to populate the attributes. This value is used as a quick way to determine whether the client is using a dictionary that the server understands.</td></tr><a name="istio.mixer.v1.CheckRequest.deduplicationId"></a><tr><td><code>deduplicationId</code></td><td>string</td><td>Used for deduplicating <code>Check</code> calls in the case of failed RPCs and retries. This should be a UUID per call, where the same UUID is used for retries of the same call.</td></tr><a name="istio.mixer.v1.CheckRequest.quotas"></a><tr><td><code>quotas</code></td><td>repeated map<string, <a href="#istio.mixer.v1.CheckRequest.QuotaParams">QuotaParams</a>></td><td>The individual quotas to allocate</td></tr></table><p><a name="istio.mixer.v1.CheckRequest.QuotaParams"></a></p><h3 id="quotaparams">QuotaParams</h3><p>parameters for a quota allocation</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.CheckRequest.QuotaParams.amount"></a><tr><td><code>amount</code></td><td>int64</td><td>Amount of quota to allocate</td></tr><a name="istio.mixer.v1.CheckRequest.QuotaParams.bestEffort"></a><tr><td><code>bestEffort</code></td><td>bool</td><td>When true, supports returning less quota than what was requested.</td></tr></table><p><a name="istio.mixer.v1.CheckResponse"></a></p><h3 id="checkresponse">CheckResponse</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.CheckResponse.precondition"></a><tr><td><code>precondition</code></td><td><a href="#istio.mixer.v1.CheckResponse.PreconditionResult">PreconditionResult</a></td><td>The precondition check results.</td></tr><a name="istio.mixer.v1.CheckResponse.quotas"></a><tr><td><code>quotas</code></td><td>repeated map<string, <a href="#istio.mixer.v1.CheckResponse.QuotaResult">QuotaResult</a>></td><td>The resulting quota, one entry per requested quota.</td></tr></table><p><a name="istio.mixer.v1.CheckResponse.PreconditionResult"></a></p><h3 id="preconditionresult">PreconditionResult</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.CheckResponse.PreconditionResult.status"></a><tr><td><code>status</code></td><td><a href="/v0.4/docs/reference/api/mixer/status.html">Status</a></td><td>A status code of OK indicates all preconditions were satisfied. Any other code indicates not all preconditions were satisfied and details describe why.</td></tr><a name="istio.mixer.v1.CheckResponse.PreconditionResult.validDuration"></a><tr><td><code>validDuration</code></td><td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td><td>The amount of time for which this result can be considered valid.</td></tr><a name="istio.mixer.v1.CheckResponse.PreconditionResult.validUseCount"></a><tr><td><code>validUseCount</code></td><td>int32</td><td>The number of uses for which this result can be considered valid.</td></tr><a name="istio.mixer.v1.CheckResponse.PreconditionResult.attributes"></a><tr><td><code>attributes</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td><p>The attributes returned by Mixer.</p><p>The exact set of attributes returned is determined by the set of adapters Mixer is configured with. These attributes are used to ferry new attributes that Mixer derived based on the input set of attributes and its configuration.</p></td></tr><a name="istio.mixer.v1.CheckResponse.PreconditionResult.referencedAttributes"></a><tr><td><code>referencedAttributes</code></td><td><a href="#istio.mixer.v1.ReferencedAttributes">ReferencedAttributes</a></td><td>The total set of attributes that were used in producing the result along with matching conditions.</td></tr></table><p><a name="istio.mixer.v1.CheckResponse.QuotaResult"></a></p><h3 id="quotaresult">QuotaResult</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.CheckResponse.QuotaResult.validDuration"></a><tr><td><code>validDuration</code></td><td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td><td>The amount of time for which this result can be considered valid.</td></tr><a name="istio.mixer.v1.CheckResponse.QuotaResult.grantedAmount"></a><tr><td><code>grantedAmount</code></td><td>int64</td><td>The amount of granted quota. When <code>QuotaParams.bestEffort</code> is true, this will be >= 0. If <code>QuotaParams.bestEffort</code> is false, this will be either 0 or >= <code>QuotaParams.amount</code>.</td></tr><a name="istio.mixer.v1.CheckResponse.QuotaResult.referencedAttributes"></a><tr><td><code>referencedAttributes</code></td><td><a href="#istio.mixer.v1.ReferencedAttributes">ReferencedAttributes</a></td><td>The total set of attributes that were used in producing the result along with matching conditions.</td></tr></table><p><a name="istio.mixer.v1.ReferencedAttributes"></a></p><h3 id="referencedattributes">ReferencedAttributes</h3><p>Describes the attributes that were used to determine the response. This can be used to construct a response cache.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.ReferencedAttributes.words"></a><tr><td><code>words[]</code></td><td>repeated string</td><td>The message-level dictionary. Refer to <a href="#istio.mixer.v1.Attributes">Attributes</a> for information on using dictionaries.</td></tr><a name="istio.mixer.v1.ReferencedAttributes.attributeMatches"></a><tr><td><code>attributeMatches[]</code></td><td>repeated <a href="#istio.mixer.v1.ReferencedAttributes.AttributeMatch">AttributeMatch</a></td><td>Describes a set of attributes.</td></tr></table><p><a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch"></a></p><h3 id="attributematch">AttributeMatch</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch.name"></a><tr><td><code>name</code></td><td>sint32</td><td>The name of the attribute. This is a dictionary index encoded in a manner identical to all strings in the <a href="#istio.mixer.v1.Attributes">Attributes</a> message.</td></tr><a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch.condition"></a><tr><td><code>condition</code></td><td><a href="#istio.mixer.v1.ReferencedAttributes.Condition">Condition</a></td><td>The kind of match against the attribute value.</td></tr><a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch.regex"></a><tr><td><code>regex</code></td><td>string</td><td>The matching regex in the case of condition = REGEX</td></tr></table><p><a name="istio.mixer.v1.ReferencedAttributes.Condition"></a></p><h3 id="condition">Condition</h3><p>How an attribute’s value was matched</p><table><tr><th>Value</th><th>Description</th></tr><a name="istio.mixer.v1.ReferencedAttributes.Condition.CONDITION_UNSPECIFIED"></a><tr><td>CONDITION_UNSPECIFIED</td><td>should not occur</td></tr><a name="istio.mixer.v1.ReferencedAttributes.Condition.ABSENCE"></a><tr><td>ABSENCE</td><td>match when attribute doesn't exist</td></tr><a name="istio.mixer.v1.ReferencedAttributes.Condition.EXACT"></a><tr><td>EXACT</td><td>match when attribute value is an exact byte-for-byte match</td></tr><a name="istio.mixer.v1.ReferencedAttributes.Condition.REGEX"></a><tr><td>REGEX</td><td>match when attribute value matches the included regex</td></tr></table><p><a name="istio.mixer.v1.ReportRequest"></a></p><h3 id="reportrequest">ReportRequest</h3><p>Used to report telemetry after performing one or more actions.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.ReportRequest.attributes"></a><tr><td><code>attributes[]</code></td><td>repeated <a href="#istio.mixer.v1.Attributes">Attributes</a></td><td><p>The attributes to use for this request.</p><p>Each <code>Attributes</code> element represents the state of a single action. Multiple actions can be provided in a single message in order to improve communication efficiency. The client can accumulate a set of actions and send them all in one single message.</p><p>Although each <code>Attributes</code> message is semantically treated as an independent stand-alone entity unrelated to the other attributes within the message, this message format leverages delta-encoding between attribute messages in order to substantially reduce the request size and improve end-to-end efficiency. Each individual set of attributes is used to modify the previous set. This eliminates the need to redundantly send the same attributes multiple times over within a single request.</p><p>If a client is not sophisticated and doesn't want to use delta-encoding, a degenerate case is to include all attributes in every individual message.</p></td></tr><a name="istio.mixer.v1.ReportRequest.defaultWords"></a><tr><td><code>defaultWords[]</code></td><td>repeated string</td><td><p>The default message-level dictionary for all the attributes. Individual attribute messages can have their own dictionaries, but if they don't then this set of words, if it is provided, is used instead.</p><p>This makes it possible to share the same dictionary for all attributes in this request, which can substantially reduce the overall request size.</p></td></tr><a name="istio.mixer.v1.ReportRequest.globalWordCount"></a><tr><td><code>globalWordCount</code></td><td>uint32</td><td>The number of words in the global dictionary. To detect global dictionary out of sync between client and server.</td></tr></table><p><a name="istio.mixer.v1.ReportResponse"></a></p><h3 id="reportresponse">ReportResponse</h3><p>NOTE: _No fields in this message type.__</p><p><a name="istio.mixer.v1.StringMap"></a></p><h3 id="stringmap">StringMap</h3><p>A map of string to string. The keys and values in this map are dictionary indices (see the <a href="#istio.mixer.v1.Attributes">Attributes</a> message for an explanation)</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.StringMap.entries"></a><tr><td><code>entries</code></td><td>repeated map<sint32, sint32></td><td></td></tr></table></div></div></div></div></div></div><script src="/v0.4/js/sidebar.min.js"></script><footer><div class="container"><div class="row"><div class="col-lg-2 col-md-2 col-sm-2"></div><div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 center-block"><ul><li><a class="header" href="/v0.4/docs/welcome">Docs</a></li><li><a href="/v0.4/docs/concepts">Concepts</a></li><li><a href="/v0.4/docs/setup">Setup</a></li><li><a href="/v0.4/docs/tasks">Tasks</a></li><li><a href="/v0.4/docs/guides">Guides</a></li><li><a href="/v0.4/docs/reference">Reference</a></li></ul></div><div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 center-block"><ul><li><a class="header" href="/v0.4/help">Help</a></li><li><a href="/v0.4/faq">FAQ</a></li><li><a href="/v0.4/glossary">Glossary</a></li><li><a href="/v0.4/troubleshooting">Troubleshooting</a></li><li><a href="/v0.4/bugs">Report Bugs</a></li><li><a href="https://github.com/istio/istio.github.io/issues/new?title=Issue with _docs/reference/api/mixer/mixer-service.md">Doc Bugs & Gaps</a></li><li><a href="https://github.com/istio/istio.github.io/edit/master/_docs/reference/api/mixer/mixer-service.md">Edit This Page</a></li></ul></div><div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 center-block"><ul><li> <a class="header" href="/v0.4/community">Community</a></li><li> <a href="https://groups.google.com/forum/#!forum/istio-users" target="_blank" rel="noopener">User</a> | <a href="https://groups.google.com/forum/#!forum/istio-dev" target="_blank" rel="noopener">Dev Mailing Lists</a></li><li><a href="https://twitter.com/IstioMesh" target="_blank" rel="noopener">Twitter</a></li><li><a href="https://stackoverflow.com/questions/tagged/istio" target="_blank" rel="noopener">Stack Overflow</a></li><li><a href="https://github.com/istio/community" target="_blank" rel="noopener">GitHub</a></li><li><a href="https://github.com/istio/community/blob/master/WORKING-GROUPS.md" target="_blank" rel="noopener">Working Groups</a></li></ul></div><div class="col-lg-1 col-md-1 col-sm-1"></div></div><div class="row"><p class="description small text-center"> Istio 0.4, Copyright © 2017 Istio Authors<br> Archived on 20-Dec-2017</p></div></div></footer><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.1/jquery.form.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-visible/1.2.0/jquery.visible.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="/v0.4/js/common.min.js"></script> <script src="/v0.4/js/search.js"></script> <script src="/v0.4/js/prism.min.js"></script></body></html>
|