mirror of https://github.com/istio/istio.io.git
8 lines
31 KiB
HTML
8 lines
31 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.1/img/logo.png"/><meta name="description" content="Mixer's API Surface"><meta name="og:description" content="Mixer's API Surface"><title>Istioldie 0.1 / 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 href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'><link rel="alternate" type="application/rss+xml" title="Istio Blog RSS" href="/v0.1/feed.xml"><link rel="apple-touch-icon" href="/v0.1/favicons/apple-touch-icon.png" sizes="180x180"><link rel="icon" type="image/png" href="/v0.1/favicons/android-chrome-96x96.png" sizes="96x96" ><link rel="icon" type="image/png" href="/v0.1/favicons/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/v0.1/favicons/favicon-16x16.png" sizes="16x16"><link rel="manifest" href="/v0.1/favicons/manifest.json"><link rel="mask-icon" href="/v0.1/favicons/safari-pinned-tab.svg" color="#2DA6B0"><meta name="msapplication-TileColor" content="#ffffff"><meta name="msapplication-TileImage" content="/v0.1/favicons/mstile-150x150.png"><link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"><link rel="stylesheet" href="/v0.1/css/all.css"><link rel="stylesheet" href="/v0.1/css/prism.css"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script></head><body class="language-unknown"><div class="nav-hero-container" style="z-index: 200000;"><nav id="header-nav" class="navbar navbar-inverse" role="navigation"><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.1/"><div> <img src="/v0.1/img/logo.png" alt="Istio" width="36px" height="54px"/> <span class="brand-name">Istioldie 0.1</span></div></a></div><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="/v0.1/about/" >About</a></li><li><a href="/v0.1/docs/" class='current'>Docs</a></li><li><a href="/v0.1/blog/" >Blog</a></li><li><a href="/v0.1/community/" >Community</a></li><li><a href="/v0.1/faq/" >FAQ</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" 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.1/docs/index.html">Welcome</a></li><li role="presentation" ><a href="/v0.1/docs/concepts/index.html">Concepts</a></li><li role="presentation" ><a href="/v0.1/docs/tasks/index.html">Tasks</a></li><li role="presentation" ><a href="/v0.1/docs/samples/index.html">Samples</a></li><li role="presentation" class='active'><a href="/v0.1/docs/reference/index.html">Reference</a></li></ul></div></div></div><script src="/v0.1/js/navtree.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="doc-side-nav"><li><h5 class='doc-side-nav-title'>Reference</h5></li><script type="text/javascript"> var docs = []; docs.push({path: [ "api", "index.md", ], url: "/docs/reference/api/index.html", title: "API", order: 21, overview: "Detailed information on API parameters."}); docs.push({path: [ "api", "mixer", "index.md", ], url: "/docs/reference/api/mixer/index.html", 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: 1200, overview: "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/index.html", title: "CLI", order: 30, overview: "Describes usage and options of the Istio CLI and other utilities."}); docs.push({path: [ "commands", "istioctl.md", ], url: "/docs/reference/commands/istioctl.html", title: "istioctl", order: 1, 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/index.html", title: "Configuration", order: 22, overview: "Detailed information on configuration options."}); docs.push({path: [ "config", "mixer", "adapters", "denychecker.md", ], url: "/docs/reference/config/mixer/adapters/denyChecker.html", title: "denyChecker", order: 0, overview: "denyChecker adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "genericlistchecker.md", ], url: "/docs/reference/config/mixer/adapters/genericListChecker.html", title: "genericListChecker", order: 10, overview: "genericListChecker adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "index.md", ], url: "/docs/reference/config/mixer/adapters/index.html", title: "Adapters", order: 2000, overview: "Mixer's adapter configuration schemas."}); docs.push({path: [ "config", "mixer", "adapters", "iplistchecker.md", ], url: "/docs/reference/config/mixer/adapters/ipListChecker.html", title: "ipListChecker", order: 20, overview: "ipListChecker adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "kubernetes.md", ], url: "/docs/reference/config/mixer/adapters/kubernetes.html", title: "kubernetes", order: 30, overview: "kubernetes adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "memquota.md", ], url: "/docs/reference/config/mixer/adapters/memQuota.html", title: "memQuota", order: 40, overview: "memQuota adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "prometheus.md", ], url: "/docs/reference/config/mixer/adapters/prometheus.html", title: "prometheus", order: 50, overview: "prometheus adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "redisquota.md", ], url: "/docs/reference/config/mixer/adapters/redisquota.html", title: "redisquota", order: 60, overview: "redisquota adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "statsd.md", ], url: "/docs/reference/config/mixer/adapters/statsd.html", title: "statsd", order: 70, overview: "statsd adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "stdiologger.md", ], url: "/docs/reference/config/mixer/adapters/stdioLogger.html", title: "stdioLogger", order: 80, overview: "stdioLogger adapter configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "accesslogs.md", ], url: "/docs/reference/config/mixer/aspects/accessLogs.html", title: "accessLogs", order: 1120, overview: "accessLogs aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "applicationlogs.md", ], url: "/docs/reference/config/mixer/aspects/applicationLogs.html", title: "applicationLogs", order: 1130, overview: "applicationLogs aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "attributes.md", ], url: "/docs/reference/config/mixer/aspects/attributes.html", title: "attributes", order: 1140, overview: "attributes aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "denials.md", ], url: "/docs/reference/config/mixer/aspects/denials.html", title: "denials", order: 1150, overview: "denials aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "index.md", ], url: "/docs/reference/config/mixer/aspects/index.html", title: "Aspects", order: 2000, overview: "Generated documentation for Mixer's aspects."}); docs.push({path: [ "config", "mixer", "aspects", "lists.md", ], url: "/docs/reference/config/mixer/aspects/lists.html", title: "lists", order: 1160, overview: "lists aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "metrics.md", ], url: "/docs/reference/config/mixer/aspects/metrics.html", title: "metrics", order: 1170, overview: "metrics aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "quotas.md", ], url: "/docs/reference/config/mixer/aspects/quotas.html", title: "quotas", order: 1180, overview: "quotas aspect configuration schema"}); 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: 43, overview: "Mixer config expression language reference."}); docs.push({path: [ "config", "mixer", "index.md", ], url: "/docs/reference/config/mixer/index.html", title: "Mixer", order: 10, overview: "Detailed information on configuration and API exposed by Mixer."}); docs.push({path: [ "config", "mixer", "mixer-config.md", ], url: "/docs/reference/config/mixer/mixer-config.html", title: "Mixer", order: 1190, overview: "Mixer's configuration schema"}); docs.push({path: [ "config", "service-mesh.md", ], url: "/docs/reference/config/service-mesh.html", title: "Service Mesh", order: 30, 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: "Client-side traffic management policies configuration schema"}); docs.push({path: [ "config", "traffic-rules", "index.md", ], url: "/docs/reference/config/traffic-rules/index.html", title: "Traffic Management Rules", order: 10, 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: [ "contribute", "creating-a-pull-request.md", ], url: "/docs/reference/contribute/creating-a-pull-request.html", title: "Creating a Pull Request", order: 20, overview: "Shows you how to create a GitHub pull request in order to submit your docs for approval."}); docs.push({path: [ "contribute", "editing.md", ], url: "/docs/reference/contribute/editing.html", title: "Editing Docs", order: 10, overview: "Lets you start editing this site's documentation."}); docs.push({path: [ "contribute", "index.md", ], url: "/docs/reference/contribute/index.html", title: "Contributing to the Docs", order: 100, overview: "Learn how to contribute to improve and expand the Istio documentation."}); docs.push({path: [ "contribute", "reviewing-doc-issues.md", ], url: "/docs/reference/contribute/reviewing-doc-issues.html", title: "Doc Issues", order: 60, overview: "Explains the process involved in accepting documentation updates."}); docs.push({path: [ "contribute", "staging-your-changes.md", ], url: "/docs/reference/contribute/staging-your-changes.html", title: "Staging Your Changes", order: 40, overview: "Explains how to test your changes locally before submitting them."}); docs.push({path: [ "contribute", "style-guide.md", ], url: "/docs/reference/contribute/style-guide.html", title: "Style Guide", order: 70, overview: "Explains the dos and donts of writing Istio docs."}); docs.push({path: [ "contribute", "writing-a-new-topic.md", ], url: "/docs/reference/contribute/writing-a-new-topic.html", title: "Writing a New Topic", order: 30, overview: "Explains the mechanics of creating new documentation pages."}); docs.push({path: [ "glossary.md", ], url: "/docs/reference/glossary.html", title: "Glossary", order: 40, overview: "A glossary of common Istio terms."}); docs.push({path: [ "index.md", ], url: "/docs/reference/index.html", title: "Reference", order: 40, overview: "The Reference section contains detailed authoritative reference material such as command-line options, configuration options, and API calling parameters."}); docs.push({path: [ "release-notes.md", ], url: "/docs/reference/release-notes.html", title: "Release Notes", order: 50, overview: "What's been happening with Istio."}); docs.push({path: [ "release-roadmap.md", ], url: "/docs/reference/release-roadmap.html", title: "Roadmap", order: 60, overview: "What Istio will become in the coming months."}); 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."}); genNavBarTree(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="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>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><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></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 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.Quota"></a></p><h4 id="quota">Quota</h4><pre>
|
||
rpc Quota(<a href="#istio.mixer.v1.QuotaRequest">QuotaRequest</a>) returns (<a href="#istio.mixer.v1.QuotaResponse">QuotaResponse</a>)
|
||
</pre><p>Quota allocates and releases quota.</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>An instance of this message is delivered to Mixer with every API call.</p><p>The general idea is to leverage the stateful gRPC streams from the Envoy to Mixer to keep to a minimum the ‘attribute chatter’. Only delta attributes are sent over, multiple concurrent attribute contexts can be used to avoid thrashing, and attribute indices are used to keep the wire protocol maximally efficient.</p><p>Producing this message is the responsibility of Mixer’s client library which is linked into different proxy implementations.</p><p>The processing order for this state in Mixer is:</p><ul><li><p>Any new dictionary is applied</p></li><li><p>The requested attribute context is looked up. If no such context has been defined, a new context is automatically created and initialized to the empty state. When a gRPC stream is first created, there are no attribute contexts for the stream.</p></li><li><p>If resetContext is true, then the attribute context is reset to the empty state.</p></li><li><p>All attributes to deleted are removed from the attribute context.</p></li><li><p>All attribute changes are applied to the attribute context.</p></li></ul><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.Attributes.dictionary"></a><tr><td><code>dictionary</code></td><td>repeated map<int32, string></td><td><p>A dictionary that provides a mapping of shorthand index values to attribute names.</p><p>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 configuration changes and different attributes may be produced.</p><p>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 stream must include a dictionary, otherwise the mixer can't process any attribute updates.</p><p>Dictionaries are independent of the attribute context and are thus global to each gRPC stream.</p></td></tr><a name="istio.mixer.v1.Attributes.attributeContext"></a><tr><td><code>attributeContext</code></td><td>int32</td><td><p>The attribute context against which to operate.</p><p>The mixer keeps different contexts live for any proxy gRPC stream. This allows the proxy to maintain multiple concurrent 'bags of attributes' within the mixer.</p><p>If the proxy doesn't want to leverage multiple contexts, it just passes 0 here for every request.</p><p>The proxy is configured to use a maximum number of attribute contexts in order to prevent an explosion of contexts in the mixer's memory space.</p></td></tr><a name="istio.mixer.v1.Attributes.resetContext"></a><tr><td><code>resetContext</code></td><td>bool</td><td><p>When true, resets the current attribute context to the empty state before applying any incoming attributes.</p><p>Resetting contexts is useful to constrain the amount of resources used by the mixer. The proxy needs to intelligently manage a pool of contexts. It may be useful to reset a context when certain big events happen, such as when an HTTP2 connection into the proxy terminates.</p></td></tr><a name="istio.mixer.v1.Attributes.stringAttributes"></a><tr><td><code>stringAttributes</code></td><td>repeated map<int32, string></td><td>Attributes being updated within the specified attribute context. These maps add and/or overwrite the context's current set of attributes.</td></tr><a name="istio.mixer.v1.Attributes.int64Attributes"></a><tr><td><code>int64Attributes</code></td><td>repeated map<int32, int64></td><td></td></tr><a name="istio.mixer.v1.Attributes.doubleAttributes"></a><tr><td><code>doubleAttributes</code></td><td>repeated map<int32, double></td><td></td></tr><a name="istio.mixer.v1.Attributes.boolAttributes"></a><tr><td><code>boolAttributes</code></td><td>repeated map<int32, bool></td><td></td></tr><a name="istio.mixer.v1.Attributes.timestampAttributes"></a><tr><td><code>timestampAttributes</code></td><td>repeated map<int32, <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.durationAttributes"></a><tr><td><code>durationAttributes</code></td><td>repeated map<int32, <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.bytesAttributes"></a><tr><td><code>bytesAttributes</code></td><td>repeated map<int32, bytes></td><td></td></tr><a name="istio.mixer.v1.Attributes.stringMapAttributes"></a><tr><td><code>stringMapAttributes</code></td><td>repeated map<int32, <a href="#istio.mixer.v1.StringMap">StringMap</a>></td><td></td></tr><a name="istio.mixer.v1.Attributes.deletedAttributes"></a><tr><td><code>deletedAttributes[]</code></td><td>repeated int32</td><td>Attributes that should be removed from the specified attribute context. Deleting attributes which aren't currently in the attribute context is not considered an error.</td></tr><a name="istio.mixer.v1.Attributes.timestampAttributesHACK"></a><tr><td><code>timestampAttributesHACK</code></td><td>repeated map<int32, <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.durationAttributesHACK"></a><tr><td><code>durationAttributesHACK</code></td><td>repeated map<int32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a>></td><td></td></tr></table><p><a name="istio.mixer.v1.CheckRequest"></a></p><h3 id="checkrequest">CheckRequest</h3><p>Used to verify preconditions before performing an action.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.CheckRequest.requestIndex"></a><tr><td><code>requestIndex</code></td><td>int64</td><td>Index within the stream for this request, used to match to responses</td></tr><a name="istio.mixer.v1.CheckRequest.attributeUpdate"></a><tr><td><code>attributeUpdate</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td>The attributes to use for this request</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.requestIndex"></a><tr><td><code>requestIndex</code></td><td>int64</td><td>Index of the request this response is associated with</td></tr><a name="istio.mixer.v1.CheckResponse.attributeUpdate"></a><tr><td><code>attributeUpdate</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td>The attributes to use for this response</td></tr><a name="istio.mixer.v1.CheckResponse.result"></a><tr><td><code>result</code></td><td><a href="./status.html">Status</a></td><td>Indicates whether or not the preconditions succeeded</td></tr><a name="istio.mixer.v1.CheckResponse.expiration"></a><tr><td><code>expiration</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, given the same inputs</td></tr></table><p><a name="istio.mixer.v1.QuotaRequest"></a></p><h3 id="quotarequest">QuotaRequest</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.QuotaRequest.requestIndex"></a><tr><td><code>requestIndex</code></td><td>int64</td><td>Index within the stream for this request, used to match to responses</td></tr><a name="istio.mixer.v1.QuotaRequest.attributeUpdate"></a><tr><td><code>attributeUpdate</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td>The attributes to use for this request</td></tr><a name="istio.mixer.v1.QuotaRequest.deduplicationId"></a><tr><td><code>deduplicationId</code></td><td>string</td><td>Used for deduplicating quota allocation/free 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 quota allocation call.</td></tr><a name="istio.mixer.v1.QuotaRequest.quota"></a><tr><td><code>quota</code></td><td>string</td><td>The quota to allocate from.</td></tr><a name="istio.mixer.v1.QuotaRequest.amount"></a><tr><td><code>amount</code></td><td>int64</td><td>The amount of quota to allocate.</td></tr><a name="istio.mixer.v1.QuotaRequest.bestEffort"></a><tr><td><code>bestEffort</code></td><td>bool</td><td>If true, allows a response to return less quota than requested. When false, the exact requested amount is returned or 0 if not enough quota was available.</td></tr></table><p><a name="istio.mixer.v1.QuotaResponse"></a></p><h3 id="quotaresponse">QuotaResponse</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.QuotaResponse.requestIndex"></a><tr><td><code>requestIndex</code></td><td>int64</td><td>Index of the request this response is associated with.</td></tr><a name="istio.mixer.v1.QuotaResponse.attributeUpdate"></a><tr><td><code>attributeUpdate</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td>The attributes to use for this response</td></tr><a name="istio.mixer.v1.QuotaResponse.result"></a><tr><td><code>result</code></td><td><a href="./status.html">Status</a></td><td>Indicates whether the quota request was successfully processed.</td></tr><a name="istio.mixer.v1.QuotaResponse.expiration"></a><tr><td><code>expiration</code></td><td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td><td>The amount of time the returned quota can be considered valid, this is 0 for non-expiring quotas.</td></tr><a name="istio.mixer.v1.QuotaResponse.amount"></a><tr><td><code>amount</code></td><td>int64</td><td>The total amount of quota returned, may be less than requested.</td></tr></table><p><a name="istio.mixer.v1.ReportRequest"></a></p><h3 id="reportrequest">ReportRequest</h3><p>Used to report telemetry after performing an action.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.ReportRequest.requestIndex"></a><tr><td><code>requestIndex</code></td><td>int64</td><td>Index within the stream for this request, used to match to responses</td></tr><a name="istio.mixer.v1.ReportRequest.attributeUpdate"></a><tr><td><code>attributeUpdate</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td>The attributes to use for this request</td></tr></table><p><a name="istio.mixer.v1.ReportResponse"></a></p><h3 id="reportresponse">ReportResponse</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.ReportResponse.requestIndex"></a><tr><td><code>requestIndex</code></td><td>int64</td><td>Index of the request this response is associated with</td></tr><a name="istio.mixer.v1.ReportResponse.attributeUpdate"></a><tr><td><code>attributeUpdate</code></td><td><a href="#istio.mixer.v1.Attributes">Attributes</a></td><td>The attributes to use for this response</td></tr><a name="istio.mixer.v1.ReportResponse.result"></a><tr><td><code>result</code></td><td><a href="./status.html">Status</a></td><td>Indicates whether the report was processed or not</td></tr></table><p><a name="istio.mixer.v1.StringMap"></a></p><h3 id="stringmap">StringMap</h3><p>A map of string to string. The keys in these maps are from the current dictionary.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.StringMap.map"></a><tr><td><code>map</code></td><td>repeated map<int32, string></td><td></td></tr></table></div></div></div></div></div></div><script src="/v0.1/js/sidemenu.js"></script><footer><div class="container"><div class="row"><div class="col-md-2"></div><div class="col-md-3 col-sm-4 col-xs-12 center-block"><ul class="toggle"><p class="header">Docs</p><li><a href="/v0.1/docs/">Welcome</a></li><li><a href="/v0.1/docs/concepts">Concepts</a></li><li><a href="/v0.1/docs/tasks">Tasks</a></li><li><a href="/v0.1/docs/samples">Samples</a></li><li><a href="/v0.1/docs/reference">Reference</a></li></ul></div><hr class="footer-sections" /><div class="col-md-3 col-sm-4 col-xs-12 center-block"><ul class="toggle"><p class="header">Resources</p><li><a href="/v0.1/faq">Frequently Asked Questions</a></li><li><a href="/v0.1/troubleshooting">Troubleshooting Guide</a></li><li><a href="/v0.1/bugs">Report a Bug</a></li><li><a href="https://github.com/istio/istio.github.io/issues/new?title=Issue with _docs/reference/api/mixer/mixer-service.md">Report a Doc Issue</a></li><li><a href="https://github.com/istio/istio.github.io/edit/master/_docs/reference/api/mixer/mixer-service.md">Edit This Page on GitHub</a></li></ul></div><hr class="footer-sections" /><div class="col-md-3 col-sm-4 col-xs-12 center-block"><ul class="toggle"><p class="header">Community</p><li><a href="https://groups.google.com/forum/#!forum/istio-users" target="_blank"><span class="group">User</span></a> | <a href="https://groups.google.com/forum/#!forum/istio-dev" target="_blank">Dev Mailing Lists</a></li><li><a href="https://twitter.com/IstioMesh" target="_blank"><span class="twitter">Twitter</span></a></li><li><a href="https://github.com/istio/istio" target="_blank"><span class="github">GitHub</span></a></li></ul></div><div class="col-md-1"></div></div><div class="row"><p class="description small text-center"> Copyright © 2017 Istio Authors<br> Istio 0.1<br> Archived on 20-Jul-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="/v0.1/js/jquery.form.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> <script src="/v0.1/js/slick.min.js"></script> <script src="/v0.1/js/jquery.visible.min.js"></script> <script src="/v0.1/js/common.js" type="text/javascript" charset="utf-8"></script> <script src="/v0.1/js/buttons.js"></script> <script src="/v0.1/js/search.js"></script> <script src="/v0.1/js/prism.js"></script></body></html>
|