istio.io/archive/v0.7/docs/reference/config/mixer/istio.mixer.adapter.model.v...

5 lines
62 KiB
HTML

<!DOCTYPE html><html lang="en" itemscope itemtype="https://schema.org/WebPage"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="theme-color" content="#466BB0"/><meta name="title" content="Mixer Adapter Model"><meta name="description" content="Definitions used to create adapters and templates"><meta name="og:title" content="Mixer Adapter Model"><meta name="og:description" content="Definitions used to create adapters and templates"><meta name="og:url" content="/docs/reference/config/mixer/istio.mixer.adapter.model.v1beta1.html"><meta name="og.site_name" content="Istio"><title>Istioldie 0.7 / Mixer Adapter Model</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.7/feed.xml"><link rel="shortcut icon" href="/v0.7/favicons/favicon.ico" ><link rel="apple-touch-icon" href="/v0.7/favicons/apple-touch-icon-180x180.png" sizes="180x180"><link rel="icon" type="image/png" href="/v0.7/favicons/favicon-16x16.png" sizes="16x16"><link rel="icon" type="image/png" href="/v0.7/favicons/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/v0.7/favicons/android-36x36.png" sizes="36x36"><link rel="icon" type="image/png" href="/v0.7/favicons/android-48x48.png" sizes="48x48"><link rel="icon" type="image/png" href="/v0.7/favicons/android-72x72.png" sizes="72x72"><link rel="icon" type="image/png" href="/v0.7/favicons/android-96x196.png" sizes="96x196"><link rel="icon" type="image/png" href="/v0.7/favicons/android-144x144.png" sizes="144x144"><link rel="icon" type="image/png" href="/v0.7/favicons/android-192x192.png" sizes="192x192"><link rel="manifest" href="/v0.7/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/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.6/css/all.css"><link rel="stylesheet" href="/v0.7/css/light_theme.css" title="light"><link rel="alternate stylesheet" href="/v0.7/css/dark_theme.css" title="dark"> <script src="/v0.7/js/styleSwitcher.min.js"></script></head><body class="language-unknown theme-unknown"><header role="banner"><nav class="navbar navbar-expand-sm navbar-dark fixed-top bg-dark justify-content-between"> <a class="navbar-brand" href="/v0.7/" style="visibility: visible"> <img class="logo" src="/v0.7/img/istio-logo.svg" alt="Istio Logo"/> <span class="brand-name">Istioldie 0.7</span> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse justify-content-end" id="navbarCollapse"><ul id="navbar-links" class="navbar-nav active"><li class="nav-item"> <a class="nav-link active" href="/v0.7/docs/">Docs</a></li><li class="nav-item"> <a class="nav-link " href="/v0.7/blog/2018/traffic-mirroring.html">Blog</a></li><li class="nav-item"> <a class="nav-link " href="/v0.7/help/">Help</a></li><li class="nav-item"> <a class="nav-link " href="/v0.7/community.html">Community</a></li><li class="nav-item"> <a class="nav-link " href="/v0.7/about/">About</a></li><li class="nav-item dropdown" id="gearDropdown" style="white-space: nowrap"> <a href="" class="nav-link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i style="width: 1em" class='fa fa-lg fa-cog'></i> </a><ul class="dropdown-menu dropdown-menu-right" aria-labelledby="gearDropdown"><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><li class="dropdown-divider"></li><li> <i class='fa fa-check light'></i> <a href="" onclick="setActiveStyleSheet('light');return false;">Light Theme</a></li><li> <i class='fa fa-check dark'></i> <a href="" onclick="setActiveStyleSheet('dark');return false;">Dark Theme</a></li><li class="dropdown-divider"></li><li><a href="https://github.com/istio/istio.github.io/issues/new?title=Issue with _docs/reference/config/mixer/istio.mixer.adapter.model.v1beta1.html">Report Site Bugs</a></li><li><a href="https://github.com/istio/istio.github.io/edit/master/_docs/reference/config/mixer/istio.mixer.adapter.model.v1beta1.html">Edit this Page on GitHub</a></li></ul></li><li class="nav-item"> <a id="search_show" class="nav-link" href=""><i style="width: 1em" class="fa fa-lg fa-search"></i></a></li></ul><form name="cse" id="search_form" class="form-inline mr-sm-2" 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" /> <input id="search_textbox" class="form-control" name="q" type="text" /> <button id="search_close" type="reset"><i class="far fa-lg fa-times-circle"></i></button> </form></div></nav></header><div class="container-fluid"><div class="row row-offcanvas row-offcanvas-left"><div class="col-6 col-md-3 col-xl-2 sidebar-offcanvas"><nav class="sidebar"><div class="spacer"></div><div class="directory" role="tablist"><div class="card"><div class="card-header" role="tab" id="header1"> <a data-toggle="collapse" href="#collapse1" title="Concepts help you learn about the different parts of the Istio system and the abstractions it uses." role="button" aria-controls="collapse1"><div> Concepts</div></a></div><div id="collapse1" class="collapse" data-parent="#sidebar" role="tabpanel" aria-labelledby="header1"><div class="card-body"><ul class="tree"><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="A broad overview of the Istio system." href="/v0.7/docs/concepts/what-is-istio">What is Istio?</a> </label><ul class="tree collapse"><li> <a title="Provides a conceptual introduction to Istio, including the problems it solves and its high-level architecture." href="/v0.7/docs/concepts/what-is-istio/overview.html">Overview</a></li><li> <a title="Describes the core principles that Istio's design adheres to." href="/v0.7/docs/concepts/what-is-istio/goals.html">Design Goals</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Describes the various Istio features focused on traffic routing and control." href="/v0.7/docs/concepts/traffic-management">Traffic Management</a> </label><ul class="tree collapse"><li> <a title="Provides a conceptual overview of traffic management in Istio and the features it enables." href="/v0.7/docs/concepts/traffic-management/overview.html">Overview</a></li><li> <a title="Introduces Pilot, the component responsible for managing a distributed deployment of Envoy proxies in the service mesh." href="/v0.7/docs/concepts/traffic-management/pilot.html">Pilot</a></li><li> <a title="Describes how requests are routed between services in an Istio service mesh." href="/v0.7/docs/concepts/traffic-management/request-routing.html">Request Routing</a></li><li> <a title="Describes how traffic is load balanced across instances of a service in the mesh." href="/v0.7/docs/concepts/traffic-management/load-balancing.html">Discovery & Load Balancing</a></li><li> <a title="An overview of failure recovery capabilities in Envoy that can be leveraged by unmodified applications to improve robustness and prevent cascading failures." href="/v0.7/docs/concepts/traffic-management/handling-failures.html">Handling Failures</a></li><li> <a title="Introduces the idea of systematic fault injection that can be used to uncover conflicting failure recovery policies across services." href="/v0.7/docs/concepts/traffic-management/fault-injection.html">Fault Injection</a></li><li> <a title="Provides a high-level overview of the domain-specific language used by Istio to configure traffic management rules in the service mesh." href="/v0.7/docs/concepts/traffic-management/rules-configuration.html">Rules Configuration</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Describes Istio's authorization and authentication functionality." href="/v0.7/docs/concepts/security">Security</a> </label><ul class="tree collapse"><li> <a title="Describes Istio RBAC which provides access control for services in Istio Mesh." href="/v0.7/docs/concepts/security/rbac.html">Istio Role-Based Access Control (RBAC)</a></li><li> <a title="Describes Istio's mutual TLS authentication architecture which provides a strong service identity and secure communication channels between services." href="/v0.7/docs/concepts/security/mutual-tls.html">Mutual TLS Authentication</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Introduces the policy control mechanisms." href="/v0.7/docs/concepts/policy-and-control">Policies and Control</a> </label><ul class="tree collapse"><li> <a title="Explains the important notion of attributes, which is a central mechanism for how policies and control are applied to services within the mesh." href="/v0.7/docs/concepts/policy-and-control/attributes.html">Attributes</a></li><li> <a title="Architectural deep-dive into the design of Mixer, which provides the policy and control mechanisms within the service mesh." href="/v0.7/docs/concepts/policy-and-control/mixer.html">Mixer</a></li><li> <a title="An overview of the key concepts used to configure Mixer." href="/v0.7/docs/concepts/policy-and-control/mixer-config.html">Mixer Configuration</a></li></ul></li></ul></div></div></div><div class="card"><div class="card-header" role="tab" id="header20"> <a data-toggle="collapse" href="#collapse20" title="Setup contains instructions for installing the Istio control plane in various environments (e.g., Kubernetes, Consul, etc.), as well as instructions for installing the sidecar in the application deployment." role="button" aria-controls="collapse20"><div> Setup</div></a></div><div id="collapse20" class="collapse" data-parent="#sidebar" role="tabpanel" aria-labelledby="header20"><div class="card-body"><ul class="tree"><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Instructions for installing the Istio control plane on Kubernetes and adding VMs into the mesh." href="/v0.7/docs/setup/kubernetes">Kubernetes</a> </label><ul class="tree collapse"><li> <a title="Quick Start instructions to setup the Istio service mesh in a Kubernetes cluster." href="/v0.7/docs/setup/kubernetes/quick-start.html">Quick Start</a></li><li> <a title="Quick Start instructions to setup the Istio service using Google Kubernetes Engine (GKE)" href="/v0.7/docs/setup/kubernetes/quick-start-gke-dm.html">Quick Start with Google Kubernetes Engine</a></li><li> <a title="Install Istio with the included Helm chart." href="/v0.7/docs/setup/kubernetes/helm-install.html">Installation with Helm</a></li><li> <a title="Install Itio with the included Ansible playbook." href="/v0.7/docs/setup/kubernetes/ansible-install.html">Installation with Ansible</a></li><li> <a title="Instructions for installing the Istio sidecar in application pods automatically using the sidecar injector webhook or manually using istioctl CLI." href="/v0.7/docs/setup/kubernetes/sidecar-injection.html">Installing the Istio Sidecar</a></li><li> <a title="Instructions for integrating VMs and bare metal hosts into an Istio mesh deployed on Kubernetes." href="/v0.7/docs/setup/kubernetes/mesh-expansion.html">Istio Mesh Expansion</a></li><li> <a title="This guide demonstrates how to upgrade the Istio control plane and data plane independently." href="/v0.7/docs/setup/kubernetes/upgrading-istio.html">Upgrading Istio</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Instructions for installing the Istio control plane in a Consul based environment, with or without Nomad." href="/v0.7/docs/setup/consul">Nomad & Consul</a> </label><ul class="tree collapse"><li> <a title="Quick Start instructions to setup the Istio service mesh with Docker Compose." href="/v0.7/docs/setup/consul/quick-start.html">Quick Start on Docker</a></li><li> <a title="Instructions for installing the Istio control plane in a Consul based environment, with or without Nomad." href="/v0.7/docs/setup/consul/install.html">Installation</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Instructions for installing the Istio control plane in a Eureka based environment." href="/v0.7/docs/setup/eureka">Eureka</a> </label><ul class="tree collapse"><li> <a title="Quick Start instructions to setup the Istio service mesh with Docker Compose." href="/v0.7/docs/setup/eureka/quick-start.html">Quick Start on Docker</a></li><li> <a title="Instructions for installing the Istio control plane in an Eureka based environment." href="/v0.7/docs/setup/eureka/install.html">Installation</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Instructions for installing the Istio control plane in Cloud Foundry." href="/v0.7/docs/setup/cloudfoundry">Cloud Foundry</a> </label><ul class="tree collapse"><li> <a title="Instructions for installing the Istio control plane in Cloud Foundry." href="/v0.7/docs/setup/cloudfoundry/install.html">Installation</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Instructions for installing the Istio control plane in Apache Mesos." href="/v0.7/docs/setup/mesos">Mesos</a> </label><ul class="tree collapse"><li> <a title="Instructions for installing the Istio control plane in Apache Mesos." href="/v0.7/docs/setup/mesos/install.html">Installation</a></li></ul></li></ul></div></div></div><div class="card"><div class="card-header" role="tab" id="header39"> <a data-toggle="collapse" href="#collapse39" title="Tasks show you how to do a single specific targeted activity with the Istio system." role="button" aria-controls="collapse39"><div> Tasks</div></a></div><div id="collapse39" class="collapse" data-parent="#sidebar" role="tabpanel" aria-labelledby="header39"><div class="card-body"><ul class="tree"><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Describes tasks that demonstrate traffic routing features of Istio service mesh." href="/v0.7/docs/tasks/traffic-management">Traffic Management</a> </label><ul class="tree collapse"><li> <a title="This task shows you how to configure dynamic request routing based on weights and HTTP headers." href="/v0.7/docs/tasks/traffic-management/request-routing.html">Configuring Request Routing</a></li><li> <a title="This task shows how to inject delays and test the resiliency of your application." href="/v0.7/docs/tasks/traffic-management/fault-injection.html">Fault Injection</a></li><li> <a title="This task shows you how to migrate traffic from an old to new version of a service." href="/v0.7/docs/tasks/traffic-management/traffic-shifting.html">Traffic Shifting</a></li><li> <a title="This task shows you how to setup request timeouts in Envoy using Istio." href="/v0.7/docs/tasks/traffic-management/request-timeouts.html">Setting Request Timeouts</a></li><li> <a title="Describes how to configure Istio Ingress on Kubernetes." href="/v0.7/docs/tasks/traffic-management/ingress.html">Istio Ingress</a></li><li> <a title="Describes how to configure Istio to route traffic from services in the mesh to external services." href="/v0.7/docs/tasks/traffic-management/egress.html">Control Egress Traffic</a></li><li> <a title="Describes how to configure Istio to route TCP traffic from services in the mesh to external services." href="/v0.7/docs/tasks/traffic-management/egress-tcp.html">Control Egress TCP Traffic</a></li><li> <a title="This task demonstrates the circuit-breaking capability for resilient applications" href="/v0.7/docs/tasks/traffic-management/circuit-breaking.html">Circuit Breaking</a></li><li> <a title="Demonstrates Istio's traffic shadowing/mirroring capabilities" href="/v0.7/docs/tasks/traffic-management/mirroring.html">Mirroring</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="WIP - Describes tasks that demonstrate traffic routing features of Istio service mesh." href="/v0.7/docs/tasks/traffic-management-v1alpha3">Traffic Management (v1alpha3)</a> </label><ul class="tree collapse"><li> <a title="This task shows you how to configure dynamic request routing based on weights and HTTP headers." href="/v0.7/docs/tasks/traffic-management-v1alpha3/request-routing.html">Configuring Request Routing</a></li><li> <a title="This task shows how to inject delays and test the resiliency of your application." href="/v0.7/docs/tasks/traffic-management-v1alpha3/fault-injection.html">Fault Injection</a></li><li> <a title="This task shows you how to migrate traffic from an old to new version of a service." href="/v0.7/docs/tasks/traffic-management-v1alpha3/traffic-shifting.html">Traffic Shifting</a></li><li> <a title="This task shows you how to setup request timeouts in Envoy using Istio." href="/v0.7/docs/tasks/traffic-management-v1alpha3/request-timeouts.html">Setting Request Timeouts</a></li><li> <a title="Describes how to configure Istio to expose a service outside of the service mesh." href="/v0.7/docs/tasks/traffic-management-v1alpha3/ingress.html">Control Ingress Traffic</a></li><li> <a title="Describes how to configure Istio to route traffic from services in the mesh to external services." href="/v0.7/docs/tasks/traffic-management-v1alpha3/egress.html">Control Egress Traffic</a></li><li> <a title="Describes how to configure Istio to route TCP traffic from services in the mesh to external services." href="/v0.7/docs/tasks/traffic-management-v1alpha3/egress-tcp.html">Control Egress TCP Traffic</a></li><li> <a title="This task demonstrates the circuit-breaking capability for resilient applications" href="/v0.7/docs/tasks/traffic-management-v1alpha3/circuit-breaking.html">Circuit Breaking</a></li><li> <a title="This task demonstrates the traffic shadowing/mirroring capabilities of Istio" href="/v0.7/docs/tasks/traffic-management-v1alpha3/mirroring.html">Mirroring</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Describes tasks that demonstrate policy enforcement features." href="/v0.7/docs/tasks/policy-enforcement">Policy Enforcement</a> </label><ul class="tree collapse"><li> <a title="This task shows you how to use Istio to dynamically limit the traffic to a service." href="/v0.7/docs/tasks/policy-enforcement/rate-limiting.html">Enabling Rate Limits</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Describes tasks that demonstrate how to collect telemetry information from the service mesh." href="/v0.7/docs/tasks/telemetry">Metrics, Logs, and Traces</a> </label><ul class="tree collapse"><li> <a title="How to configure the proxies to send tracing requests to Zipkin or Jaeger" href="/v0.7/docs/tasks/telemetry/distributed-tracing.html">Distributed Tracing</a></li><li> <a title="This task shows you how to configure Istio to collect metrics and logs." href="/v0.7/docs/tasks/telemetry/metrics-logs.html">Collecting Metrics and Logs</a></li><li> <a title="This task shows you how to configure Istio to collect metrics for TCP services." href="/v0.7/docs/tasks/telemetry/tcp-metrics.html">Collecting Metrics for TCP services</a></li><li> <a title="This task shows you how to query for Istio Metrics using Prometheus." href="/v0.7/docs/tasks/telemetry/querying-metrics.html">Querying Metrics from Prometheus</a></li><li> <a title="This task shows you how to setup and use the Istio Dashboard to monitor mesh traffic." href="/v0.7/docs/tasks/telemetry/using-istio-dashboard.html">Visualizing Metrics with Grafana</a></li><li> <a title="This task shows you how to generate a graph of services within an Istio mesh." href="/v0.7/docs/tasks/telemetry/servicegraph.html">Generating a Service Graph</a></li><li> <a title="This task shows you how to configure Istio to log to a Fluentd daemon" href="/v0.7/docs/tasks/telemetry/fluentd.html">Logging with Fluentd</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Describes tasks that help securing the service mesh traffic." href="/v0.7/docs/tasks/security">Security</a> </label><ul class="tree collapse"><li> <a title="This task shows you how to verify and test Istio's automatic mutual TLS authentication." href="/v0.7/docs/tasks/security/mutual-tls.html">Testing Istio mutual TLS authentication</a></li><li> <a title="This task shows how to control access to a service using the Kubernetes labels." href="/v0.7/docs/tasks/security/basic-access-control.html">Setting up Basic Access Control</a></li><li> <a title="This task shows how to securely control access to a service using service accounts." href="/v0.7/docs/tasks/security/secure-access-control.html">Setting up Secure Access Control</a></li><li> <a title="This task shows how to set up role-based access control for services in Istio mesh." href="/v0.7/docs/tasks/security/role-based-access-control.html">Setting up Istio Role-Based Access Control</a></li><li> <a title="This task shows how to change mutual TLS authentication for a single service." href="/v0.7/docs/tasks/security/per-service-mtls.html">Per-service mutual TLS authentication enablement</a></li><li> <a title="This task shows how operators can plug existing certificate and key into Istio CA." href="/v0.7/docs/tasks/security/plugin-ca-cert.html">Plugging in CA certificate and key</a></li><li> <a title="This task shows how to enable Istio CA health check." href="/v0.7/docs/tasks/security/health-check.html">Enabling Istio CA health check</a></li></ul></li></ul></div></div></div><div class="card"><div class="card-header" role="tab" id="header78"> <a data-toggle="collapse" href="#collapse78" title="Guides include a variety of fully working example uses for Istio that you can experiment with." role="button" aria-controls="collapse78"><div> Guides</div></a></div><div id="collapse78" class="collapse" data-parent="#sidebar" role="tabpanel" aria-labelledby="header78"><div class="card-body"><ul class="tree"><li> <a title="This guide deploys a sample application composed of four separate microservices which will be used to demonstrate various features of the Istio service mesh." href="/v0.7/docs/guides/bookinfo.html">Bookinfo</a></li><li> <a title="This guide demonstrates how to use various traffic management capabilities of an Istio service mesh." href="/v0.7/docs/guides/intelligent-routing.html">Intelligent Routing</a></li><li> <a title="This sample demonstrates how to obtain uniform metrics, logs, traces across different services using Istio Mixer and Istio sidecar." href="/v0.7/docs/guides/telemetry.html">In-Depth Telemetry</a></li><li> <a title="This sample deploys the Bookinfo services across Kubernetes and a set of virtual machines, and illustrates how to use the Istio service mesh to control this infrastructure as a single mesh." href="/v0.7/docs/guides/integrating-vms.html">Integrating Virtual Machines</a></li></ul></div></div></div><div class="card"><div class="card-header" role="tab" id="header83"> <a data-toggle="collapse" href="#collapse83" title="The Reference section contains detailed authoritative reference material such as command-line options, configuration options, and API calling parameters." role="button" aria-controls="collapse83"><div> Reference</div></a></div><div id="collapse83" class="collapse show" data-parent="#sidebar" role="tabpanel" aria-labelledby="header83"><div class="card-body"><ul class="tree"><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Detailed information on API parameters." href="/v0.7/docs/reference/api">API</a> </label><ul class="tree collapse"><li> <a title="API definitions to interact with Mixer" href="/v0.7/docs/reference/api/istio.mixer.v1.html">Mixer</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-down'></i> <a class="" title="Detailed information on configuration options." href="/v0.7/docs/reference/config">Configuration</a> </label><ul class="tree"><li> <a title="Configuration state for the Mixer client library" href="/v0.7/docs/reference/config/istio.mixer.v1.config.client.html">Mixer Client</a></li><li> <a title="Configuration affecting resource-based access control" href="/v0.7/docs/reference/config/istio.rbac.v1alpha1.html">RBAC</a></li><li> <a title="Configuration affecting traffic routing" href="/v0.7/docs/reference/config/istio.routing.v1alpha1.html">Route Rules Alpha 1</a></li><li> <a title="Configuration affecting traffic routing" href="/v0.7/docs/reference/config/istio.networking.v1alpha3.html">Route Rules Alpha 3</a></li><li> <a title="Configuration affecting the service mesh as a whole" href="/v0.7/docs/reference/config/istio.mesh.v1alpha1.html">Service Mesh</a></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-down'></i> <a class="" title="Detailed information on configuration and API exposed by Mixer." href="/v0.7/docs/reference/config/mixer">Mixer</a> </label><ul class="tree"><li> <span class="current" title="Definitions used to create adapters and templates">Mixer Adapter Model</span></li><li> <a title="Describes the base attribute vocabulary used for policy and control." href="/v0.7/docs/reference/config/mixer/attribute-vocabulary.html">Attribute Vocabulary</a></li><li> <a title="Mixer config expression language reference." href="/v0.7/docs/reference/config/mixer/expression-language.html">Expression Language</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Generated documentation for Mixer's adapters." href="/v0.7/docs/reference/config/adapters">Adapters</a> </label><ul class="tree collapse"><li> <a title="Adapter for circonus.com's monitoring solution." href="/v0.7/docs/reference/config/adapters/circonus.html">Circonus</a></li><li> <a title="Adapter to deliver metrics to a dogstatsd agent for delivery to DataDog" href="/v0.7/docs/reference/config/adapters/datadog.html">Datadog</a></li><li> <a title="Adapter that always returns a precondition denial." href="/v0.7/docs/reference/config/adapters/denier.html">Denier</a></li><li> <a title="Adapter that delivers logs to a fluentd daemon." href="/v0.7/docs/reference/config/adapters/fluentd.html">Fluentd</a></li><li> <a title="Adapter that extracts information from a Kubernetes environment." href="/v0.7/docs/reference/config/adapters/kubernetesenv.html">Kubernetes Env</a></li><li> <a title="Adapter that performs whitelist or blacklist checks" href="/v0.7/docs/reference/config/adapters/list.html">List</a></li><li> <a title="Adapter for a simple in-memory quota management system." href="/v0.7/docs/reference/config/adapters/memquota.html">Memory quota</a></li><li> <a title="Adapter that implements an Open Policy Agent engine" href="/v0.7/docs/reference/config/adapters/opa.html">OPA</a></li><li> <a title="Adapter that exposes Istio metrics for ingestion by a Prometheus harvester." href="/v0.7/docs/reference/config/adapters/prometheus.html">Prometheus</a></li><li> <a title="Adapter that exposes Istio's Role-Based Access Control model." href="/v0.7/docs/reference/config/adapters/rbac.html">RBAC</a></li><li> <a title="Adapter for a Redis-based quota management system." href="/v0.7/docs/reference/config/adapters/redisquota.html">Redis Quota</a></li><li> <a title="Adapter that delivers logs and metrics to Google Service Control" href="/v0.7/docs/reference/config/adapters/servicecontrol.html">Service Control</a></li><li> <a title="Adapter to deliver logs and metrics to Papertrail and AppOptics backends" href="/v0.7/docs/reference/config/adapters/solarwinds.html">SolarWinds</a></li><li> <a title="Adapter to deliver logs and metrics to Stackdriver" href="/v0.7/docs/reference/config/adapters/stackdriver.html">Stackdriver</a></li><li> <a title="Adapter to deliver metrics to a StatsD backend" href="/v0.7/docs/reference/config/adapters/statsd.html">StatsD</a></li><li> <a title="Adapter for outputting logs and metrics locally." href="/v0.7/docs/reference/config/adapters/stdio.html">Stdio</a></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Generated documentation for Mixer's Templates." href="/v0.7/docs/reference/config/template">Templates</a> </label><ul class="tree collapse"><li> <a title="A template that represents a single API key." href="/v0.7/docs/reference/config/template/apikey.html">API Key</a></li><li> <a title="A template used to represent an access control query." href="/v0.7/docs/reference/config/template/authorization.html">Authorization</a></li><li> <a title="A template that carries no data, useful for testing." href="/v0.7/docs/reference/config/template/checknothing.html">Check Nothing</a></li><li> <a title="A template that is used to control the production of Kubernetes-specific attributes." href="/v0.7/docs/reference/config/template/kubernetes.html">Kubernetes</a></li><li> <a title="A template designed to let you perform list checking operations." href="/v0.7/docs/reference/config/template/listentry.html">List Entry</a></li><li> <a title="A template that represents a single runtime log entry." href="/v0.7/docs/reference/config/template/logentry.html">Log Entry</a></li><li> <a title="A template that represents a single runtime metric." href="/v0.7/docs/reference/config/template/metric.html">Metric</a></li><li> <a title="A template that represents a quota allocation request" href="/v0.7/docs/reference/config/template/quota.html">Quota</a></li><li> <a title="A template that carries no data, useful for testing." href="/v0.7/docs/reference/config/template/reportnothing.html">Report Nothing</a></li><li> <a title="A template used by the Google Service Control adapter." href="/v0.7/docs/reference/config/template/servicecontrolreport.html">Service Control Report</a></li></ul></li></ul></li><li class="sublist"> <label class='tree-toggle'> <i class='fa fa-lg fa-caret-right'></i> <a class="" title="Describes usage and options of the Istio commands and utilities." href="/v0.7/docs/reference/commands">Commands</a> </label><ul class="tree collapse"><li> <a title="Istio Certificate Authority (CA)" href="/v0.7/docs/reference/commands/istio_ca.html">istio_ca</a></li><li> <a title="Istio control interface" href="/v0.7/docs/reference/commands/istioctl.html">istioctl</a></li><li> <a title="Utility to trigger direct calls to Mixer&#39;s API." href="/v0.7/docs/reference/commands/mixc.html">mixc</a></li><li> <a title="Mixer is Istio&#39;s abstraction on top of infrastructure backends." href="/v0.7/docs/reference/commands/mixs.html">mixs</a></li><li> <a title="Istio security per-node agent" href="/v0.7/docs/reference/commands/node_agent.html">node_agent</a></li><li> <a title="Istio Pilot agent" href="/v0.7/docs/reference/commands/pilot-agent.html">pilot-agent</a></li><li> <a title="Istio Pilot" href="/v0.7/docs/reference/commands/pilot-discovery.html">pilot-discovery</a></li><li> <a title="Kubernetes webhook for automatic Istio sidecar injection" href="/v0.7/docs/reference/commands/sidecar-injector.html">sidecar-injector</a></li></ul></li><li> <a title="How to write Istio config YAML content." href="/v0.7/docs/reference/writing-config.html">Writing Configuration</a></li></ul></div></div></div></div></nav></div><div class="col-12 col-md-9 col-lg-7 col-xl-8"><p class="d-md-none"> <label class="sidebar-toggler" data-toggle="offcanvas"> <i class="fa fa-chevron-right"></i> </label></p><main role="main"><h1>Mixer Adapter Model</h1><p>This package defines the service and types used by adapter code to serve requests from Mixer. This package also defines the types that are used to create Mixer templates.</p><h2 id="Services">Services</h2><h3 id="InfrastructureBackend">InfrastructureBackend</h3><section><p><code>InfrastructureBackend</code> is implemented by backends that wants to provide telemetry and policy functionality to Mixer as an out of process adapter.</p><p><code>InfrastructureBackend</code> allows Mixer and the backends to have a session based model. In a session based model, Mixer passes the relevant configuration state to the backend only once and estabilshes a session using a session identifier. All future communications between Mixer and the backend uses the session identifier which refers to the previously passed in configuration data.</p><p>For a given <code>InfrastructureBackend</code>, Mixer calls the <code>Validate</code> function, followed by <code>CreateSession</code>. The <code>session_id</code> returned from <code>CreateSession</code> is used to make subsequent request-time Handle calls and the eventual <code>CloseSession</code> function. Mixer assumes that, given the <code>session_id</code>, the backend can retrieve the necessary context to serve the Handle calls that contains the request-time payload (template-specific instance protobuf).</p><pre id="InfrastructureBackend.Validate"><code class="language-proto">rpc Validate(ValidateRequest) returns (ValidateResponse)
</code></pre><p>Validates the handler configuration along with the template-specific instances that would be routed to that handler. The <code>CreateSession</code> for a specific handler configuration is invoked only if its associated <code>Validate</code> call has returned success.</p><pre id="InfrastructureBackend.CreateSession"><code class="language-proto">rpc CreateSession(CreateSessionRequest) returns (CreateSessionResponse)
</code></pre><p>Creates a session for a given handler configuration and the template-specific instances that would be routed to that handler. For every handler configuration, Mixer creates a separate session by invoking <code>CreateSession</code> on the backend.</p><p><code>CreateSessionRequest</code> contains the adapter specific handler configuration and the inferred type information about the instances the handler would receive during request processing.</p><p><code>CreateSession</code> must return a <code>session_id</code> which Mixer uses to invoke template-specific Handle functions during request processing. The <code>session_id</code> provides the Handle functions a way to retrieve the necessary configuration associated with the session. Upon Mixer configuration change, Mixer will re-invoke <code>CreateSession</code> for all handler configurations whose existing sessions are invalidated or didn&rsquo;t existed.</p><p>Backend is allowed to return the same session id if given the same configuration block. This would happen when multiple instances of Mixer in a deployment all create sessions with the same configuration. Note that given individial instances of Mixer can call <code>CloseSession</code>, reusing <code>session_id</code> by the backend assumes that the backend is doing reference counting.</p><p>If the backend couldn&rsquo;t create a session for a specific handler configuration and returns non S_OK status, Mixer will not make request-time Handle calls associated with that handler configuration.</p><pre id="InfrastructureBackend.CloseSession"><code class="language-proto">rpc CloseSession(CloseSessionRequest) returns (CloseSessionResponse)
</code></pre><p>Closes the session associated with the <code>session_id</code>. Mixer closes a session when its associated handler configuration or the instance configuration changes. Backend is supposed to cleanup all the resources associated with the session_id referenced by CloseSessionRequest.</p></section><h2 id="Types">Types</h2><h3 id="CheckResult">CheckResult</h3><section><p>Expresses the result of a precondition check.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="CheckResult.status"><td><code>status</code></td><td><code><a href="#google.rpc.Status">google.rpc.Status</a></code></td><td><p>A status code of OK indicates preconditions were satisfied. Any other code indicates preconditions were not satisfied and details describe why.</p></td></tr><tr id="CheckResult.valid_duration"><td><code>validDuration</code></td><td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td><td><p>The amount of time for which this result can be considered valid.</p></td></tr><tr id="CheckResult.valid_use_count"><td><code>validUseCount</code></td><td><code>int32</code></td><td><p>The number of uses for which this result can be considered valid.</p></td></tr></tbody></table></section><h3 id="CloseSessionRequest">CloseSessionRequest</h3><section><p>Request message for <code>CloseSession</code> method.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="CloseSessionRequest.session_id"><td><code>sessionId</code></td><td><code>string</code></td><td><p>Id of the session to be closed.</p></td></tr></tbody></table></section><h3 id="CloseSessionResponse">CloseSessionResponse</h3><section><p>Response message for <code>CloseSession</code> method.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="CloseSessionResponse.status"><td><code>status</code></td><td><code><a href="#google.rpc.Status">google.rpc.Status</a></code></td><td><p>The success/failure status of close session call.</p></td></tr></tbody></table></section><h3 id="CreateSessionRequest">CreateSessionRequest</h3><section><p>Request message for <code>CreateSession</code> method.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="CreateSessionRequest.adapter_config"><td><code>adapterConfig</code></td><td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">google.protobuf.Any</a></code></td><td><p>Adapter specific configuration.</p></td></tr><tr id="CreateSessionRequest.inferred_types"><td><code>inferredTypes</code></td><td><code>map&lt;string,&nbsp;<a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">google.protobuf.Any</a>&gt;</code></td><td><p>Map of instance names to their template-specific inferred type.</p></td></tr></tbody></table></section><h3 id="CreateSessionResponse">CreateSessionResponse</h3><section><p>Response message for <code>CreateSession</code> method.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="CreateSessionResponse.session_id"><td><code>sessionId</code></td><td><code>string</code></td><td><p>Id of the created session.</p></td></tr><tr id="CreateSessionResponse.status"><td><code>status</code></td><td><code><a href="#google.rpc.Status">google.rpc.Status</a></code></td><td><p>The success/failure status of create session call.</p></td></tr></tbody></table></section><h3 id="DNSName">DNSName</h3><section><p>DNSName is used inside templates for fields that are of ValueType &ldquo;DNS_NAME&rdquo;</p></section><h3 id="Duration">Duration</h3><section><p>Duration is used inside templates for fields that are of ValueType &ldquo;DURATION&rdquo;</p></section><h3 id="EmailAddress">EmailAddress</h3><section><p>EmailAddress is used inside templates for fields that are of ValueType &ldquo;EMAIL_ADDRESS&rdquo; DO NOT USE !! Under Development</p></section><h3 id="IPAddress">IPAddress</h3><section><p>IPAddress is used inside templates for fields that are of ValueType &ldquo;IP_ADDRESS&rdquo;</p></section><h3 id="Info">Info</h3><section><p>Info describes an adapter or a backend that wants to provide telemetry and policy functionality to Mixer as an out of process adapter.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="Info.name"><td><code>name</code></td><td><code>string</code></td><td><p>Name of the adapter. It must be an RFC 1035 compatible DNS label matching the <code>^[a-z]([-a-z0-9]*[a-z0-9])?$</code> regular expression. Name is used in Istio configuration, therefore it should be descriptive but short. example: denier Vendor adapters should use a vendor prefix. example: mycompany-denier</p></td></tr><tr id="Info.description"><td><code>description</code></td><td><code>string</code></td><td><p>User-friendly description of the adapter.</p></td></tr><tr id="Info.templates"><td><code>templates</code></td><td><code>string[]</code></td><td><p>Base64 encoded proto descriptor of all the templates the adapter wants to serve.</p></td></tr><tr id="Info.config"><td><code>config</code></td><td><code>string</code></td><td><p>Base64 encoded proto descriptor of the adapter configuration.</p></td></tr></tbody></table></section><h3 id="QuotaRequest">QuotaRequest</h3><section><p>Expresses the quota allocation request.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="QuotaRequest.quotas"><td><code>quotas</code></td><td><code>map&lt;string,&nbsp;<a href="#QuotaRequest.QuotaParams">QuotaRequest.QuotaParams</a>&gt;</code></td><td><p>The individual quotas to allocate</p></td></tr></tbody></table></section><h3 id="QuotaRequest.QuotaParams">QuotaRequest.QuotaParams</h3><section><p>parameters for a quota allocation</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="QuotaRequest.QuotaParams.amount"><td><code>amount</code></td><td><code>int64</code></td><td><p>Amount of quota to allocate</p></td></tr><tr id="QuotaRequest.QuotaParams.best_effort"><td><code>bestEffort</code></td><td><code>bool</code></td><td><p>When true, supports returning less quota than what was requested.</p></td></tr></tbody></table></section><h3 id="QuotaResult">QuotaResult</h3><section><p>Expresses the result of multiple quota allocations.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="QuotaResult.quotas"><td><code>quotas</code></td><td><code>map&lt;string,&nbsp;<a href="#QuotaResult.Result">QuotaResult.Result</a>&gt;</code></td><td><p>The resulting quota, one entry per requested quota.</p></td></tr></tbody></table></section><h3 id="QuotaResult.Result">QuotaResult.Result</h3><section><p>Expresses the result of a quota allocation.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="QuotaResult.Result.valid_duration"><td><code>validDuration</code></td><td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td><td><p>The amount of time for which this result can be considered valid.</p></td></tr><tr id="QuotaResult.Result.granted_amount"><td><code>grantedAmount</code></td><td><code>int64</code></td><td><p>The amount of granted quota. When <code>QuotaParams.best_effort</code> is true, this will be &gt;= 0. If <code>QuotaParams.best_effort</code> is false, this will be either 0 or &gt;= <code>QuotaParams.amount</code>.</p></td></tr></tbody></table></section><h3 id="ReportResult">ReportResult</h3><section><p>Expresses the result of a report call.</p></section><h3 id="TemplateVariety">TemplateVariety</h3><section><p>The available varieties of templates, controlling the semantics of what an adapter does with each instance.</p><table class="enum-values"><thead><tr><th>Name</th><th>Description</th></tr></thead><tbody><tr id="TemplateVariety.TEMPLATE_VARIETY_CHECK"><td><code>TEMPLATE_VARIETY_CHECK</code></td><td><p>Makes the template applicable for Mixer&rsquo;s check calls.</p></td></tr><tr id="TemplateVariety.TEMPLATE_VARIETY_REPORT"><td><code>TEMPLATE_VARIETY_REPORT</code></td><td><p>Makes the template applicable for Mixer&rsquo;s report calls.</p></td></tr><tr id="TemplateVariety.TEMPLATE_VARIETY_QUOTA"><td><code>TEMPLATE_VARIETY_QUOTA</code></td><td><p>Makes the template applicable for Mixer&rsquo;s quota calls.</p></td></tr><tr id="TemplateVariety.TEMPLATE_VARIETY_ATTRIBUTE_GENERATOR"><td><code>TEMPLATE_VARIETY_ATTRIBUTE_GENERATOR</code></td><td><p>Makes the template applicable for Mixer&rsquo;s quota calls.</p></td></tr></tbody></table></section><h3 id="TimeStamp">TimeStamp</h3><section><p>TimeStamp is used inside templates for fields that are of ValueType &ldquo;TIMESTAMP&rdquo;</p></section><h3 id="Uri">Uri</h3><section><p>Uri is used inside templates for fields that are of ValueType &ldquo;URI&rdquo; DO NOT USE ! Under Development</p></section><h3 id="ValidateRequest">ValidateRequest</h3><section><p>Request message for <code>Validate</code> method.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="ValidateRequest.adapter_config"><td><code>adapterConfig</code></td><td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">google.protobuf.Any</a></code></td><td><p>Adapter specific configuration.</p></td></tr><tr id="ValidateRequest.inferred_types"><td><code>inferredTypes</code></td><td><code>map&lt;string,&nbsp;<a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">google.protobuf.Any</a>&gt;</code></td><td><p>Map of instance names to their template-specific inferred type.</p></td></tr></tbody></table></section><h3 id="ValidateResponse">ValidateResponse</h3><section><p>Response message for <code>Validate</code> method.</p><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="ValidateResponse.status"><td><code>status</code></td><td><code><a href="#google.rpc.Status">google.rpc.Status</a></code></td><td><p>The success/failure status of validation call.</p></td></tr></tbody></table></section><h3 id="Value">Value</h3><section><p>Value is used inside templates for fields that have dynamic types. The actual datatype of the field depends on the datatype of the expression used in the operator configuration.</p></section><h3 id="google.rpc.Status">google.rpc.Status</h3><section><p>The <code>Status</code> type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by <a href="https://github.com/grpc">gRPC</a>. The error model is designed to be:</p><ul><li>Simple to use and understand for most users</li><li>Flexible enough to meet unexpected needs</li></ul><h4 id="overview">Overview</h4><p>The <code>Status</code> message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of <em>google.rpc.Code</em>, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers <em>understand</em> and <em>resolve</em> the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package <code>google.rpc</code> that can be used for common error conditions.</p><h4 id="language-mapping">Language mapping</h4><p>The <code>Status</code> message is the logical representation of the error model, but it is not necessarily the actual wire format. When the <code>Status</code> message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.</p><h4 id="other-uses">Other uses</h4><p>The error model and the <code>Status</code> message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.</p><p>Example uses of this error model include:</p><ul><li><p>Partial errors. If a service needs to return partial errors to the client, it may embed the <code>Status</code> in the normal response to indicate the partial errors.</p></li><li><p>Workflow errors. A typical workflow has multiple steps. Each step may have a <code>Status</code> message for error reporting.</p></li><li><p>Batch operations. If a client uses batch request and batch response, the <code>Status</code> message should be used directly inside batch response, one for each error sub-response.</p></li><li><p>Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the <code>Status</code> message.</p></li><li><p>Logging. If some API errors are stored in logs, the message <code>Status</code> could be used directly after any stripping needed for security/privacy reasons.</p></li></ul><table class="message-fields"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr id="google.rpc.Status.code"><td><code>code</code></td><td><code>int32</code></td><td><p>The status code, which should be an enum value of <em>google.rpc.Code</em>.</p></td></tr><tr id="google.rpc.Status.message"><td><code>message</code></td><td><code>string</code></td><td><p>A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the <a href="#google.rpc.Status.details">google.rpc.Status.details</a> field, or localized by the client.</p></td></tr><tr id="google.rpc.Status.details"><td><code>details</code></td><td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">google.protobuf.Any[]</a></code></td><td><p>A list of messages that carry the error details. There is a common set of message types for APIs to use.</p></td></tr></tbody></table></section></main></div><div class="col-12 col-md-2 d-none d-lg-block"><nav class="toc"><div class="spacer"></div><div class="directory" role="directory"><ul><li><a href="#Services">Services</a><ul><li><a href="#InfrastructureBackend">InfrastructureBackend</a></li></ul></li><li><a href="#Types">Types</a><ul><li><a href="#CheckResult">CheckResult</a></li><li><a href="#CloseSessionRequest">CloseSessionRequest</a></li><li><a href="#CloseSessionResponse">CloseSessionResponse</a></li><li><a href="#CreateSessionRequest">CreateSessionRequest</a></li><li><a href="#CreateSessionResponse">CreateSessionResponse</a></li><li><a href="#DNSName">DNSName</a></li><li><a href="#Duration">Duration</a></li><li><a href="#EmailAddress">EmailAddress</a></li><li><a href="#IPAddress">IPAddress</a></li><li><a href="#Info">Info</a></li><li><a href="#QuotaRequest">QuotaRequest</a></li><li><a href="#QuotaRequest.QuotaParams">QuotaRequest.QuotaParams</a></li><li><a href="#QuotaResult">QuotaResult</a></li><li><a href="#QuotaResult.Result">QuotaResult.Result</a></li><li><a href="#ReportResult">ReportResult</a></li><li><a href="#TemplateVariety">TemplateVariety</a></li><li><a href="#TimeStamp">TimeStamp</a></li><li><a href="#Uri">Uri</a></li><li><a href="#ValidateRequest">ValidateRequest</a></li><li><a href="#ValidateResponse">ValidateResponse</a></li><li><a href="#Value">Value</a></li><li><a href="#google.rpc.Status">google.rpc.Status</a><ul><li><a href="#overview">Overview</a></li><li><a href="#language-mapping">Language mapping</a></li><li><a href="#other-uses">Other uses</a></li></ul></li></ul></li></ul></div></nav></div></div></div><div class="footer"><footer><div class="container-fluid"><div class="row"><div class="col-6 col-lg-4" role="navigation"><div class="container-fluid"><div class="row justify-content-start"><div class="icon"> <a title="Join the istio-users@ mailing list to participate in discussions and get help troubleshooting problems" href="https://groups.google.com/forum/#!forum/istio-users"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 490 490"><path d="M480,410.248H10c-5.523,0-10-4.477-10-10V89.752c0-5.523,4.477-10,10-10h470c5.522,0,10,4.477,10,10v310.495 C490,405.771,485.522,410.248,480,410.248z M20,390.248h450V99.752H20V390.248z"/><path d="M245,286.131c-2.083,0-4.167-0.649-5.931-1.948L48.64,143.929c-4.446-3.275-5.396-9.535-2.121-13.982 c3.275-4.447,9.535-5.396,13.982-2.121L245,263.712l184.5-135.886c4.447-3.274,10.709-2.326,13.982,2.121 c3.275,4.447,2.325,10.707-2.121,13.982L250.931,284.183C249.167,285.482,247.083,286.131,245,286.131z"/> </svg> </a></div><div class="icon"> <a title="Follow us on Twitter to get the latest news" href="https://twitter.com/IstioMesh"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 310 310"><path d="M302.973,57.388c-4.87,2.16-9.877,3.983-14.993,5.463c6.057-6.85,10.675-14.91,13.494-23.73 c0.632-1.977-0.023-4.141-1.648-5.434c-1.623-1.294-3.878-1.449-5.665-0.39c-10.865,6.444-22.587,11.075-34.878,13.783 c-12.381-12.098-29.197-18.983-46.581-18.983c-36.695,0-66.549,29.853-66.549,66.547c0,2.89,0.183,5.764,0.545,8.598 C101.163,99.244,58.83,76.863,29.76,41.204c-1.036-1.271-2.632-1.956-4.266-1.825c-1.635,0.128-3.104,1.05-3.93,2.467 c-5.896,10.117-9.013,21.688-9.013,33.461c0,16.035,5.725,31.249,15.838,43.137c-3.075-1.065-6.059-2.396-8.907-3.977 c-1.529-0.851-3.395-0.838-4.914,0.033c-1.52,0.871-2.473,2.473-2.513,4.224c-0.007,0.295-0.007,0.59-0.007,0.889 c0,23.935,12.882,45.484,32.577,57.229c-1.692-0.169-3.383-0.414-5.063-0.735c-1.732-0.331-3.513,0.276-4.681,1.597 c-1.17,1.32-1.557,3.16-1.018,4.84c7.29,22.76,26.059,39.501,48.749,44.605c-18.819,11.787-40.34,17.961-62.932,17.961 c-4.714,0-9.455-0.277-14.095-0.826c-2.305-0.274-4.509,1.087-5.294,3.279c-0.785,2.193,0.047,4.638,2.008,5.895 c29.023,18.609,62.582,28.445,97.047,28.445c67.754,0,110.139-31.95,133.764-58.753c29.46-33.421,46.356-77.658,46.356-121.367 c0-1.826-0.028-3.67-0.084-5.508c11.623-8.757,21.63-19.355,29.773-31.536c1.237-1.85,1.103-4.295-0.33-5.998 C307.394,57.037,305.009,56.486,302.973,57.388z"/> </svg> </a></div><div class="icon"> <a title="Stack Overflow is where you can ask questions and find curated answers on deploying, configuring, and using Istio" href="https://stackoverflow.com/questions/tagged/istio"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120"><polygon points="84.4,93.8 84.4,70.6 92.1,70.6 92.1,101.5 22.6,101.5 22.6,70.6 30.3,70.6 30.3,93.8 "/><path d="M38.8,68.4l37.8,7.9l1.6-7.6l-37.8-7.9L38.8,68.4z M43.8,50.4l35,16.3l3.2-7l-35-16.4L43.8,50.4z M53.5,33.2 l29.7,24.7l4.9-5.9L58.4,27.3L53.5,33.2z M72.7,14.9l-6.2,4.6l23,31l6.2-4.6L72.7,14.9z M38,86h38.6v-7.7H38V86z"/> </svg> </a></div></div><div class="row justify-content-start d-none d-lg-flex"><p class="tag">for users</p></div></div></div><div class="col-6 col-lg-4"><p class="text-center copyright" role="contentinfo"> Istio Archive 0.7, Copyright &copy; 2018 Istio Authors<br> Archived on 05-May-2018</p></div><div class="col-6 col-lg-4 d-none d-lg-flex" role="navigation"><div class="container-fluid"><div class="row justify-content-end"><div class="icon"> <a title="Join the istio-dev@ mailing list to discuss development issues around the Istio project" href="https://groups.google.com/forum/#!forum/istio-dev"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 490 490"><path d="M480,410.248H10c-5.523,0-10-4.477-10-10V89.752c0-5.523,4.477-10,10-10h470c5.522,0,10,4.477,10,10v310.495 C490,405.771,485.522,410.248,480,410.248z M20,390.248h450V99.752H20V390.248z"/><path d="M245,286.131c-2.083,0-4.167-0.649-5.931-1.948L48.64,143.929c-4.446-3.275-5.396-9.535-2.121-13.982 c3.275-4.447,9.535-5.396,13.982-2.121L245,263.712l184.5-135.886c4.447-3.274,10.709-2.326,13.982,2.121 c3.275,4.447,2.325,10.707-2.121,13.982L250.931,284.183C249.167,285.482,247.083,286.131,245,286.131z"/> </svg> </a></div><div class="icon"> <a title="GitHub is where development takes place on Istio code" href="https://github.com/istio/community"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 478.165 478.165"><path d="M349.22,55.768c6.136,14.046,10.241,37.556,4.224,54.69 c24.426,20.999,33.073,71.904,21.079,113.704c35.006,2.73,76.666-1.235,103.642,9.484c-25.183-3.248-59.651-9.563-91.987-7.431 c-6.136,0.458-15.361-0.239-14.903,8.408c37.735,3.008,75.092,6.117,105.894,15.779c-30.702-4.981-67.74-12.552-105.894-13.668 c-15.54,30.921-47.239,46.262-90.991,49.49c4.682,10.261,13.847,14.066,15.879,30.702c3.267,24.406-4.881,60.328,3.208,76.686 c4.064,7.89,10.579,8.009,14.863,14.604c-10.699,12.871-37.257-1.395-40.186-14.604c-5.14-22.852,7.89-58.256-6.415-73.737 c0.996,24.865-5.718,59.85,0.996,82.145c2.789,8.806,10.659,12.113,8.647,20.063c-49.809,5.08-28.989-64.373-37.177-105.356 c-7.471,0.697-4.204,11.197-4.224,15.76c-0.199,40.106,8.189,94.836-34.846,89.556c-1.315-8.348,5.838-11.217,8.467-19.007 c7.91-22.434-1.454-56.045,2.112-83.161c-16.417,12.512,1.793,55.666-8.428,77.961c-5.838,12.671-24.785,18.27-39.19,12.651 c1.873-9.464,11.695-7.989,15.879-16.875c5.818-12.452,0.02-30.244,2.092-48.494c-30.423,6.097-53.993-0.877-65.608-20.023 c-5.12-8.507-6.356-18.708-12.632-26.219c-6.117-7.551-16.098-8.507-19.087-18.808c37.755-9.185,39.17,38.771,73.06,39.807 c10.44,0.418,15.799-2.909,25.402-5.16c2.749-12.113,8.428-21.039,16.875-27.494c-42.078-5.658-76.865-18.788-93.023-50.466 c-38.293,1.893-73.339,7.013-105.894,14.843c29.547-10.679,65.807-14.604,104.778-15.819c-2.351-13.807-22.434-10.022-34.866-9.543 C47.677,227.17,18.449,230.138,0,233.645c26.817-9.543,64.233-8.348,100.454-8.428c-11.038-34.767-7.232-90.014,17.015-110.615 c-6.854-17.254-4.722-45.346,4.184-58.834c27.036,1.175,43.374,12.891,60.388,24.247c21.019-6.017,43.035-9.045,71.904-7.451 c12.133,0.677,24.705,6.097,33.731,5.32c8.906-0.877,18.728-10.898,27.534-14.843C326.507,58.099,336.17,56.206,349.22,55.768z"/> </svg> </a></div><div class="icon"> <a title="Access our team drive if you'd like to take a look at the Istio technical design documents" href="https://groups.google.com/forum/#!forum/istio-team-drive-access"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 207.027 207.027"><path d="M69.866,15.557L0,138.919l28.732,52.552l143.288-0.029l35.008-59.588L136.39,15.735L69.866,15.557z M17.166,139.046 L74.268,38.205L91.21,67.783L33.24,168.447L17.166,139.046z M99.841,82.851l23.805,41.558l-47.732-0.006L99.841,82.851z M163.434,176.443l-117.332,0.024l21.53-37.065l64.606,0.008l0.067,0.119l52.865-0.085L163.434,176.443z M140.932,124.411 L90.157,35.767l-2.966-5.178l40.751,0.121l57.003,93.706L140.932,124.411z"/> </svg> </a></div><div class="icon"> <a title="If you'd like to contribute to the Istio project, consider participating in our working groups" href="https://github.com/istio/community/blob/master/WORKING-GROUPS.md"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -45 439.833 439.833"><polygon points="246.048,195.833 299.966,235.085 319.497,227.296 276.278,195.833"/><polygon points="193.786,195.833 163.556,195.833 120.33,227.3 139.862,235.089"/><path d="M219.927,11.558c-23.854,0-37.057,12.362-36.814,36.182c0.348,32.623,14.211,52.414,36.814,52.068 c0,0,36.802,1.492,36.802-52.068C256.729,23.918,244.294,11.558,219.927,11.558z"/><path d="M285.017,124.567l-36.77-14.659l-8.608-7.256c-2.274-1.922-5.636-1.78-7.741,0.317l-11.973,11.904l-12.008-11.907 c-2.109-2.094-5.465-2.229-7.736-0.313l-8.611,7.256l-36.77,14.661c-11.842,4.715-11.83,46.647-12.848,50.497h155.93 C296.866,171.228,296.862,129.28,285.017,124.567z"/><path d="M77.976,228.568c0,0,36.801,1.492,36.801-52.068c0-23.82-12.434-36.182-36.801-36.182 c-23.854,0-37.057,12.362-36.814,36.182C41.509,209.124,55.372,228.915,77.976,228.568z"/><path d="M143.065,253.329l-36.77-14.658l-8.609-7.256c-2.275-1.923-5.635-1.781-7.742,0.315l-11.971,11.904l-12.008-11.908 c-2.109-2.094-5.465-2.229-7.736-0.312l-8.611,7.256l-36.77,14.66C1.006,258.045,1.018,299.977,0,303.827h155.93 C154.915,299.988,154.911,258.042,143.065,253.329z"/><path d="M361.878,228.568c0,0,36.801,1.492,36.801-52.068c0-23.82-12.434-36.182-36.801-36.182 c-23.854,0-37.057,12.362-36.812,36.182C325.411,209.124,339.274,228.915,361.878,228.568z"/><path d="M426.968,253.329l-36.77-14.658l-8.609-7.256c-2.273-1.923-5.635-1.781-7.742,0.315l-11.971,11.904l-12.008-11.908 c-2.109-2.094-5.465-2.229-7.736-0.312l-8.61,7.256l-36.771,14.66c-11.842,4.715-11.83,46.646-12.848,50.497h155.93 C438.817,299.988,438.812,258.042,426.968,253.329z"/> </svg> </a></div><div class="icon"> <a title="Interactively discuss development issues with the Istio community on Slack (invitation-only)" href="https://istio.slack.com"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.444 31.443"><path d="M31.202,16.369c-0.62-1.388-2.249-2.011-3.637-1.391l-1.325,0.594l-3.396-7.591l1.325-0.592 c1.388-0.622,2.01-2.25,1.389-3.637c-0.62-1.389-2.248-2.012-3.637-1.39l-1.324,0.593l-0.593-1.326 c-0.621-1.388-2.249-2.009-3.637-1.388c-1.388,0.62-2.009,2.247-1.389,3.637l0.593,1.325L7.98,8.598L7.388,7.273 c-0.621-1.39-2.249-2.009-3.637-1.39C2.363,6.504,1.742,8.132,2.362,9.52l0.592,1.324L1.63,11.438 c-1.388,0.621-2.01,2.247-1.389,3.636c0.62,1.388,2.249,2.01,3.637,1.39l1.325-0.594l3.394,7.592l-1.325,0.592 c-1.388,0.621-2.009,2.25-1.389,3.637c0.621,1.389,2.249,2.011,3.637,1.391l1.324-0.593l0.593,1.325 c0.621,1.389,2.249,2.01,3.637,1.389c1.387-0.62,2.009-2.248,1.388-3.636l-0.591-1.326l7.591-3.394l0.592,1.321 c0.621,1.391,2.248,2.013,3.637,1.392c1.388-0.619,2.01-2.248,1.389-3.637l-0.592-1.324l1.323-0.594 C31.201,19.384,31.823,17.757,31.202,16.369z M13.623,21.215l-3.395-7.593l7.591-3.394l3.395,7.591L13.623,21.215z"/> </svg> </a></div></div><div class="row justify-content-end text-right"><p class="text-right tag">for developers</p></div></div></div></div></div></footer></div><script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script> <script src="https://www.google.com/cse/brand?form=search_form"></script> <script src="/v0.7/js/misc.min.js"></script></body></html>