Compare commits

...

1733 Commits

Author SHA1 Message Date
Istio Automation 638d39554f
Automator: update common-files@master in istio/api@master (#3538) 2025-07-10 07:06:33 -04:00
Istio Automation ea38f1ceff
Automator: update common-files@master in istio/api@master (#3536) 2025-07-08 05:37:30 -04:00
Istio Automation 5abba36528
Automator: update common-files@master in istio/api@master (#3533) 2025-06-30 16:45:23 -04:00
Istio Automation 2aeaef9384
Automator: update common-files@master in istio/api@master (#3530) 2025-06-26 08:13:19 -04:00
zirain 09a4d534f2
add RetryBudget in DestinationRule (#3512)
* add RetryBudget in DestinationRule

* address comment

* gen

Signed-off-by: zirain <zirain2009@gmail.com>

---------

Signed-off-by: zirain <zirain2009@gmail.com>
2025-06-25 12:53:18 -04:00
Rama Chavali 54c00a1820
add gateway sds extension provider (#3529)
* add gateway sds extension provider

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* address comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* revert change

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-06-25 11:14:18 -04:00
Istio Automation 3203c6c2b2
Automator: update common-files@master in istio/api@master (#3527) 2025-06-19 09:49:10 -04:00
Istio Automation 32aef48833
Automator: update common-files@master in istio/api@master (#3526) 2025-06-18 14:25:10 -04:00
zirain 65babd3c01
format protobuf files (#3522) 2025-06-16 11:17:16 -04:00
Craig Box 2d8537b42d
update sourceLabels and sourceNamespace docs (#3516)
* update sourceLabels and sourceNamespace docs

* made gen
2025-06-09 16:52:23 -04:00
Istio Automation 525552ff77
Automator: update common-files@master in istio/api@master (#3515) 2025-06-08 03:56:13 -04:00
Rama Chavali 5ce14890be
fix retry example in virtual service (#3514)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-06-07 10:13:53 -04:00
Istio Automation 840d4bf8e3
Automator: update common-files@master in istio/api@master (#3513) 2025-06-06 10:17:52 -04:00
zirain 59d36095c4
fix doc (#3511) 2025-06-05 07:24:52 -04:00
Istio Automation 2420d6915d
Automator: update common-files@master in istio/api@master (#3510) 2025-06-04 12:36:51 -04:00
Tyler Schade 47c8bc9152
remove required validation for JWTRule issuer field (#3504)
Signed-off-by: tjons <tylerschade99@gmail.com>
2025-05-22 10:13:22 -04:00
Istio Automation ba07c2c455
Automator: update common-files@master in istio/api@master (#3508) 2025-05-22 09:17:33 -04:00
Istio Automation 31de7139c7
Automator: update common-files@master in istio/api@master (#3507) 2025-05-22 04:26:32 -04:00
Istio Automation 1854e1991c
Automator: update common-files@master in istio/api@master (#3506) 2025-05-15 14:21:15 -04:00
Jackie Maertens (Elliott) 6c028fec98
Define ServiceScopeConfig in ServiceSettings (#3464)
* Define ServiceScopeConfig in ServiceSettings

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add release note

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* remove suffix

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* add back missing scope from example

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Remove nested list

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* make gen

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Update example

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* make gen

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Update gen

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Clarify example

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Clarify behavior of servicescopeconfig

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Respond to PR feedback about docs

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Move ServiceScopeConfigs to its own message. Define relationship
between ServiceSettings and ServiceScopeConfigs.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Clarify declaritive intent

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Clarify API intent for mesh admin

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix example

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2025-05-15 13:12:15 -04:00
Istio Automation a630cf092d
Automator: update common-files@master in istio/api@master (#3505) 2025-05-13 17:58:13 -04:00
Rama Chavali 8c42862123
remove unnecessary comments (#3503)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-05-10 10:51:46 -04:00
Istio Automation 6e80709806
Automator: update common-files@master in istio/api@master (#3501) 2025-05-09 09:55:45 -04:00
Istio Automation fc3334008b
Automator: update common-files@master in istio/api@master (#3500) 2025-05-09 06:04:48 -04:00
Istio Automation 278f26ce2e
Automator: update common-files@master in istio/api@master (#3499) 2025-05-07 14:19:44 -04:00
Rama Chavali 11442f3c76
hide ca cert from tls certificates (#3495)
* hide ca cert from tls certificates

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix hide

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-05-05 09:52:43 -04:00
Faseela K 6944c75efc
Migrate storage version of networking APIs to v1 (#3498)
* Migrate storage version of networking APIs to v1

Signed-off-by: Faseela K <faseela.k@est.tech>

* add release notes

Signed-off-by: Faseela K <faseela.k@est.tech>

* fix release notes

Signed-off-by: Faseela K <faseela.k@est.tech>

* generate crds

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2025-05-02 05:35:47 -04:00
Adesh Ghadage d4002d7d0b
Update refdocs to use markdown links and standardize HTTP/2 notation in master (#3430)
* update-refdocs-master-brokenUrl

* update-refdocs-release-1.24-brokenUrl

* updatedoc

* Regenerate API docs after changes

* Update networking/v1alpha3/destination_rule.proto

Co-authored-by: Craig Box <craig.box@gmail.com>

* Update networking/v1alpha3/destination_rule.proto

Co-authored-by: Craig Box <craig.box@gmail.com>

* Update networking/v1alpha3/destination_rule.proto

Co-authored-by: Craig Box <craig.box@gmail.com>

* Updated refdoc

---------

Co-authored-by: Craig Box <craig.box@gmail.com>
2025-05-02 05:35:39 -04:00
Sridhar Gaddam d98ae9c845
Add note for reroute-virtual-interfaces usage with dind (#3494)
* Add note for reroute-virtual-interfaces usage with dind

Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>

* Update the note to include docker-compose

Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>

---------

Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
2025-05-01 22:17:39 -04:00
Adam Cattermole 5e743e9aad
Add wasm plugin fail strategy reload (#3471) 2025-05-01 22:08:39 -04:00
Istio Automation 43c425818c
Automator: update common-files@master in istio/api@master (#3497) 2025-04-25 03:57:02 -04:00
Istio Automation 5b92b045e6
Automator: update common-files@master in istio/api@master (#3496) 2025-04-24 16:21:02 -04:00
John Howard f4e4840251
Remove legacy `Policy` type (#3370)
* Remove legacy `Policy` type

This has not been used for many many years

* remove envoy filter too
2025-04-15 10:21:23 -04:00
Daniel Grimm 813f014341
fix: remove spaces to fix YAML examples in ServiceEntry docstrings (#3488) 2025-04-14 11:37:22 -04:00
Istio Automation 88293b52af
Automator: update common-files@master in istio/api@master (#3486) 2025-04-10 08:33:17 -04:00
Istio Automation 881a462c13
Automator: update common-files@master in istio/api@master (#3485) 2025-04-10 07:59:16 -04:00
zirain 5e1d96e374
support read header value from env variable (#3474) 2025-04-09 19:46:15 -04:00
Istio Automation 217805b137
Automator: update common-files@master in istio/api@master (#3482) 2025-04-09 09:15:18 -04:00
Istio Automation f55d9659dc
Automator: update common-files@master in istio/api@master (#3479) 2025-04-01 03:07:47 -04:00
jacob-delgado 80b6f10e34
update protos (#3478)
* update protos

* update dependencies

* make tidy
2025-03-31 19:10:45 -04:00
Istio Automation 13a974093b
Automator: update common-files@master in istio/api@master (#3477) 2025-03-31 15:02:47 -04:00
Istio Automation ab83a1194b
Automator: update common-files@master in istio/api@master (#3475) 2025-03-26 12:49:52 -04:00
Rama Chavali ffa4a971b2
add ecdsa certificate support at gateways (#3466)
* add ecdsa certificate support at gateways

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add support for certs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add cel validations

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add comments for subject alt names

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* clean gen

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix validations

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix message

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-03-26 10:16:51 -04:00
zirain e41c1d8a2a
add annotation for statsCompression (#3469) 2025-03-20 20:29:43 -04:00
Rama Chavali 81bc1902f4
add retry backoff interval (#3461)
* add retry backoff interval

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add more docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-03-20 03:33:41 -04:00
Istio Automation 141038b5c1
Automator: update common-files@master in istio/api@master (#3468) 2025-03-17 12:19:20 -04:00
Istio Automation 3ba1bb754b
Automator: update common-files@master in istio/api@master (#3465) 2025-03-11 16:04:07 -04:00
Istio Automation 264bc29218
Automator: update common-files@master in istio/api@master (#3462) 2025-03-10 13:00:08 -04:00
Leonardo Sarra 041c225b6e
Remove non-zero requirement on connectionPool.tcp.IdleTimeout (#3455) 2025-03-07 13:51:03 -05:00
Istio Automation e373afd6e3
Automator: update common-files@master in istio/api@master (#3453) 2025-03-06 03:48:01 -05:00
Craig Box bccd18b8af
straighten some quotes (#3451)
* straighten some quotes

* manually make the gens

* automatically make the gens
2025-03-04 14:26:59 -05:00
Istio Automation 8acc1811a1
Automator: update common-files@master in istio/api@master (#3449) 2025-02-27 12:15:31 -05:00
Istio Automation affcb4000e
Automator: update common-files@master in istio/api@master (#3448) 2025-02-27 09:42:31 -05:00
zirain b047b1a8f8
envoy file provider support `omit_empty_values` (#3426)
* envoy file provider support

* fix
2025-02-27 00:29:28 -05:00
Istio Automation bd28b2c662
Automator: update common-files@master in istio/api@master (#3447) 2025-02-26 14:07:30 -05:00
Istio Automation 5f7f4fd81c
Automator: update common-files@master in istio/api@master (#3446) 2025-02-24 14:23:29 -05:00
Rama Chavali e40a0163c7
add retry host predicate api (#3432)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-02-22 02:11:53 -05:00
Jackie Maertens (Elliott) f4ae20b76d
Clarify relationship btw MeshNetworks and ENABLE_HCM_INTERNAL_NET (#3433)
* Clarify relationship btw MeshNetworks and ENABLE_HCM_INTERNAL_NET

Add comments explaining the ability to use MeshNetworks to
configure Envoy's internal_address_config via
ENABLE_HCM_INTERNAL_NETWORK

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add release note

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Clarify security implications of enabling HCM internal networks
and configuring MeshNetworks.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2025-02-19 17:27:51 -05:00
Istio Automation 391fae208a
Automator: update common-files@master in istio/api@master (#3443) 2025-02-18 13:46:51 -05:00
jacob-delgado 41ef999fc6
Run make gen (#3440) 2025-02-13 19:11:45 -05:00
Istio Automation aa1385fae2
Automator: update common-files@master in istio/api@master (#3441) 2025-02-13 16:25:46 -05:00
Istio Automation 0b64afd2de
Automator: update common-files@master in istio/api@master (#3436) 2025-02-10 17:05:44 -05:00
Istio Automation 22f48aedd5
Automator: update common-files@master in istio/api@master (#3429) 2025-02-03 20:08:14 -05:00
Istio Automation 77535d5432
Automator: update common-files@master in istio/api@master (#3428) 2025-02-03 16:49:14 -05:00
Ben Leggett 07553b9282
Add a pod-level opt-out for ambient DNS proxying, in preparation for enabling that by default globally (#3361)
* Add a pod-level opt-out for ambient DNS proxying, in preparation for enabling that by default globally.

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Add relnote

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Change to `ambient.istio.io/dns-capture` as per review comments

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Wording tweak

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Fixup relnote

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

---------

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>
2025-01-31 11:32:53 -05:00
Ian Rudie 03360c1a87
Validation: remove CEL for PolicyTargetRef to allow vendor extensions (#3414)
* Validation: CEL adjusted to allow PolicyTargetReference to target gtwapi GatewayClass

Signed-off-by: Ian Rudie <ian.rudie@solo.io>

* adding releasenote

Signed-off-by: Ian Rudie <ian.rudie@solo.io>

* remove CEL validations for PolicyTargetRef to allow vendor extensions

Signed-off-by: Ian Rudie <ian.rudie@solo.io>

* remove centralized group/kind detail and move to where targetRef is used in resources

Signed-off-by: Ian Rudie <ian.rudie@solo.io>

---------

Signed-off-by: Ian Rudie <ian.rudie@solo.io>
2025-01-24 17:16:00 -05:00
Istio Automation daf0cd6561
Automator: update common-files@master in istio/api@master (#3424) 2025-01-24 04:10:01 -05:00
Istio Automation d8ef56f50c
Automator: update common-files@master in istio/api@master (#3423) 2025-01-22 14:12:59 -05:00
Istio Automation a846f3d1aa
Automator: update common-files@master in istio/api@master (#3422) 2025-01-22 12:12:00 -05:00
Istio Automation 01e4b94afd
Automator: update common-files@master in istio/api@master (#3421) 2025-01-21 19:45:58 -05:00
John Howard 0e96d7b671
AuthorizationPolicy serviceAccount: allow same namespace (#3417) 2025-01-20 21:19:57 -05:00
Istio Automation 37b36c0508
Automator: update common-files@master in istio/api@master (#3419) 2025-01-20 14:17:58 -05:00
Rama Chavali 9bd352db2c
fix virtual service retry docs (#3416)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-01-17 12:53:55 -05:00
jacob-delgado 8a62f1e437
Run make gen (#3415) 2025-01-16 16:29:54 -05:00
Rama Chavali 5b3f065ee1
add domain name for virtual host match in envoy filters (#3376)
* add domain name for virtual host match in envoy filters

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add examples

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2025-01-16 12:34:53 -05:00
Istio Automation 8498f4d76a
Automator: update common-files@master in istio/api@master (#3413) 2025-01-16 11:31:56 -05:00
Istio Automation 165508daf7
Automator: update common-files@master in istio/api@master (#3411) 2025-01-15 16:50:54 -05:00
Istio Automation 6e7901d80e
Automator: update common-files@master in istio/api@master (#3409) 2025-01-08 16:29:04 -05:00
Istio Automation a39d6974a0
Automator: update common-files@master in istio/api@master (#3408) 2025-01-07 17:36:03 -05:00
Istio Automation 5008c1ce13
Automator: update common-files@master in istio/api@master (#3407) 2025-01-07 15:55:05 -05:00
Istio Automation d4ea7c595f
Automator: update common-files@master in istio/api@master (#3406) 2025-01-07 10:00:03 -05:00
Istio Automation 6516922f64
Automator: update common-files@master in istio/api@master (#3405) 2025-01-03 18:49:58 -05:00
Istio Automation f293e9c392
Automator: update common-files@master in istio/api@master (#3403) 2025-01-03 16:30:58 -05:00
Istio Automation 20799bef5b
Automator: update common-files@master in istio/api@master (#3402) 2025-01-02 17:16:59 -05:00
Istio Automation 17d71b3998
Automator: update common-files@master in istio/api@master (#3401) 2025-01-02 15:52:58 -05:00
Istio Automation 4e72c35173
Automator: update common-files@master in istio/api@master (#3399) 2025-01-02 11:28:59 -05:00
John Howard a684e698b8
Validation: add documentation and use CEL pre-processor (#3333)
* Move to oneof

* more oneof

* simplify SE one

* simplify expressions

* add validation readme

* lint
2024-12-31 19:32:56 -05:00
Istio Automation 20632d1c6a
Automator: update common-files@master in istio/api@master (#3398) 2024-12-30 17:41:55 -05:00
John Howard 13b0de17e7
Add JSON marshaling for non-CRD types (#3345)
We have this for CRD types, where it is strictly required to work with
k8s, but not for our other types. This makes it problematic to marshal
json for these types.

Note you can directly use protobuf json library, but this doesn't work
for nested types, hence the desire to have these. Low cost, some value.
2024-12-27 12:50:49 -05:00
John Howard 27d505cbdb
AuthorizationPolicy: add `serviceAccounts` field (#3340)
* AuthorizationPolicy: add `serviceAccounts` field

This is a minor implementation complexity in favor of a dramatic
simplification to usage of Istio authorization.

Today, if a user wants to dive into zero-trust 101, they are presented
with a requirement to set `principals`: `A list of peer identities
derived from the peer certificate`, and write
`<TRUST_DOMAIN>/ns/<NAMESPACE>/sa/<SERVICE_ACCOUNT>`.

This simple sentance is a huge cognitive overload for users in my
experience working with users, and unnecesarily pushes SPIFFE, trust
domains, and other unneccesary concepts onto users. Additionally, the
requirement to set 'trust domain', which is overwhelmingly not desired
by users who just want SA auth, leads to all sorts of wonky workarounds
in Istio like `cluster.local` being a magic value.

Instead, we just add a SA field directly. This takes the format `ns/sa`,
as you cannot safely reference a SA without a namespace field as well.
Note we do this, rather than just require you to set 'service account' and 'namespace'
as individual fields, since you could have `namespace=[a,b],sa=[d,e]`
which is ambiguous.

If this is directionally approved, I will add some more documentation
and CEL validation and testing.

* Tests and validation

* add doc

* Clarify comment that this is a KSA
2024-12-18 16:55:32 -05:00
Istio Automation c363ca75e8
Automator: update common-files@master in istio/api@master (#3396) 2024-12-17 13:09:00 -05:00
Istio Automation e71149d830
Automator: update common-files@master in istio/api@master (#3394) 2024-12-16 16:25:28 -05:00
jacob-delgado 3d8c4ae6eb
update dependencies (#3392) 2024-12-16 15:07:26 -05:00
John Howard 8fb86e93bb
Add a new 'workload name' label override (#3374)
* Add a new 'workload name' label override

Today, we have a "workload name" concept that ends up in metrics.
This is defaulted to deriving from deployment metadata (Deployment name,
etc).

This approach is not perfect. We cannot always derive an appropriate
name (for instance, a Pod can be created directly!). WorkloadEntry,
which often is equvilent to Pod, is also using the WE name -- generally
we would want a higher order name there.

To fix this, I propose we add a label to explicitly specify the workload
name. This format mirrors the existing canonical-{service,revision}
label.

* regen
2024-12-16 15:04:26 -05:00
Istio Automation 5bc699e795
Automator: update common-files@master in istio/api@master (#3393) 2024-12-16 13:34:26 -05:00
Craig Box 5fcb020312
New HTML (#3388) 2024-12-16 10:19:15 -05:00
Istio Automation e1f82e2bed
Automator: update common-files@master in istio/api@master (#3386) 2024-12-13 11:53:05 -05:00
Craig Box 83045844df
Fix some proto descriptions (#3384)
* fix some protos

* change comments from proto_names to yamlCase

* missed some backticks

* add make gen from prow
2024-12-12 12:02:02 -05:00
Istio Automation 04b53b1923
Automator: update common-files@master in istio/api@master (#3383) 2024-12-10 05:32:40 -05:00
Graham Bucknell 886dacb54e
doc: Adds explanation of the '~' character to networking.istio.io/exportTo annotation (#3371)
* doc: add explanation of ~ character

* doc: add comma separated names comment

* Change single quotes to backticks

Co-authored-by: John Howard <john.howard@solo.io>

* add output from make gen

* adding output from make gen - again

---------

Co-authored-by: John Howard <john.howard@solo.io>
2024-12-09 18:01:37 -05:00
Istio Automation 9693635f9c
Automator: update common-files@master in istio/api@master (#3382) 2024-12-09 01:50:16 -05:00
Istio Automation 34847826d7
Automator: update common-files@master in istio/api@master (#3381) 2024-12-06 17:43:09 -05:00
Istio Automation 015e023518
Automator: update common-files@master in istio/api@master (#3379) 2024-12-06 10:14:10 -05:00
Rudrakh Panigrahi f3e32c3b7a
support grpc probes for workload group health checks (#3372)
Signed-off-by: Rudrakh Panigrahi <rudrakh97@gmail.com>
2024-12-03 20:48:20 -05:00
Istio Automation f63e2709b2
Automator: update common-files@master in istio/api@master (#3375) 2024-12-03 19:32:22 -05:00
Whitney Griffith c5fb474743
Add StatefulFormatter to mesh.ProxyConfig (#3350)
* Add StatefulFormatter to ProxyConfig

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Add StatefulFormatter to mesh.ProxyConfig

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* run make gen-proto

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* simplify ux for preserveCase

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* remove preserveCase from proxyConfig CR

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Update releasenotes/notes/preserve-header-case.yaml

Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>

* update preserve case field

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* use google.protobuf.BoolValue

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* fix comments

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

---------

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
2024-12-03 15:07:20 -05:00
Istio Automation 505f7231aa
Automator: update common-files@master in istio/api@master (#3373) 2024-12-02 12:44:37 -05:00
jacob-delgado 918717d1a2
Run make gen with latest image (#3368) 2024-11-23 04:07:16 -05:00
Istio Automation 093c721a17
Automator: update common-files@master in istio/api@master (#3369) 2024-11-22 16:03:17 -05:00
Ben Leggett 2f3ffd33d3
Add ambient virtual interface annotation for pods (#3362)
* Add ambient virtual interface annotation for pods

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Fixup

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Derp

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Rename + deprecate sidecar annotation, as per decision

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

---------

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>
2024-11-21 12:32:43 -05:00
zirain 46eaabf172
hide tracer provider (#3367)
Signed-off-by: zirain <zirain2009@gmail.com>
2024-11-21 12:15:43 -05:00
John Howard fae8de666d
Fix incorrect SE docs (#3364)
There is no 'egress policy'.

Fixes https://github.com/istio/istio/issues/53904
2024-11-20 11:28:59 -05:00
Craig Box f27f8e9644
Update reference docs for ambient GA (#3353)
* Update reference docs for ambient GA

* gencheck
2024-11-19 04:33:58 -05:00
Jeremy L. Morris dec7c66908
noticed typo in labels gen proto link in description note (#3360) 2024-11-13 11:30:33 -05:00
Craig Box 2cc3366cdb
fix quote (#3359) 2024-11-07 19:22:29 -05:00
Jackie Maertens (Elliott) 212cf42ce8
Remove enableCoreDump annotation (#3355)
Support for annotation removed in
https://github.com/istio/istio/pull/53437

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2024-11-07 18:57:29 -05:00
Craig Box f9df5ff15e
add missing slash to fix docs path/lint (#3357)
* add missing slash to fix docs path/lint

* could swear I did this too
2024-11-07 17:52:27 -05:00
Istio Automation 6a8ac84d92
Automator: update common-files@master in istio/api@master (#3356) 2024-11-07 14:36:29 -05:00
rob salmond 0343efb292
clarify s/annotation/label/ (#3351) 2024-11-07 03:43:26 -05:00
rob salmond 76c3278753
new schema format (#3352) 2024-11-07 02:19:27 -05:00
Istio Automation 9e26cdd345
Automator: update common-files@master in istio/api@master (#3349) 2024-11-05 23:28:55 -05:00
Rama Chavali e14257a703
add option to skip istio specific tags in trace spans (#3322)
* add option to skip istio specific tags in trace spans

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* move telemetry to boolean

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2024-11-01 11:11:52 -04:00
Istio Automation 5ef47d381d
Automator: update common-files@master in istio/api@master (#3343) 2024-10-28 13:59:55 -04:00
Tyler Schade 79c9bd45a8
Add ObservedGeneration field to IstioCondition (#3335)
* add observed generation to istiocondition

Signed-off-by: Tyler Schade <tyler.schade@solo.io>

* improve documentation

Signed-off-by: Tyler Schade <tyler.schade@solo.io>

* releasenotes

---------

Signed-off-by: Tyler Schade <tyler.schade@solo.io>
2024-10-28 11:45:52 -04:00
Saverio Proto a1abc531ee
Improve documentation for subjectAltNames (#3319) 2024-10-25 14:11:49 -04:00
Bernard Van De Walle 49f1d2bc34
New: Adding clear_route_cache proto (#3339) 2024-10-24 18:09:48 -04:00
Istio Automation 402e54e9c0
Automator: update common-files@master in istio/api@master (#3342) 2024-10-24 10:19:53 -04:00
John Howard 7c8ec5b5ab
Add ingress bypass annotation to the API (#3338)
Added in istio in https://github.com/istio/istio/pull/53476
2024-10-18 16:16:54 -04:00
John Howard 585d68d196
Add traffic distribution annotation (#3328)
* Add traffic distribution annotation

Added in https://github.com/istio/istio/pull/53435

* update docs
2024-10-17 22:55:52 -04:00
Douglas Jordan 1e82bd4319
annotations: create an annotation for native sidecars (#3329) 2024-10-15 20:14:50 -04:00
jacob-delgado a591eba3df
Run make gen (#3337) 2024-10-15 20:10:50 -04:00
Istio Automation a1f906d18b
Automator: update common-files@master in istio/api@master (#3336) 2024-10-15 15:16:51 -04:00
Istio Automation 6504915783
Automator: update common-files@master in istio/api@master (#3334) 2024-10-10 20:03:14 -04:00
John Howard 52e018e7e1
annotations: remove obsolete entries (#3332)
These have no usage within Istio at all anymore.
2024-10-10 19:25:52 -04:00
Faseela K 05d7812873
Clarify filemounted crl usage (#3331)
Signed-off-by: Faseela K <faseela.k@est.tech>
2024-10-10 19:25:46 -04:00
John Howard 2ee8e3cf06
Fix over-correcting new SE CEL validation (#3320)
Adds regression test and fixes the issue
2024-10-10 15:17:46 -04:00
Faseela K 14aff11e9f
Run make-gen for protoc-gen-go v1.35.1 (#3330)
Signed-off-by: Faseela K <faseela.k@est.tech>
2024-10-10 14:46:46 -04:00
Istio Automation 9e24528929
Automator: update common-files@master in istio/api@master (#3327) 2024-10-08 18:54:47 -04:00
Frédéric Gaudet 2397ade04b
feat(DestinationRules): Adding aggression and min_weight_percent to DestinationRules API (#3216)
* feat(): Adding aggression and min_weight_percent to DestinationRules API

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Wrapping slowStart parameters

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Adding aggression and min_weight_percent to DestinationRules API

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* Update networking/v1alpha3/destination_rule.proto

Co-authored-by: John Howard <john.howard@solo.io>

* feat(): Regenerating protos

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Update documentation

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Adding validation in LoadBalancerSettings

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Adding tests and comments

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Fixing tests

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Make Duration field required

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

* feat(): Gen files

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>

---------

Signed-off-by: Frédéric Gaudet <frederic.gaudet@blablacar.com>
Co-authored-by: John Howard <john.howard@solo.io>
2024-10-08 06:26:45 -04:00
Rama Chavali bfb6855a77
move cert and chain fields to boolean (#3325)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2024-10-07 09:36:24 -04:00
Rama Chavali 9723aca52e
add ability to configure xfcc header for inbound connection (#3323)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2024-10-04 23:39:01 -04:00
Istio Automation 9f3acff60b
Automator: update common-files@master in istio/api@master (#3324) 2024-10-04 20:47:01 -04:00
Istio Automation 25af46120c
Automator: update common-files@master in istio/api@master (#3321) 2024-10-03 18:39:02 -04:00
John Howard eb7df4d4b4
Add CEL validation to SE and WG (#3302)
* Add CEL validation to SE and WG

* fix bad validation
2024-10-02 14:37:29 -04:00
John Howard 6a5c0db3b5
Codify labels and annotations that have been added directly to istio/istio (#3307)
* Codify labels and annotations that have been added directly to
istio/istio

Fixes https://github.com/istio/istio/issues/43437

* add note

* add SE and WE
2024-10-01 12:51:29 -04:00
John Howard c4291e1b08
sidecar: fix misleading docs (#3308)
Stop saying we "block" or "allow" traffic; its not true.
2024-09-26 16:29:24 -04:00
John Howard 1708641991
Improve validation for targetRefs (#3312)
Per
https://gateway-api.sigs.k8s.io/geps/gep-2648/?h=targetrefs#multiple,
only 16 max allowed -- which is quite reasonable.

Additionally, consistently allow only workloadSelector OR targetRef; we
had this only on some types
2024-09-26 16:04:24 -04:00
Leonardo Sarra 54d9596957
Clarify ForwardClientCertDetails comments (#3315)
* Clarify ForwardClientCertDetails comments

* update gen files

* fix typo

* remove mention of gateway proxy

* fix default value for gw
2024-09-24 16:13:25 -04:00
Istio Automation 6723233fd8
Automator: update common-files@master in istio/api@master (#3317) 2024-09-24 12:24:26 -04:00
Istio Automation cbbfaa7733
Automator: update common-files@master in istio/api@master (#3316) 2024-09-20 14:20:20 -04:00
Istio Automation 6dc3c3ff1d
Automator: update common-files@master in istio/api@master (#3313) 2024-09-13 19:32:23 -04:00
Kuromesi 30bca37a86
support zipkin endpoint configuration (#3310)
* support zipkin endpoint configuration

Signed-off-by: Kuromesi <blackfacepan@163.com>

* tidy code

Signed-off-by: Kuromesi <blackfacepan@163.com>

* change path to endpoint

Signed-off-by: Kuromesi <blackfacepan@163.com>

---------

Signed-off-by: Kuromesi <blackfacepan@163.com>
2024-09-12 19:41:12 -04:00
Istio Automation 8e5b8c28ec
Automator: update common-files@master in istio/api@master (#3311) 2024-09-12 12:57:37 -04:00
Istio Automation 169f6c4ada
Automator: update common-files@master in istio/api@master (#3309) 2024-09-11 15:41:36 -04:00
Istio Automation 3111847c7e
Automator: update common-files@master in istio/api@master (#3306) 2024-09-06 01:37:28 -04:00
Ian Rudie 18c92956f8
clarify documentation around stringMatch and case-sensitivity (#3304)
Signed-off-by: Ian Rudie <ian.rudie@solo.io>
2024-09-05 15:58:27 -04:00
Istio Automation 0a8281c558
Automator: update common-files@master in istio/api@master (#3303) 2024-08-28 21:07:21 -04:00
Kuromesi d0cf7ac8da
support grpc configuration for opentelemetry extension provider (#3301)
* support grpc configuration for opentelemetry extension provider

* tidy code

* remove release note
2024-08-28 15:21:20 -04:00
Marko Lukša 6e7441d492
Docs: Change snake_case to camelCase (#3300) 2024-08-21 13:57:23 -04:00
Istio Automation 5cb8f08093
Automator: update common-files@master in istio/api@master (#3298) 2024-08-21 00:16:24 -04:00
John Howard abec44418d
Pick up changes to CRD template naming and fix excessive WG validation (#3295)
* Rename tag names

* Drop embedding address validation in WG
2024-08-20 17:22:23 -04:00
Istio Automation 3584016ba7
Automator: update common-files@master in istio/api@master (#3296) 2024-08-19 15:53:22 -04:00
Jongwoo Han a47e765363
Fix minor typo (#3294)
Signed-off-by: Jongwoo Han <jongwooo.han@gmail.com>
2024-08-16 01:00:47 -04:00
Istio Automation dd780031d5
Automator: update common-files@master in istio/api@master (#3293) 2024-08-14 20:48:20 -04:00
John Howard 5302fff8a8
Remove obsolete releaselocks (#3287)
These do nothing, stale from many years ago
2024-08-09 15:21:58 -04:00
John Howard 9630fe745f
Remove the operator proto from this repo (#3286)
This is no longer an Istio CRD, just an internal YAML API to istioctl,
so move it under the Istio repo
(https://github.com/istio/istio/pull/52472)
2024-08-09 15:21:51 -04:00
Istio Automation 970626b3c4
Automator: update common-files@master in istio/api@master (#3290) 2024-08-07 15:48:26 -04:00
Istio Automation 1c71df12a1
Automator: update common-files@master in istio/api@master (#3289) 2024-08-07 11:15:24 -04:00
Istio Automation 410f465840
Automator: update common-files@master in istio/api@master (#3284) 2024-07-29 15:06:37 -04:00
John Howard 40f6cfad56
Regen after intorstr changes (#3283) 2024-07-29 13:47:35 -04:00
Istio Automation 1b4583bc9c
Automator: update common-files@master in istio/api@master (#3282) 2024-07-29 10:24:36 -04:00
Steven Landow 325839bcae
docs: clarify target ref to service (#3274) 2024-07-26 17:23:39 -04:00
John Howard 8636ed9638
Improve OutboundTrafficPolicy docs (#3270)
This is a bit of a mess since its documented in 3 places * 2 resources.

Meaningful changes:
* Explain registry only != security
* Remove recommendation to use registry_only, but explain why someone
  might
2024-07-26 17:23:32 -04:00
John Howard 67bf1e8c5c
Make observedGeneration intOrStr (#3273)
int64 in proto is encoded to json as a string. To support this, we make
it accept either form.

Without this, istio fails to write the status. See
https://github.com/istio/istio/pull/52159.

Note: this is only an issue now since we just added schema validation
for status.
2024-07-26 17:20:31 -04:00
Ian Rudie c591cad198
fix: ServiceEntryStatus (#3279)
* update status to support 1 address per host rather than 1 address per service entry

Signed-off-by: ilrudie <ian.rudie@solo.io>

* release notes

Signed-off-by: ilrudie <ian.rudie@solo.io>

---------

Signed-off-by: ilrudie <ian.rudie@solo.io>
2024-07-26 16:51:32 -04:00
Istio Automation 83435dfcff
Automator: update common-files@master in istio/api@master (#3277) 2024-07-23 10:25:32 -04:00
John Howard 8dd4b42e93
Allow targetRef to SE (#3271) 2024-07-22 14:01:30 -04:00
Radek Chrzanowski d84ec7ca6c
add new pattern SERVICE_NAME variable for stat prefix (#3276)
* add new pattern SERVICE_NAME variable for stat prefix

* add new pattern SERVICE_NAME variable for stat prefix - make gen
2024-07-22 10:47:30 -04:00
Istio Automation e644051774
Automator: update common-files@master in istio/api@master (#3272) 2024-07-18 12:31:20 -04:00
Istio Automation ef9163fb12
Automator: update common-files@master in istio/api@master (#3269) 2024-07-17 16:05:18 -04:00
John Howard ba230b0fea
Make TTL allow duration=0s again (#3260) 2024-07-15 11:21:14 -04:00
John Howard b960de3424
validation: add CEL validation to workload entry (#3235)
* validation: add CEL validation to workload entry

* more
2024-07-15 09:46:14 -04:00
dependabot[bot] 7bf1eab280
Bump google.golang.org/grpc from 1.64.0 to 1.64.1 (#3262)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.64.0 to 1.64.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.64.0...v1.64.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 21:53:23 -04:00
Istio Automation cda1ad0ed5
Automator: update common-files@master in istio/api@master (#3263) 2024-07-09 18:01:24 -04:00
Istio Automation b6aafe9c43
Automator: update common-files@master in istio/api@master (#3261) 2024-07-08 18:36:23 -04:00
Ian Rudie 840956d74e
minor reorg and fixes (#3257)
* addressing late comments from 3244

Signed-off-by: ilrudie <ilrudie@gmail.com>

* adding an istio-status-override comment so tools may override the status without hardcoding

Signed-off-by: ilrudie <ilrudie@gmail.com>

* fix spelling

Signed-off-by: ilrudie <ilrudie@gmail.com>

* move status comment to a location where it can be consumed

Signed-off-by: ilrudie <ian.rudie@solo.io>

---------

Signed-off-by: ilrudie <ilrudie@gmail.com>
Signed-off-by: ilrudie <ian.rudie@solo.io>
2024-07-06 19:10:20 -04:00
Ian Rudie f877909024
New Status proto for ServiceEntry (#3244)
* wip proto for service entry status

Signed-off-by: ilrudie <ian.rudie@solo.io>

* fixes + make gen

Signed-off-by: Ian Rudie <ian.rudie@solo.io>

* suggestion to make the connection with IstioStatus more apparent

Signed-off-by: Ian Rudie <ian.rudie@solo.io>

* fixed from CI

Signed-off-by: Ian Rudie <ian.rudie@solo.io>

* Update meta/v1alpha1/serviceentry-status.proto

Co-authored-by: John Howard <john.howard@solo.io>

* comments from PR

Signed-off-by: ilrudie <ilrudie@gmail.com>

---------

Signed-off-by: ilrudie <ian.rudie@solo.io>
Signed-off-by: Ian Rudie <ian.rudie@solo.io>
Signed-off-by: ilrudie <ilrudie@gmail.com>
Co-authored-by: John Howard <john.howard@solo.io>
2024-07-05 18:10:19 -04:00
Istio Automation 970065be21
Automator: update common-files@master in istio/api@master (#3256) 2024-07-04 02:10:10 -04:00
Istio Automation f46cb27eb2
Automator: update common-files@master in istio/api@master (#3253) 2024-07-02 12:44:51 -04:00
John Howard 5b3658a4c6
Improve VS retry documentation (#3247)
* Improve VS retry documentation

Inspired by https://github.com/istio/istio/issues/51762

* gen

* move
2024-07-01 21:20:49 -04:00
Craig Box b04c2565ff
Update PeerAuthentication docs (#3184)
* Update PeerAuthentication docs for mTLS

* update

* update text

* made gen

* make gen

* fix gencheck
2024-07-01 20:40:49 -04:00
jacob-delgado 74890bf7da
run make gen (#3248) 2024-06-27 20:22:26 -04:00
Istio Automation 7c6732ba77
Automator: update common-files@master in istio/api@master (#3246) 2024-06-27 11:14:15 -04:00
Istio Automation 7540fa2d19
Automator: update common-files@master in istio/api@master (#3245) 2024-06-26 22:46:15 -04:00
Timon Wong 5b788fec62
Fix concurrency docs (#3243)
* Fix concurrency docs about cpu limit

* make gen

Signed-off-by: Tianpeng Wang <tpwang@alauda.io>

---------

Signed-off-by: Tianpeng Wang <tpwang@alauda.io>
2024-06-20 11:40:34 -04:00
zirain bdb411e42d
remove WIP annotations (#3241)
* hidden WIP annotations

* remove them
2024-06-18 20:01:33 -04:00
Istio Automation 341dd53c47
Automator: update common-files@master in istio/api@master (#3239) 2024-06-12 10:04:28 -04:00
Istio Automation f1a87eca82
Automator: update common-files@master in istio/api@master (#3236) 2024-06-11 18:48:47 -04:00
Faseela K f7eee428a9
fix re2 link (#3229)
* fix re2 link

Signed-off-by: Faseela K <faseela.k@est.tech>

* generate crd

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2024-06-06 16:05:34 -04:00
Istio Automation 974eadbbdc
Automator: update common-files@master in istio/api@master (#3233) 2024-06-05 13:03:09 -04:00
Istio Automation ae99b7eeb2
Automator: update common-files@master in istio/api@master (#3231) 2024-06-04 19:10:44 -04:00
John Howard 0dbacc0160
CEL Validations for ProxyConfig, RequestAuthentication, and PeerAuthentication (#3223)
* Add CEL validation for ProxyConfig

* add PA

* Add RequestAuthentication

* allow empty validation

* validate groups

* oops

* gen

* fix
2024-06-04 17:16:07 -04:00
Istio Automation f51895ee7a
Automator: update common-files@master in istio/api@master (#3225) 2024-06-02 11:10:05 -04:00
Istio Automation 54e697ca5a
Automator: update common-files@master in istio/api@master (#3224) 2024-06-01 16:54:23 -04:00
John Howard 1bd7c057ee
Fix CEL validation on older k8s versions (#3219)
* Fix CEL validation on older k8s versions

Also add testing so we can catch this (though its tied to a single k8s
version, so its not perfect -- but should be able to catch most cases).

CEL before k8s 1.30 did not estimate the cost correctly so its basically
impossible

* actually keep it
2024-05-31 11:21:11 -04:00
Istio Automation 5bfebde0f6
Automator: update common-files@master in istio/api@master (#3222) 2024-05-31 09:37:13 -04:00
jacob-delgado fd44b55c2a
Make gen with latest tools image (#3220)
* Use with latest tools image

* update grpc-go dependency
2024-05-30 20:33:10 -04:00
Istio Automation b566e162c4
Automator: update common-files@master in istio/api@master (#3221) 2024-05-30 18:44:06 -04:00
John Howard f347a4a2a4
Remove obsolete MCP APIs (#3211) 2024-05-30 11:08:05 -04:00
John Howard 638ceb91b1
Improvements to CEL validations (#3218)
* Validate wildcard label selectors

* More CEL improvements

This gives WasmPlugin and Telemetry full parity with the webhook.
Verified by fuzzing, which I will merge into istio/istio after this
(tests fail before this lands)
2024-05-29 22:58:03 -04:00
Istio Automation f65c805a58
Automator: update common-files@master in istio/api@master (#3217) 2024-05-28 14:09:38 -04:00
John Howard 765d060c11
Regen API with new tools (#3210)
This adds comments to the aliases
2024-05-23 00:18:03 -04:00
Whitney Griffith 08f80cea4d
add guidelines for adding new features to stable APIs (#3182)
Signed-off-by: Whitney Griffith <whitney.griffith16@gmail.com>
2024-05-22 10:20:02 -04:00
Istio Automation e4a1b46d09
Automator: update common-files@master in istio/api@master (#3212) 2024-05-22 10:12:02 -04:00
Istio Automation aa8be1710a
Automator: update common-files@master in istio/api@master (#3208) 2024-05-21 10:42:30 -04:00
Kim Sondrup c8f65e2f8b
Fix typo in closing tag for some code blocks (#3196) 2024-05-21 09:42:29 -04:00
Whitney Griffith db01f1058c
update docs to show latest API version examples (#3192)
Signed-off-by: Whitney Griffith <whitney.griffith16@gmail.com>
2024-05-20 13:50:35 -04:00
John Howard 9fad1aecac
proxy config: clarify concurrency docs (#3193)
Fixes https://github.com/istio/api/issues/1783
2024-05-20 11:56:38 -04:00
John Howard f9846b4f41
Update mesh config to not import k8s libraries (#3154)
* Update mesh config to not import k8s libraries

* drop optional

* fix repeated

* gen
2024-05-20 11:56:31 -04:00
John Howard b9c26acf91
Generate alias for types instead of copies (#3188) 2024-05-20 11:48:31 -04:00
John Howard e68bd5f8c3
virtual service: minor grammar fix (#3195)
Fixes https://github.com/istio/api/issues/1931
2024-05-20 11:32:32 -04:00
zirain 9d5445e3a9
update comment (#3204) 2024-05-20 09:25:31 -04:00
Daneyon Hansen 2b5bf4c8a0
Adds Service Type to PolicyTargetReference API Docs (#3199)
Previously, only a Gateway resource was defined as a supported
attachment type. This PR updates the API docs to include a Service
as a supported type and also fixes an incorrect link to Gateway API
documentation.

Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
2024-05-15 22:29:11 -04:00
Craig Box 4252b0d3c7
make gen (#3202) 2024-05-15 21:41:11 -04:00
John Howard f0b5398125
Bump go modules (#3194)
Mostly picking up k8s 1.30
2024-05-15 21:38:11 -04:00
Istio Automation bf02fc66fc
Automator: update common-files@master in istio/api@master (#3201) 2024-05-15 19:28:11 -04:00
Istio Automation bd8d6ac22d
Automator: update common-files@master in istio/api@master (#3200) 2024-05-15 16:43:27 -04:00
John Howard 9ed092e1a0
Allow defining CRDs from a single version (#3186)
* Allow defining CRDs from a single version

Part of https://github.com/istio/api/issues/3127. Goes with a
corresponding tools change; this will fail until that merges.

This just shows DR. The tool will support both the new and old way (we
can remove the old way if we want), so we don't have to move everything
at once. We will, though. I kept it to one so its easy to review first.

* Move all APIs over
2024-05-14 15:09:49 -07:00
Istio Automation 09344006f9
Automator: update common-files@master in istio/api@master (#3191) 2024-05-13 09:09:16 -07:00
John Howard 7dfab5580f
Place JWTRule under RequestAuthentication like every other API (#3187)
There is no reason for this to be split, it just makes the docs more
confusing.

I am fairly sure this change only impacts the HTML, merging two pages
into one. I tested with istio.io/istio still builds fine.
2024-05-13 08:22:20 -07:00
Matteo Mortari 4a11b73132
doc: fix typo (missing closed double-quote) (#3190)
Signed-off-by: tarilabs <matteo.mortari@gmail.com>
2024-05-13 07:28:19 -07:00
Istio Automation 58947eeab0
Automator: update common-files@master in istio/api@master (#3189) 2024-05-09 18:17:52 -07:00
zirain 188722e5ed
cors: add unmatched_preflights (#3171)
* cors: add forward_not_matching_preflights

* rename

* update with rama's comment

* use Enum instead of bool

* address john's suggestion
2024-05-09 13:59:52 -07:00
Istio Automation 200df043d1
Automator: update common-files@master in istio/api@master (#3185) 2024-05-09 08:56:52 -07:00
Craig Box 768c994129
sort JWTRule after RequestAuthentication in the Istio docs. (#3179)
* sort JWTRule after RequestAuthentication in the Istio docs.

* add make gen'd files
2024-05-08 20:42:51 -07:00
Istio Automation 97b72765b8
Automator: update common-files@master in istio/api@master (#3183) 2024-05-08 14:47:52 -07:00
Istio Automation 9cbb06e392
Automator: update common-files@master in istio/api@master (#3181) 2024-05-08 12:01:51 -07:00
Istio Automation 0d73c8a3d5
Automator: update common-files@master in istio/api@master (#3178) 2024-05-02 08:53:41 -07:00
Istio Automation ee871f7711
Automator: update common-files@master in istio/api@master (#3177) 2024-05-02 07:02:43 -07:00
Rama Chavali 1724785ec6
update table size docs (#3175)
* update table size docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* change docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2024-05-01 06:28:40 -07:00
Whitney Griffith 2bc837c48d
Add extended release channel flag to v1beta1 ProxyConfig (#3174)
Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>
2024-04-30 13:41:47 -07:00
Istio Automation 68cdbb256c
Automator: update common-files@master in istio/api@master (#3172) 2024-04-23 11:25:51 -07:00
dependabot[bot] 941d58de83
Bump golang.org/x/net from 0.22.0 to 0.23.0 (#3165)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0.
- [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 11:13:32 -07:00
Whitney Griffith ebd4d88ced
[API] Implement Release channels (#3135)
* implement release channels

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* implement release channels without multiple crds

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

---------

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>
2024-04-22 10:56:33 -07:00
Istio Automation 6930b94b0e
Automator: update common-files@master in istio/api@master (#3169) 2024-04-22 09:34:21 -07:00
dependabot[bot] 209833968f
Bump golang.org/x/net from 0.19.0 to 0.23.0 in /tests (#3164)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.19.0 to 0.23.0.
- [Commits](https://github.com/golang/net/compare/v0.19.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 09:29:24 -07:00
Jackie Elliott 5b08a315cb
Add docs and examples for path templating (#3162)
* Add docs and examples for path templating

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Clarify path segment vs glob

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* rebase

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Update docs to reflect more restrictive path templating support

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Clarify an invalid path template will result in a invalid auth
policy.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2024-04-22 07:09:57 -07:00
Istio Automation e481111191
Automator: update common-files@master in istio/api@master (#3163) 2024-04-18 12:22:43 -07:00
Istio Automation 0efc1d9d88
Automator: update common-files@master in istio/api@master (#3161) 2024-04-15 10:59:37 -07:00
John Howard fe48267f86
policy attachment: allow `targetRefs` (#3159)
* policy attachment: allow `targetRefs`

Based on https://github.com/kubernetes-sigs/gateway-api/pull/2966. Note
that we do not HAVE to follow the GatewayAPI here; we can make our own
decision. There is, however, a general desire to allow multiple for
ergonomics.

In this proposal, I hide `targetRef`, but the API will remain + be
implemented forever. Implementation cost here is near zero, as we can
easily translate it to a single `targetRefs`; we just hide from docs to
push users toward the new ones.

* codegen

* Align documentation

* consistency
2024-04-12 13:44:31 -07:00
John Howard 2410bbc01d
EnvoyFilter: implement `targetRefs` (#3160)
This is the only API we have a `selector` without `targetRef`.

The motivation at the time was that waypoints don't official support
EnvoyFilter, and targetRef was primarily for waypoints.

However, targetRef can be used with all Kubernetes Gateway, including
for ingress, where EnvoyFilter is supported. Also, long term it will
support waypoint as well I assume; the earlier we add the field the less
migration pain there is.

This PR goes directly to `targetRefs` in line with
https://github.com/istio/api/pull/3159.
2024-04-12 13:01:31 -07:00
Istio Automation 4ffbbd13c1
Automator: update common-files@master in istio/api@master (#3158) 2024-04-12 06:26:31 -07:00
zirain cf602b958d
Revert "add new phase to WasmPlugin (#3143)" (#3157)
This reverts commit 21eb08855c.
2024-04-11 13:07:31 -07:00
Istio Automation 15a4e3d664
Automator: update common-files@master in istio/api@master (#3156) 2024-04-08 11:38:55 -07:00
zirain 21eb08855c
add new phase to WasmPlugin (#3143)
* add new phase  to WasmPlugin

* fix build

* rename to INITIAL
2024-04-05 09:20:22 -07:00
Istio Automation 0f527cc734
Automator: update common-files@master in istio/api@master (#3152) 2024-04-04 19:28:56 -07:00
Istio Automation 6432445ee4
Automator: update common-files@master in istio/api@master (#3149) 2024-04-04 16:21:56 -07:00
Istio Automation 513f6c1372
Automator: update common-files@master in istio/api@master (#3148) 2024-04-04 14:47:10 -07:00
Istio Automation d867e2d222
Automator: update common-files@master in istio/api@master (#3146) 2024-04-04 13:45:09 -07:00
Whitney Griffith d7ab31abb3
Promote Telemetry API to v1 (#3133)
* create v1 Telemetry API

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* add tracing.match example

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* update metrics.match example

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

---------

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>
2024-04-04 10:59:08 -07:00
Istio Automation 175ca2220d
Automator: update common-files@master in istio/api@master (#3145) 2024-04-03 12:35:08 -07:00
Istio Automation af9690a61b
Automator: update common-files@master in istio/api@master (#3144) 2024-04-03 10:02:07 -07:00
Joao Grassi e5b8f83935
OpenTelemetryTracingProvider: Allow configuring samplers (#3134)
* Add Dynatrace Sampler config

Add API configurations for the Dynatrace sampler.

* Add release notes

* Fix doc typo in code snippet

* Clarify Dynatrace fields

* make gen
2024-03-28 09:03:02 -07:00
Ric Hincapie 362ae32541
Fix concurrency docs (#3138)
* Fix concurrency docs

* Add make gen changed files
2024-03-25 14:38:44 -07:00
Istio Automation f58f0e441d
Automator: update common-files@master in istio/api@master (#3140) 2024-03-25 14:02:45 -07:00
Jackie Elliott 35fefa2d29
Update to go 1.22 (#3137)
Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2024-03-25 10:39:17 -07:00
Sridhar Gaddam 13544404d3
Fix description of PeerAuthentication example (#3139) 2024-03-25 10:22:17 -07:00
Whitney Griffith 94d8c5322f
Resolves #3125 (#3128)
Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>
2024-03-21 09:52:07 -07:00
Istio Automation 956f10ee27
Automator: update common-files@master in istio/api@master (#3136) 2024-03-21 08:21:08 -07:00
Leonardo Sarra d29365cf33
Remove mentions of VERIFY_CERTIFICATE_AT_CLIENT and ENABLE_AUTO_SNI (#3122)
* Remove mentions of VERIFY_CERTIFICATE_AT_CLIENT and ENABLE_AUTO_SNI

* adjust ca_certificates comment

* sync gen files
2024-03-16 05:50:01 -07:00
Whitney Griffith 2b0bfde445
Networking APIs graduation to v1 (#3111)
* bump networking apis to v1

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* set storageVersion as v1beta1

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Add release notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Update release notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* make gen

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Remove ProxyConfig v1

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* update release notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Remove update notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

---------

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>
2024-03-15 10:52:50 -07:00
Istio Automation a2735a8e37
Automator: update common-files@master in istio/api@master (#3131) 2024-03-15 06:16:50 -07:00
zirain f75a363d22
fix sidecar reference page (#3126) 2024-03-14 07:10:26 -07:00
dependabot[bot] 65c5c282bf
Bump google.golang.org/protobuf from 1.31.0 to 1.33.0 in /tests (#3123)
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 20:33:34 -07:00
dependabot[bot] 3d93a30c28
Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#3124)
Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 16:52:33 -07:00
Whitney Griffith 339eb52daa
PeerAuthentication Graduation to v1 (#3112)
* bump peer auth to v1

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* update sync

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Add release notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* run make gen

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Fix release notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Update release notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* Update release notes

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* make gen

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

* fix gen-check

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>

---------

Signed-off-by: whitneygriffith <whitney.griffith16@gmail.com>
2024-03-13 16:19:34 -07:00
zengyuxing007 c6ba867f73
add some annotations for ambient traffic redirection (#3114) 2024-03-11 18:04:56 -07:00
jacob-delgado 3d9a233170
Run make gen (#3120) 2024-03-11 17:59:56 -07:00
Istio Automation 86d9c76780
Automator: update common-files@master in istio/api@master (#3119) 2024-03-11 12:01:24 -07:00
Istio Automation 1ad72c102b
Automator: update common-files@master in istio/api@master (#3117) 2024-03-11 11:21:24 -07:00
Joao Grassi 93844c1f49
Fix cloned path in breaking task check (#3115) 2024-03-11 08:47:24 -07:00
John Howard cb6950bf63
Document all CRD enum options in CRD description (#3113) 2024-03-11 08:44:24 -07:00
Istio Automation b50273cc71
Automator: update common-files@master in istio/api@master (#3116) 2024-03-11 07:22:24 -07:00
Istio Automation e799e9291a
Automator: update common-files@master in istio/api@master (#3107) 2024-03-05 14:26:20 -08:00
Istio Automation 9569063876
Automator: update common-files@master in istio/api@master (#3106) 2024-03-05 09:35:20 -08:00
John Howard 76d8e65ae7
docs: remove per-version API tabs (#3100)
Fixes https://github.com/istio/api/issues/2994
2024-03-05 07:22:21 -08:00
Istio Automation c0f847eecd
Automator: update common-files@master in istio/api@master (#3105) 2024-03-01 12:17:35 -08:00
John Howard 183b34515b
Document node label in DR failover (#3104) 2024-02-29 06:06:47 -08:00
Istio Automation ccd5cd4096
Automator: update common-files@master in istio/api@master (#3103) 2024-02-28 10:53:38 -08:00
John Howard f465f2d18d
tooling: replace protolock with `buf breaking` (#3101) 2024-02-27 22:50:03 -08:00
Istio Automation a41168bb49
Automator: update common-files@master in istio/api@master (#3099) 2024-02-26 11:57:38 -08:00
Istio Automation 63dcee0970
Automator: update common-files@master in istio/api@master (#3097) 2024-02-23 16:20:31 -08:00
Istio Automation 660b19eb72
Automator: update common-files@master in istio/api@master (#3096) 2024-02-23 11:27:21 -08:00
John Howard 8c93bf5085
authz: add column for actions (#3094)
```
$ kag authorizationpolicies.security.istio.io
NAMESPACE   NAME      ACTION   AGE
foo         httpbin   ALLOW    11m
```

Just a nice helper
2024-02-23 08:41:22 -08:00
Istio Automation 764f7f8dae
Automator: update common-files@master in istio/api@master (#3095) 2024-02-22 06:45:24 -08:00
Kuat 9d97da0c04
Revert "meshconfig: add compliance policy (#3082)" (#3093)
This reverts commit 7d248c97e6.
2024-02-21 11:53:23 -08:00
Leonardo Sarra bfa7ba498e
Add timeout field to JWTRule (#3018)
* Add timeout field to JWTRule

* Change timeout comment

* Sync gen files

* Sync gen files 2

* Adjust comment

* minor changes to comment
2024-02-20 12:30:40 -08:00
Istio Automation 501a12d4b4
Automator: update common-files@master in istio/api@master (#3089) 2024-02-15 10:33:41 -08:00
Kuat 7d248c97e6
meshconfig: add compliance policy (#3082)
* meshconfig: add compliance policy

Change-Id: I43bb205b5b62e557f61852e08b5084b63453ba6e
Signed-off-by: Kuat Yessenov <kuat@google.com>

* review

Change-Id: Ib099a02945c6a4ca28571e2e402b45a3d9f2eae4
Signed-off-by: Kuat Yessenov <kuat@google.com>

* review

Change-Id: I3c601090e485f87d178dd9e280841930ec65cfa2
Signed-off-by: Kuat Yessenov <kuat@google.com>

---------

Signed-off-by: Kuat Yessenov <kuat@google.com>
2024-02-15 09:03:41 -08:00
Istio Automation dea5d1f8f2
Automator: update common-files@master in istio/api@master (#3087) 2024-02-14 13:52:26 -08:00
Istio Automation 88ff254521
Automator: update common-files@master in istio/api@master (#3086) 2024-02-14 12:32:27 -08:00
Istio Automation 1e8985d0cb
Automator: update common-files@master in istio/api@master (#3085) 2024-02-12 16:03:36 -08:00
Istio Automation a3fe40715b
Automator: update common-files@master in istio/api@master (#3084) 2024-02-12 07:58:35 -08:00
Istio Automation a625c67a67
Automator: update common-files@master in istio/api@master (#3083) 2024-02-12 07:00:34 -08:00
Faseela K e73088544b
Support file mounted CRL (#3052)
* support file mounted CRL

Signed-off-by: Faseela K <faseela.k@est.tech>

* review comments

Signed-off-by: Faseela K <faseela.k@est.tech>

* enhance description of the field based on Lin's comments

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2024-02-09 00:43:25 -08:00
Istio Automation b2fe6ba59e
Automator: update common-files@master in istio/api@master (#3080) 2024-02-08 09:25:25 -08:00
Istio Automation 6ee624502f
Automator: update common-files@master in istio/api@master (#3079) 2024-02-07 07:55:57 -08:00
Istio Automation 64291ae9cc
Automator: update common-files@master in istio/api@master (#3078) 2024-02-05 17:40:34 -08:00
Joao Grassi d7d5d27b5f
OpenTelemetryTracingProvider: New configurations for resource detectors (#3002)
* WIP: Extend OpenTelemetry tracing extension

* Remove sampler config

* Add release notes

* Improve proto docs

* Use strong type for resource detectors

* fix lint

* Add proper issue to release notes

* fix lint

* Remove extra > in docs link
2024-02-02 08:56:41 -08:00
Istio Automation 2b08fa3c32
Automator: update common-files@master in istio/api@master (#3077) 2024-02-01 13:49:40 -08:00
Istio Automation c05505dd28
Automator: update common-files@master in istio/api@master (#3076) 2024-01-31 15:44:40 -08:00
Peter Jausovec 1b6aded783
docs: add notes for ports used in AuthPolicy/PeerAuth (#3075)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2024-01-31 12:47:37 -08:00
Yossi Mesika 6a2e7cbc2a
Fix broken doc link to XDS description (#3073) 2024-01-31 06:10:36 -08:00
Yossi Mesika 22665f3861
Update SUPPORT.md (#3074)
* Update SUPPORT.md

Changed to the active discussions place

* Change link name
2024-01-30 23:11:42 -08:00
bmangoen 1f5f63a120
Add missing deprecated tag for mesh fields (#3072) 2024-01-30 08:34:29 -08:00
zirain 62e5dd9150
add shortname for authz (#3069)
* add shortname for authz

* rename to ap

* release notes
2024-01-29 12:55:32 -08:00
Peter Jausovec 7b21c4ba4e
docs: formatting fixes in WasmPlugin (#3070)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2024-01-29 11:46:34 -08:00
Joao Grassi 9911a0a699
OpenTelemetryTracingProvider : New configurations to export via HTTP (#2998)
* Add OTLP/HTTP config

* Make gen

* Add release notes

* Fix release notes

* PR suggestions - remove optional for headers

* Document default value for timeout

* Make HTTP service a generic type

* Rename to exporter options to 'http'

* Add example config to proto docs
2024-01-26 06:59:58 -08:00
Istio Automation cc05e6259e
Automator: update common-files@master in istio/api@master (#3068) 2024-01-25 09:25:33 -08:00
Rama Chavali 1d011e75bc
add inbound traffic policy to mesh config (#3044)
* add inbound traffic policy to mesh config

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* move comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2024-01-24 23:35:02 -08:00
Jay Miracola 1d69bda94b
Remove defaultRevision (#2798)
* Remove defaultRevision

* added reserved lines to pass make gen

* make gen new base
2024-01-24 20:30:03 -08:00
Peter Jausovec 3f25d08b9c
docs: fix formatting issues, typo, add links (#3065)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2024-01-24 16:17:02 -08:00
Istio Automation d7b5347f4d
Automator: update common-files@master in istio/api@master (#3061) 2024-01-23 05:54:47 -08:00
Jackie Elliott c1312a840e
Add docs for max_concurrent_streams (#3059)
Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2024-01-22 12:29:52 -08:00
Istio Automation f6dca747eb
Automator: update common-files@master in istio/api@master (#3060) 2024-01-22 12:11:53 -08:00
Istio Automation e9382a6b77
Automator: update common-files@master in istio/api@master (#3058) 2024-01-22 10:22:53 -08:00
Peter Jausovec 796ac64a96
docs: field name and minor formatting fixes (#3057)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2024-01-19 10:39:48 -08:00
Istio Automation a9e8f96065
Automator: update common-files@master in istio/api@master (#3055) 2024-01-18 13:38:33 -08:00
jacob-delgado 06018d723c
Run make gen with new protoc (#3051)
* Run make gen with new protoc

* Update dependencies
2024-01-17 09:03:58 -08:00
Leonardo Sarra f706c45918
Remove mention of REPLACE operation for EXTENSION_CONFIG EnvoyFilter (#3049) 2024-01-16 13:33:43 -08:00
Istio Automation fa554ecb9b
Automator: update common-files@master in istio/api@master (#3050) 2024-01-16 13:30:42 -08:00
Iris c9b0bf6b29
add fallback support for PrivateKeyProvider (#3045)
* add fallback support for privatekeyprovider

* add default value into comment

* Update releasenotes/notes/private-key-provider-fallback.yaml

---------

Co-authored-by: Lin Sun <lin.sun@solo.io>
2024-01-16 12:07:42 -08:00
John Howard 8919509ecb
Add compatibilityVersion to IstioOperator (#3046)
For https://github.com/istio/istio/pull/48449

Why a top level field instead of a value? This allows a consistent UX
for users of helm or istioctl. This makes it easier to document,
especially in istioctl precheck: `install with --set compatibilityVersion=1.20 to retain the old default.`
2024-01-12 20:34:01 -08:00
zirain 2d7eff4284
update annotations and labels page (#3043) 2024-01-12 06:40:35 -08:00
Istio Automation 0635d3ed6d
Automator: update common-files@master in istio/api@master (#3042) 2024-01-10 06:47:02 -08:00
Istio Automation b693c78472
Automator: update common-files@master in istio/api@master (#3039) 2024-01-09 16:17:46 -08:00
Kuat 0e784ed339
agent: remove BDS (#3038)
Change-Id: I82b18264d957a5702205aedf131c9c4246ab6634

Signed-off-by: Kuat Yessenov <kuat@google.com>
2024-01-09 10:50:44 -08:00
zirain 5e4450dbd5
mark extraStatTags deprecated (#3037)
* mark extraStatTags deprecated

* release-notes

* fix gen
2024-01-09 09:27:44 -08:00
Peter Jausovec a6b42dfa8a
docs: fix rendering of links and code snippets (#3036)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2024-01-04 22:29:58 -08:00
Istio Automation 35153ef010
Automator: update common-files@master in istio/api@master (#3035) 2024-01-04 13:43:07 -08:00
Peter Jausovec 206821b2bf
docs: use Kubernetes instead of k8s in the proto field comments (#3033)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2024-01-03 17:38:06 -08:00
Yao Zengzeng b92f58bb0b
align `selector` comments of PeerAuthentication with `RequestAuthentication` and `AuthorizationPolicy` (#3031)
* align `selector` comments of PeerAuthentication with `RequestAuthentication` and `AuthorizationPolicy`

* make gen
2024-01-03 06:38:01 -08:00
Istio Automation 001ea8671f
Automator: update common-files@master in istio/api@master (#3032) 2024-01-02 07:48:38 -08:00
Karan Nadagoudar 89a175a4b2
Add loadBalancerClass to the serviceSpec of the Operator (#3030) 2023-12-18 09:31:49 -08:00
Jacek Ewertowski 258dcfe4fd
Add idle_timeout to DestinationRule.TcpSettings (#2999)
* Add idle_timeout to DestinationRule.TcpSettings

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add release note

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Clarify that idle_timeout does not work for weighted clusters

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Describe idle_timeout in more detail

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add suggested change

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

---------

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
2023-12-15 17:26:37 -08:00
jacob-delgado 412dcc8314
Update test dependencies (#3029)
* Update test dependencies

* fix cel-go
2023-12-14 18:06:33 -08:00
dependabot[bot] 4f180435eb
Bump golang.org/x/net from 0.14.0 to 0.17.0 in /tests (#3027)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.14.0 to 0.17.0.
- [Commits](https://github.com/golang/net/compare/v0.14.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-14 15:35:32 -08:00
Istio Automation 0793eaae72
Automator: update common-files@master in istio/api@master (#3028) 2023-12-14 14:53:32 -08:00
jacob-delgado 2699efde31
Update go.mod (#3026)
* Update go.mod

* run make gen

* attempt to fix go mod change

* fix go.mod
2023-12-14 13:55:32 -08:00
Istio Automation 4fc9f3b932
Automator: update common-files@master in istio/api@master (#3025) 2023-12-13 11:33:36 -08:00
Istio Automation 0ff6205a5c
Automator: update common-files@master in istio/api@master (#3024) 2023-12-13 06:51:36 -08:00
Keith Mattix II bb3cb9c034
Add note on targetRef + authorization policy in multi-revision environment (#3021)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
2023-12-08 11:57:07 -08:00
Istio Automation 4e3eb06995
Automator: update common-files@master in istio/api@master (#3013) 2023-12-05 14:34:54 -08:00
Faseela K 515df8dbc3
Fix env variable name for VerifyCertAtClient (#3012)
Signed-off-by: Faseela K <faseela.k@est.tech>
2023-12-05 08:34:53 -08:00
Istio Automation 342d60d7be
Automator: update common-files@master in istio/api@master (#3011) 2023-11-30 13:04:26 -08:00
Jeremy L. Morris 68d86fae7d
Unhide the targetRef docs (#2983)
* Unhide the targetRef docs

* run make gen
2023-11-30 12:21:26 -08:00
Kuat eb91de7bc6
update protos (#3009)
Change-Id: Idd308abe13a0617d5d77d173c9f95564630c731f

Signed-off-by: Kuat Yessenov <kuat@google.com>
2023-11-30 10:50:25 -08:00
Zhonghu Xu 7aeccb2eee
Added upstream ProxyProtocol settings (#3007)
* Add upstream proxy protocol support

* make gen

* update

* update
2023-11-29 15:32:24 -08:00
Istio Automation cd4db8a393
Automator: update common-files@master in istio/api@master (#3008) 2023-11-29 07:21:15 -08:00
Zhonghu Xu 7aaf411469
Added retrieve JWT from cookies support (#2997)
* Add retrieve jwt from cookies support

* Add retrieve jwt from cookies support

* make gen
2023-11-28 10:29:12 -08:00
Istio Automation 3b5e5f75c5
Automator: update common-files@master in istio/api@master (#3004) 2023-11-27 09:17:30 -08:00
Istio Automation 2565f6197c
Automator: update common-files@master in istio/api@master (#2995) 2023-11-16 10:07:06 -08:00
rob salmond 08cf1c1120
update expected filenames for tls terminating key/secret (#2939)
* update expected filenames for tls terminating key/secret

* add both supported key names

* regenerate protos
2023-11-15 19:12:04 -08:00
Peter Jausovec 419f9a35f2
docs: fix a typo and incorrect rendering of URLs (#2991)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2023-11-15 15:35:04 -08:00
Whitney Griffith 648947ed7c
Update CEL documentation to capture type checking errors. (#2984)
* Update CEL documentation to capture type checking errors.

Signed-off-by: Whitney Griffith <whgriffi@microsoft.com>

* address comments

Signed-off-by: Whitney Griffith <whgriffi@microsoft.com>

* accept rewording

Signed-off-by: Whitney Griffith <whgriffi@microsoft.com>

Co-authored-by: Craig Box <craig.box@gmail.com>

* make gen

Signed-off-by: Whitney Griffith <whgriffi@microsoft.com>

---------

Signed-off-by: Whitney Griffith <whgriffi@microsoft.com>
Co-authored-by: Craig Box <craig.box@gmail.com>
2023-11-15 07:32:03 -08:00
Craig Box 446e4a5af9
GRPC-WEB is a valid port protocol, but not listed (#2986)
* GRPC-WEB is a valid port protocol, but not listed
correctly in the docs.

Adopted from https://github.com/istio/istio.io/pull/10942.

* Add generated files
2023-11-09 17:50:20 -08:00
Istio Automation 0da4203dc8
Automator: update common-files@master in istio/api@master (#2987) 2023-11-09 09:31:20 -08:00
Istio Automation b23c545110
Automator: update common-files@master in istio/api@master (#2982) 2023-11-01 06:35:01 -07:00
Istio Automation 1a9079e1d5
Automator: update common-files@master in istio/api@master (#2981) 2023-10-31 10:54:28 -07:00
Peter Jausovec b693dce85e
fix an incorrect statement (#2979)
* fix an incorrect statement

Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>

* adding the generated files

Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>

---------

Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
2023-10-31 07:04:28 -07:00
David Shen 00b09195fa
Subject: update doc for ignoreUriCase (#2976)
The property name that users should use is `ignoreUriCase`.

closes istio/istio.io#14072
2023-10-30 08:09:35 -07:00
Istio Automation 957623d274
Automator: update common-files@master in istio/api@master (#2975) 2023-10-27 03:48:29 -07:00
Faseela K a75ac2eed5
Update tlsDefaults doc to include cipher suites support (#2974)
Signed-off-by: Faseela K <faseela.k@est.tech>
2023-10-26 07:46:28 -07:00
Istio Automation 8716c2d774
Automator: update common-files@master in istio/api@master (#2973) 2023-10-25 09:18:28 -07:00
Istio Automation b4bb69e8e0
Automator: update common-files@master in istio/api@master (#2972) 2023-10-25 00:40:28 -07:00
John Howard 7616d8fa4f
telemetry: add native CRD validation (#2971) 2023-10-23 18:03:02 -07:00
Istio Automation 5854e8c6bb
Automator: update common-files@master in istio/api@master (#2970) 2023-10-19 19:43:35 -07:00
Istio Automation d64c2697d3
Automator: update common-files@master in istio/api@master (#2968) 2023-10-19 16:13:39 -07:00
Istio Automation 990fa627e8
Automator: update common-files@master in istio/api@master (#2967) 2023-10-19 06:19:10 -07:00
Istio Automation 36375d7b9d
Automator: update common-files@master in istio/api@master (#2965) 2023-10-18 09:30:39 -07:00
Jackie Elliott 61be6001a3
Add max_concurrent_streams definition to DestinationRule (#2952)
* Add max_concurrent_streams definition to DestinationRule.

Part of https://github.com/istio/istio/issues/47166

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Hide from docs

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* move misplaced field from tcp settings to http settings

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Rebase and update crd gen yaml

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2023-10-17 12:23:37 -07:00
John Howard 60a1b113da
Revert making gateway.spec.servers required (#2962) 2023-10-16 14:23:38 -07:00
John Howard a53bf82349
Adopt CRD native validation (#2951)
* Adopt CRD native validation: WasmPlugin

* fix banner

* Hide confusing errors
2023-10-16 12:49:37 -07:00
Zack Butcher 6d61c896cb
Mirror DestinationRule connection pool configuration on Sidecar (#2961)
* Add support for default and per-port connection pool settings for inbound connections to Envoy sidecars

* flesh out comments on connection pool and describe how they relate to destinationrule. Add a release note for the new field.

* missed comments in v1beta1 that should've been in v1alpha1
2023-10-15 18:53:35 -07:00
Zhonghu Xu 2c49e44609
Update authz document (#2954)
* update authorizationPolicy CUSTOM action feature status

* update authorizationPolicy CUSTOM action feature status
2023-10-12 09:43:42 -07:00
John Howard 06a054d5f8
Properly hideFromDocs targetRef (#2940)
Apparently it needs to be line 1.
2023-10-12 08:12:42 -07:00
jacob-delgado f9a5d9345c
Update grpc-go dependency (#2956) 2023-10-10 15:31:54 -07:00
Istio Automation d1a9938253
Automator: update common-files@master in istio/api@master (#2957) 2023-10-10 14:51:45 -07:00
Istio Automation f809826614
Automator: update common-files@master in istio/api@master (#2955) 2023-10-10 09:06:04 -07:00
rob salmond 91a45efbaa
fix broken envoy docs link (#2937) 2023-10-06 19:06:06 -07:00
Istio Automation 5de46e23ee
Automator: update common-files@master in istio/api@master (#2948) 2023-10-05 18:05:21 -07:00
John Howard 685ef7d06b
Migrate to protoc-gen-crd (#2941) 2023-10-05 16:16:01 -07:00
Istio Automation 34ab0043d2
Automator: update common-files@master in istio/api@master (#2947) 2023-10-05 12:14:37 -07:00
John Howard 4881de7246
Align REQUIRED declaration with reality (#2946)
The `REQUIRED` proto label currently does nothing. As a result, some of
them are misaligned with reality -- fields marked REQUIRED are actually
not required, and often even have valid behaviors and are used in the
real world.

Unfortunately, many of these are fields that *should* be required but
are not. To maintain backwards compatibility, these cannot be made
required at this point, sadly.

In a future PR, I intend to make `REQUIRED` *actually make it required*,
so this PR is a pre-requisite to doing that.
2023-10-05 09:46:37 -07:00
Eric Van Norman 1c3997104b
Run 'make gen' with new build-tools image (#2944) 2023-10-03 14:43:48 -07:00
Istio Automation 26810e6155
Automator: update common-files@master in istio/api@master (#2945) 2023-10-03 14:23:03 -07:00
Istio Automation 55564f9c7e
Automator: update common-files@master in istio/api@master (#2943) 2023-10-03 12:18:21 -07:00
Istio Automation e3f2b2a3de
Automator: update common-files@master in istio/api@master (#2942) 2023-10-03 09:31:20 -07:00
Istio Automation 4bc3c01da7
Automator: update common-files@master in istio/api@master (#2938) 2023-09-27 15:16:31 -07:00
Istio Automation 88982cb819
Automator: update common-files@master in istio/api@master (#2936) 2023-09-26 12:24:03 -07:00
Istio Automation 81c6f470a0
Automator: update common-files@master in istio/api@master (#2933) 2023-09-18 14:42:54 -07:00
Rama Chavali f6fb1c4ef5
remove duplicate comments in envoy filter (#2932)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2023-09-15 10:19:51 -07:00
Rama Chavali 3a443567aa
update ttl docs (#2931)
* update ttl docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update ttl docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2023-09-15 06:40:50 -07:00
Istio Automation 405bf0a1a2
Automator: update common-files@master in istio/api@master (#2929) 2023-09-11 14:39:29 -07:00
Istio Automation eb3480b470
Automator: update common-files@master in istio/api@master (#2925) 2023-09-06 14:24:54 -07:00
Jackie Elliott 283cc40b07
Define targetRef proto (#2888)
* Define protobuf for PolicyTargetReference

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add targetRef to AuthorizationPolicy, Telemetry, WasmPlugin,
ProxyConfig, and RequestAuthentication.

Need more examples.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add examples

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Moved targetRef def to selector.proto. Removed kubebuilder
comments. Added release note for targetRef.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add oneof to CRD protos. Add clarifying comments about intended
use of taretRef.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Remove targetRef from ProxyConfig

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Removed root namespace references and ingress gateway targetRef
examples.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Hide API changes from docs and remove examples until impl is
complete

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Remove telemtry example until impl complete

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* add clarification resource must be in same ns as policy and add
oneof to wasm plugin.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Remove oneof in to avoid go changes.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* update release note to clarify scope is limited to waypoints

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Update authorizationPolicy selector comment

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* clarify in targetRef description only waypoint is supported as a
targeted resource

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* add k8s gateway references

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Respond to PR feedback and add selector example.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Address nits

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
2023-09-05 15:45:52 -07:00
Istio Automation 56a12e041c
Automator: update common-files@master in istio/api@master (#2923) 2023-08-31 08:29:11 -07:00
Istio Automation 89e2a6692f
Automator: update common-files@master in istio/api@master (#2922) 2023-08-30 14:25:08 -07:00
Ben 8b0251e9bb
Update virtualservice HTTPRetry docs for the `attempt` field (#2919)
* Update virtualservice HTTPRetry docs for the `attempt` field

* update  files with docs
2023-08-30 08:20:08 -07:00
Istio Automation d292c262d9
Automator: update common-files@master in istio/api@master (#2921) 2023-08-29 20:25:07 -07:00
wulianglongrd 68bd84f7b0
fix JWT claim based routing doc (#2918) 2023-08-29 02:48:34 -07:00
Greg Hanson 708fbc7bc9
add metadata headers for proxyHeaders API (#2910)
* add metadata headers for proxyHeaders API

* remove includePassthrough flag

* typo

* clarify out of mesh distinction

* Update mesh/v1alpha1/proxy.proto

Co-authored-by: John Howard <howardjohn@google.com>

* review comments.  switch from ALWAYS to UNDEFINED

---------

Co-authored-by: John Howard <howardjohn@google.com>
2023-08-25 10:44:43 -07:00
Greg Hanson fa91fe28d2
update proto for WorkloadEntry since address is no longer required (#2916)
* update proto for workloadentry since address is no longer required

* remove unused import
2023-08-25 10:05:43 -07:00
rob salmond 6d14ca272a
add a note about the default inbound interception mode (#2913)
* add a note about the default mode

* include generated html
2023-08-25 08:35:43 -07:00
Istio Automation a06c7f0274
Automator: update common-files@master in istio/api@master (#2915) 2023-08-25 07:01:42 -07:00
Istio Automation 61b5a77f4f
Automator: update common-files@master in istio/api@master (#2911) 2023-08-24 06:44:59 -07:00
Saverio Proto dc0f5cf640
Fix typo Authorizaion to Authorization (#2909)
* Fix typo Authorizaion  to Authorization

* Update authorization_policy.proto

Fix typo from Authorizaion to Authorization
2023-08-24 06:01:59 -07:00
Rama Chavali 3cfacc6007
add support for network wasm filters (#2904)
* add support for network wasm filters

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add undefined

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* move to top level enum

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* move to caps

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add more docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2023-08-22 02:38:49 -07:00
jacob-delgado b359dbbc69
Update dependencies (#2906) 2023-08-17 11:00:03 -07:00
Istio Automation ca5d4b9069
Automator: update common-files@master in istio/api@master (#2905) 2023-08-16 09:32:36 -07:00
John Howard 7c4ff78bf1
Add controls around injected headers (#2240)
* Add controls around injected headers

This PR adds controls to which headers should be added to
requests/responses. This solves (most of)
https://github.com/istio/istio/issues/17635, a common feature request.

A prototype is implemented in https://github.com/istio/istio/pull/37215.

Open questions:
* Naming bikeshed
* Mesh config or proxy config or something else? Currently its in proxy
  config
* Is a list of ENUMs the best way to represent this? it does allow a
  strange config like `[REQUEST_ID, REQUEST_ID]` but that can just
rejected

* address comments

* xfcc
2023-08-11 08:52:04 -07:00
Istio Automation 3cdd517bf1
Automator: update common-files@master in istio/api@master (#2899) 2023-08-10 13:30:08 -07:00
Istio Automation bfba3ddffb
Automator: update common-files@master in istio/api@master (#2898) 2023-08-10 13:16:04 -07:00
Faseela K 86459b6f41
Fix AuthorizationPolicy typo (#2894)
Signed-off-by: Faseela K <faseela.k@est.tech>
2023-08-10 10:21:08 -07:00
Istio Automation bb53508fe8
Automator: update common-files@master in istio/api@master (#2896) 2023-08-10 10:08:04 -07:00
fatedier 95b5260a18
remove hide_from_docs for http route mirrors (#2893) 2023-08-10 06:37:04 -07:00
Istio Automation 14a4abd939
Automator: update common-files@master in istio/api@master (#2890) 2023-08-09 08:00:16 -07:00
Eric Van Norman 5d68ba1077
Fix some spelling errors (#2884)
Co-authored-by: weizhoublue <weizhou.lan@daocloud.io>
2023-08-08 18:26:18 -07:00
Istio Automation 0263a48147
Automator: update common-files@master in istio/api@master (#2887) 2023-08-07 13:48:05 -07:00
John Howard 3dbbc82d7a
Discourage unsafe ProtocolDetectionTimeout in mesh config (#2882) 2023-08-04 09:27:12 -07:00
Istio Automation 5c762be339
Automator: update common-files@master in istio/api@master (#2881) 2023-08-04 07:01:10 -07:00
John Howard 38de472a5f
Drop json schema generation (#2875)
We only generate this for some resources and not others, and no one has
complained -- so there doesn't seem to be much value in maintaining
this, but it provides a lot of boilerplate.

Rather than "fixing" it to be used for all types, seems better to just
drop this. We already have the schema as proto and OpenAPI (via CRD).
2023-08-02 19:44:43 -07:00
fatedier f3753ed9ee
feature: virtual service supports traffic mirroring to multiple destinations (#2805) 2023-07-31 20:17:15 -07:00
Istio Automation f59de249c8
Automator: update common-files@master in istio/api@master (#2874) 2023-07-31 11:48:52 -07:00
zirain 9d672598ed
mark opencensus deprecated (#2871)
* mark opencensus deprecated

* fix gen

* add release notes
2023-07-31 07:47:52 -07:00
Istio Automation 33f61dd2b1
Automator: update common-files@master in istio/api@master (#2873) 2023-07-28 07:51:47 -07:00
Istio Automation f036c56985
Automator: update common-files@master in istio/api@master (#2870) 2023-07-26 15:52:43 -07:00
Rama Chavali 358b906cec
add docs for target port in stats prefix (#2869)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2023-07-25 07:49:37 -07:00
Istio Automation 2bcf5c56c7
Automator: update common-files@master in istio/api@master (#2868) 2023-07-24 15:11:35 -07:00
Istio Automation 57fa7fdf73
Automator: update common-files@master in istio/api@master (#2867) 2023-07-24 08:54:35 -07:00
Istio Automation a685d6aa8a
Automator: update common-files@master in istio/api@master (#2866) 2023-07-21 06:44:33 -07:00
Istio Automation 3d2ac74c76
Automator: update common-files@master in istio/api@master (#2865) 2023-07-14 13:33:43 -07:00
Kuat fb3ebd69aa
proxy config: add support for PROXY protocol for gateways (#2860)
* introduce PROXY annotation

Signed-off-by: Kuat Yessenov <kuat@google.com>

* add release note

Signed-off-by: Kuat Yessenov <kuat@google.com>

* fix

Signed-off-by: Kuat Yessenov <kuat@google.com>

* update api

Signed-off-by: Kuat Yessenov <kuat@google.com>

* rewrite

Signed-off-by: Kuat Yessenov <kuat@google.com>

* rename to proxy_protocol

Signed-off-by: Kuat Yessenov <kuat@google.com>

* make gen

Signed-off-by: Kuat Yessenov <kuat@google.com>

---------

Signed-off-by: Kuat Yessenov <kuat@google.com>
2023-07-12 12:02:48 -07:00
Istio Automation 7d2a58e0da
Automator: update common-files@master in istio/api@master (#2862) 2023-07-12 06:25:47 -07:00
Istio Automation 89542d362c
Automator: update common-files@master in istio/api@master (#2854) 2023-07-10 11:48:36 -07:00
Istio Automation 09fa22aec1
Automator: update common-files@master in istio/api@master (#2853) 2023-07-10 09:20:38 -07:00
Istio Automation 58e787491a
Automator: update common-files@master in istio/api@master (#2852) 2023-07-07 17:24:33 -07:00
Istio Automation df0d3338f4
Automator: update common-files@master in istio/api@master (#2851) 2023-07-07 11:28:32 -07:00
Rama Chavali 7e4fb1598d
add a new TLS mode for validating client cert if presented (#2820)
* add support for validating client cert if presented

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix tab

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* make gen

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add more comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* change wording

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2023-07-06 20:03:32 -07:00
Matt Kramer 064529d3bb
chore: Fix typo in VirtualService docs (#2847)
* Fix typo in VirtualService docs

* Run make gen
2023-07-06 13:44:32 -07:00
Istio Automation 06b855377a
Automator: update common-files@master in istio/api@master (#2846) 2023-07-05 10:53:28 -07:00
Istio Automation f930ebfda3
Automator: update common-files@master in istio/api@master (#2845) 2023-07-03 06:13:39 -07:00
FVarya 1364cf24e4
Wrong defaults for Destination Rule (#2844)
* Fixed default values for Destination Rule ConnectionPoolSettings.HTTPSettings

* added corresponding release note
2023-06-29 10:01:01 -07:00
Istio Automation fc61f01bb6
Automator: update common-files@master in istio/api@master (#2840) 2023-06-27 11:52:38 -07:00
Istio Automation 1ddf7de79d
Automator: update common-files@master in istio/api@master (#2839) 2023-06-27 08:17:33 -07:00
Istio Automation aaaa421801
Automator: update common-files@master in istio/api@master (#2838) 2023-06-26 11:09:38 -07:00
zirain 39323cca37
envoyfilter: fix wrong doc (#2834) 2023-06-26 06:51:32 -07:00
Istio Automation 7d66103f0e
Automator: update common-files@master in istio/api@master (#2833) 2023-06-24 13:22:36 -07:00
Istio Automation 4f4d2c086b
Automator: update common-files@master in istio/api@master (#2832) 2023-06-23 08:00:04 -07:00
Istio Automation 73a3052767
Automator: update common-files@master in istio/api@master (#2831) 2023-06-22 16:34:06 -07:00
AndreaM12345 f8ef33f530
fixes for Duplicate reference docs overwriting each other (#2811)
* change page

* changes for docs to sync the needed ones

* fix tabset error

* fix spacing issue

* add checks to sync.sh to ensure mode is set

* fix changes from merge

* fix missing tabset

* fix tabset again
2023-06-22 06:41:07 -07:00
Istio Automation af4b457189
Automator: update common-files@master in istio/api@master (#2828) 2023-06-21 08:43:15 -07:00
Istio Automation bb753b9d6c
Automator: update common-files@master in istio/api@master (#2824) 2023-06-20 11:11:10 -07:00
wulianglongrd 89e0db7ec4
Add authz dry-run example (#2761)
* add authz dry-run example

* make gen

* add experimental note
2023-06-20 08:52:09 -07:00
Istio Automation 82993d552e
Automator: update common-files@master in istio/api@master (#2823) 2023-06-15 12:43:36 -07:00
Istio Automation 305a2e48d3
Automator: update common-files@master in istio/api@master (#2822) 2023-06-15 09:34:39 -07:00
Istio Automation 87b0c73053
Automator: update common-files@master in istio/api@master (#2821) 2023-06-15 07:53:15 -07:00
Kuat fabade8697
clarify the documentation (#2816)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2023-06-14 19:26:11 -07:00
Istio Automation 8025dd8b55
Automator: update common-files@master in istio/api@master (#2815) 2023-06-13 11:07:54 -07:00
Istio Automation 3458d03e97
Automator: update common-files@master in istio/api@master (#2813) 2023-06-12 08:46:53 -07:00
Istio Automation d42ca331b9
Automator: update common-files@master in istio/api@master (#2810) 2023-06-08 19:11:05 -07:00
Istio Automation a757e88321
Automator: update common-files@master in istio/api@master (#2809) 2023-06-08 12:59:05 -07:00
Istio Automation 38a0d28e04
Automator: update common-files@master in istio/api@master (#2806) 2023-06-08 07:27:05 -07:00
Kuat 870636f5cc
stats: allow custom histogram buckets (#2800)
* stats: allow custom histogram buckets

Signed-off-by: Kuat Yessenov <kuat@google.com>

* fix docs

Signed-off-by: Kuat Yessenov <kuat@google.com>

* fix

Signed-off-by: Kuat Yessenov <kuat@google.com>

---------

Signed-off-by: Kuat Yessenov <kuat@google.com>
2023-06-06 15:26:03 -07:00
Faseela K c446bf78e9
docs changes for ocsp staple support (#2803)
Signed-off-by: Faseela K <faseela.k@est.tech>
2023-06-06 07:57:49 -07:00
Istio Automation 154b3c3119
Automator: update common-files@master in istio/api@master (#2802) 2023-06-05 11:35:17 -07:00
Kuat 9242317ada
wasm: add fail_open for telemetry plugins (#2799)
* wasm: add fail_open for telemetry plugins

Signed-off-by: Kuat Yessenov <kuat@google.com>

* wasm: add fail_open for telemetry plugins

Signed-off-by: Kuat Yessenov <kuat@google.com>

* review

Signed-off-by: Kuat Yessenov <kuat@google.com>

---------

Signed-off-by: Kuat Yessenov <kuat@google.com>
2023-06-02 10:53:02 -07:00
Faseela K 5ee20e270d
docs changes for crl support (#2796)
Signed-off-by: Faseela K <faseela.k@est.tech>
2023-05-25 09:03:42 -07:00
Rama Chavali ba799b973e
add regex rewrite support for uris (#2753)
* add regex rewrite support for uris

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* rename

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add examples

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add gen files

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2023-05-24 12:24:41 -07:00
Jonathan Vila 0f5a7e990b
Changing the WasmPlugin.Priority field from int64 to int32 (#2577) 2023-05-24 05:07:40 -07:00
Istio Automation f9e87ae254
Automator: update common-files@master in istio/api@master (#2792) 2023-05-23 12:05:36 -07:00
Istio Automation 632c20c80c
Automator: update common-files@master in istio/api@master (#2791) 2023-05-23 11:20:32 -07:00
Istio Automation e073a8237a
Automator: update common-files@master in istio/api@master (#2787) 2023-05-18 08:00:27 -07:00
Istio Automation 40537bfae7
Automator: update common-files@master in istio/api@master (#2786) 2023-05-16 12:01:08 -07:00
jacob-delgado 8ba6dc2ef1
Add cipher suites support in meshConfig for mesh-wide ciphers (#2758)
* Support cipher suites to be specified for mesh-wide

* make gen

* Add release note
2023-05-12 07:03:03 -07:00
Istio Automation 044e6e6ce6
Automator: update common-files@master in istio/api@master (#2785) 2023-05-11 12:30:58 -07:00
Istio Automation 49ff9e5774
Automator: update common-files@master in istio/api@master (#2784) 2023-05-11 07:47:18 -07:00
Faseela K 36892ee879
[CNCF graduation] Add security tab for Istio repos (#2783)
Refer to [Istio Security Overview](https://github.com/istio/istio/blob/master/.github/SECURITY.md) for more details.

Signed-off-by: Faseela K <faseela.k@est.tech>
2023-05-11 07:25:18 -07:00
Zhonghu Xu a713b1dde1
Update failoverPriority doc to reflect the new `key=value` support (#2723)
* update document

* make gen

* Add an example

* make gen
2023-05-09 20:44:34 -07:00
Hisanobu Tomari c899271129
Replace 1.2.3.4 with RFC5737 address (#2774) (#2777) 2023-05-02 18:45:05 -07:00
Istio Automation e0351ef5bc
Automator: update common-files@master in istio/api@master (#2776) 2023-05-02 14:32:35 -07:00
Istio Automation e25e1c09ed
Automator: update common-files@master in istio/api@master (#2775) 2023-05-02 06:29:34 -07:00
jacob-delgado 68933adb3b
Update protc-gen-gateway; make gen (#2771) 2023-05-01 13:50:35 -07:00
Istio Automation c7a2f94ff1
Automator: update common-files@master in istio/api@master (#2772) 2023-05-01 10:52:34 -07:00
zirain eeaf63b792
sync stats config (#2769) 2023-04-27 09:50:30 -07:00
Istio Automation 6ffd9df402
Automator: update common-files@master in istio/api@master (#2768) 2023-04-26 10:17:29 -07:00
jacob-delgado 209ab38ea6
Run make gen with latest tools image (#2764) 2023-04-26 07:50:28 -07:00
Istio Automation 876b2e9bfc
Automator: update common-files@master in istio/api@master (#2765) 2023-04-25 15:37:28 -07:00
Peter Jausovec 51f7666f06
updating header presence explanation with example (#2762) 2023-04-24 11:25:57 -07:00
Istio Automation 04eb39977e
Automator: update common-files@master in istio/api@master (#2760) 2023-04-14 12:31:40 -07:00
jacob-delgado a5fe6c8c2f
Update deps to k8s 1.27.0 (#2757) 2023-04-14 10:36:35 -07:00
jacob-delgado cb047abbdf
Update deps (#2756) 2023-04-11 10:28:00 -07:00
Jacek Ewertowski a946141822
Add annotation istio.io/rev (#2743)
* Add annotation istio.io/rev

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Describe istio.io/rev in more detail

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

---------

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
2023-04-10 16:08:00 -07:00
Istio Automation d4c0b38fb0
Automator: update common-files@master in istio/api@master (#2755) 2023-04-10 09:20:00 -07:00
Istio Automation 60a4392c3f
Automator: update common-files@master in istio/api@master (#2754) 2023-04-09 23:24:59 -07:00
Eric Van Norman c74882c813
Manual update of common-files (#2751) 2023-04-06 12:33:25 -07:00
Pratyush Singhal a6d07899ef
docs: fix wasm plugin traffic selector docs (#2748)
Signed-off-by: Pratyush Singhal <psinghal20@gmail.com>
2023-04-06 05:23:25 -07:00
Istio Automation 9eaf4bd276
Automator: update common-files@master in istio/api@master (#2750) 2023-04-05 09:58:10 -07:00
Istio Automation da080e1d61
Automator: update common-files@master in istio/api@master (#2749) 2023-04-05 06:49:10 -07:00
Eric Van Norman b994cdf2df
Add gateway.istio.io/controller-version annotation (#2745)
* Add gateway.istio.io/controller-version annotation

* Fix lint
2023-04-03 08:53:33 -07:00
Istio Automation eb5bfad7b7
Automator: update common-files@master in istio/api@master (#2742) 2023-03-27 14:07:53 -07:00
Faseela K e5c70bb8f3
small correction in peer auth example (#2741)
* small correction in peer auth example

Signed-off-by: Faseela K <faseela.k@est.tech>

* address review comments

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2023-03-24 06:22:00 -07:00
Faseela K 6eff78243e
Clarify that MeshConfig.localityLbSetting is enabled by default (#2737)
* Clarify that MeshConfig.localityLbSetting is enabled by default

Signed-off-by: Faseela K <faseela.k@est.tech>

* address review comments

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2023-03-23 11:36:59 -07:00
zirain 49a8f67e97
update `proxy_inbound_listen_port` doc (#2735)
* update doc

* fix make gen

* fix gencheck
2023-03-21 19:43:21 -07:00
Istio Automation 09cdc7f5fb
Automator: update common-files@master in istio/api@master (#2736) 2023-03-21 08:33:21 -07:00
Istio Automation 2516db5269
Automator: update common-files@master in istio/api@master (#2726) 2023-03-16 08:58:20 -07:00
Sathish d80de99025
Format corrections of JWTRule document (#2720)
* Fix indentation of jwt doc

* Update comment line of jwtrule

* Fix indentation of jwt doc

* Update comment line of jwtrule

* Rebase with latest master

---------

Co-authored-by: Sathish Swaminathan <sathish.swaminathan@ibm.com>
2023-03-13 12:07:22 -07:00
Istio Automation 5825aac929
Automator: update common-files@master in istio/api@master (#2722) 2023-03-13 10:05:26 -07:00
Faseela K 3be9c08704
Document available cipher list for ServerTLSSettings (#2718)
* Document available cipher list for ServerTLSSettings

Signed-off-by: Faseela K <faseela.k@est.tech>

* address review comments

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2023-03-10 09:58:55 -08:00
Chromo-residuum-opec 681fed9f32
update credentialName docs for DestinationRule and Gateway (#2714)
* update credentialName docs for DestinationRule and Gateway

* address comments
2023-03-10 08:33:16 -08:00
zirain 17d87a97bc
make inbound port configurable (#2702)
* make inbound port configurable

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>

* update Next available field number

---------

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>
2023-03-09 17:56:15 -08:00
Istio Automation 8dd86e0de4
Automator: update common-files@master in istio/api@master (#2715) 2023-03-08 12:16:48 -08:00
Chromo-residuum-opec 24a78d2ccb
update deprecated field in EnvoyFilter example (#2713) 2023-03-07 08:02:46 -08:00
Yossi Mesika 5e59387fbd
Updated documented default refresh rate (#2711) 2023-03-06 11:11:45 -08:00
Yang 6bbcb3e795
Update api comment about query parameter. (#2712)
* Update api comment about query parameter

* Make gen
2023-03-06 11:08:45 -08:00
Faseela K 5d441588ae
Clarify ecdh_curves api - rename to tlsDefaults (#2693)
* Clarify ecdh_curves api docs

Signed-off-by: Faseela K <faseela.k@est.tech>

* Rename mesh_external_TLS to tls_defaults

Signed-off-by: Faseela K <faseela.k@est.tech>

* make gen

Signed-off-by: Faseela K <faseela.k@est.tech>

* clarify docs

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2023-03-06 03:09:45 -08:00
Istio Automation 81b9ef1319
Automator: update common-files@master in istio/api@master (#2709) 2023-03-03 07:06:08 -08:00
Istio Automation 40658bedd8
Automator: update common-files@master in istio/api@master (#2708) 2023-03-02 12:25:07 -08:00
dependabot[bot] 582f573dde
Bump golang.org/x/net from 0.4.0 to 0.7.0 (#2685)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.4.0 to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/compare/v0.4.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-02 09:24:06 -08:00
Istio Automation 248c5170f5
Automator: update common-files@master in istio/api@master (#2706) 2023-03-01 15:33:59 -08:00
Istio Automation 1bd2832732
Automator: update common-files@master in istio/api@master (#2696) 2023-02-27 10:03:14 -08:00
Chromo-residuum-opec 817f66acdb
VirtualService docs minor formatting fixes (#2659)
* VirtualService docs minor formatting fixes

* address comments
2023-02-27 08:24:15 -08:00
Faseela K 35782d263c
Clarify credentialName usage for separate ca secrets (#2692)
Signed-off-by: Faseela K <faseela.k@est.tech>
2023-02-24 09:46:55 -08:00
Istio Automation 181d16cfb1
Automator: update common-files@master in istio/api@master (#2691) 2023-02-23 08:03:54 -08:00
Istio Automation 7063fd506d
Automator: update common-files@master in istio/api@master (#2690) 2023-02-22 19:04:26 -08:00
Istio Automation c3fb44b462
Automator: update common-files@master in istio/api@master (#2689) 2023-02-22 01:51:33 -08:00
Peter Jausovec 3c7d940965
replace quotes with backticks when referring to values (#2687) 2023-02-21 13:47:33 -08:00
Istio Automation e2f99368b4
Automator: update common-files@master in istio/api@master (#2688) 2023-02-21 12:29:33 -08:00
Istio Automation f0cbcee7b6
Automator: update common-files@master in istio/api@master (#2686) 2023-02-21 09:24:33 -08:00
Faseela K f07e07dec0
Add ecdh_curves support (#2543)
* Add ecdh_curves support to Gateway

Signed-off-by: Faseela K <faseela.k@est.tech>

* Add release notes

Signed-off-by: Faseela K <faseela.k@est.tech>

* Support ecdh_curves for destination_rule

Signed-off-by: Faseela K <faseela.k@est.tech>

* Fix release note

Signed-off-by: Faseela K <faseela.k@est.tech>

* Add ecdh_curves to MeshConfig and remove from DestinationRule

Signed-off-by: Faseela K <faseela.k@est.tech>

* rename the TLSConfig for external traffic

Signed-off-by: Faseela K <faseela.k@est.tech>

* Make the config mesh_external

Signed-off-by: Faseela K <faseela.k@est.tech>

* Retain only MeshConfig changes

Signed-off-by: Faseela K <faseela.k@est.tech>

* Manually fix proto.lock

Signed-off-by: Faseela K <faseela.k@est.tech>

* make gen

Signed-off-by: Faseela K <faseela.k@est.tech>

* rebase

Signed-off-by: Faseela K <faseela.k@est.tech>

* Edit ECDH description

Signed-off-by: Faseela K <faseela.k@est.tech>

* enhance mesh external description

Signed-off-by: Faseela K <faseela.k@est.tech>

* Clarify ecdh curves documentation

Signed-off-by: Faseela K <faseela.k@est.tech>

* rebase

Signed-off-by: Faseela K <faseela.k@est.tech>

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
2023-02-17 10:36:03 -08:00
zirain 4188d5cb29
telemetry: allow disable 128bit trace id for zipkin provider (#2680)
* telemetry: allow disable 128bit trace id for zipkin provider

* update with rama's comment

* fix nit
2023-02-17 07:22:57 -08:00
Eric Van Norman 7300918fbd
Fix link (#2683) 2023-02-16 10:39:23 -08:00
John Howard 481bb4006e
Add ztunnel component to operator API (#2682)
Part of https://github.com/istio/istio/issues/40879
2023-02-16 08:50:22 -08:00
Eric Van Norman aa0187a0dc
Fix link (#2681) 2023-02-16 08:17:22 -08:00
Istio Automation 964a2f8161
Automator: update common-files@master in istio/api@master (#2676) 2023-02-15 07:23:49 -08:00
Istio Automation 7f2a58d695
Automator: update common-files@master in istio/api@master (#2675) 2023-02-13 11:10:42 -08:00
Istio Automation 734032cd4c
Automator: update common-files@master in istio/api@master (#2672) 2023-02-08 06:55:35 -08:00
Istio Automation 5633fb84cc
Automator: update common-files@master in istio/api@master (#2671) 2023-02-07 14:42:35 -08:00
Istio Automation 8c8e428452
Automator: update common-files@master in istio/api@master (#2670) 2023-02-07 08:18:01 -08:00
Istio Automation eaf57b72a9
Automator: update common-files@master in istio/api@master (#2668) 2023-02-04 15:54:21 -08:00
Istio Automation 8dcd7fa0ea
Automator: update common-files@master in istio/api@master (#2665) 2023-02-03 06:21:33 -08:00
Istio Automation 7f0fb1d3b8
Automator: update common-files@master in istio/api@master (#2664) 2023-02-01 12:05:15 -08:00
zirain 522813ce75
mark Lightstep provider deprecated (#2635)
* mark Lightstep provider deprecated

* hide from doc

* add release-notes
2023-01-30 10:08:02 -08:00
Istio Automation 7df67540b9
Automator: update common-files@master in istio/api@master (#2662) 2023-01-30 08:06:10 -08:00
Aryan Gupta b214fbae4c
small fix in authz docs (#2658) 2023-01-27 14:11:32 -08:00
Istio Automation d3366a2527
Automator: update common-files@master in istio/api@master (#2657) 2023-01-27 10:25:50 -08:00
Istio Automation 0edeaf7ff2
Automator: update common-files@master in istio/api@master (#2656) 2023-01-26 10:36:53 -08:00
Istio Automation b92d6e1fb2
Automator: update common-files@master in istio/api@master (#2652) 2023-01-25 10:44:19 -08:00
Istio Automation c0ad6a61d2
Automator: update common-files@master in istio/api@master (#2651) 2023-01-24 14:26:49 -08:00
Istio Automation f6d8f2dfe7
Automator: update common-files@master in istio/api@master (#2649) 2023-01-23 11:53:43 -08:00
Istio Automation 9278b6fbf0
Automator: update common-files@master in istio/api@master (#2648) 2023-01-23 06:19:17 -08:00
Faseela K 50b2dd50e0
Clarify protocol description for Gateway port (#2646)
* Clarify protocol description for Gateway port

Signed-off-by: Faseela K <faseela.k@est.tech>

* Review comments

Signed-off-by: Faseela K <faseela.k@est.tech>

Signed-off-by: Faseela K <faseela.k@est.tech>
2023-01-20 13:28:13 -08:00
Istio Automation 9edaf24590
Automator: update common-files@master in istio/api@master (#2644) 2023-01-19 11:42:13 -08:00
Istio Automation a31727c0c6
Automator: update common-files@master in istio/api@master (#2641) 2023-01-18 22:21:15 -08:00
Istio Automation 1dce51134d
Automator: update common-files@master in istio/api@master (#2638) 2023-01-17 09:50:11 -08:00
Istio Automation 948c74329e
Automator: update common-files@master in istio/api@master (#2637) 2023-01-17 08:14:30 -08:00
Zhonghu Xu 336f5919b4
Deprecate Port.TargetPort (#2634)
* Mark targetPort as deprecated

* auto gen
2023-01-17 08:06:34 -08:00
zirain 185a974fe1
fix depguard (#2636)
* fix depguard

* fix build
2023-01-17 06:54:30 -08:00
Istio Automation aef7f00818
Automator: update common-files@master in istio/api@master (#2632) 2023-01-13 09:17:15 -08:00
Zhonghu Xu 06179ffd0b
Separate ServiceEntry port from Gateway Server and Sidecar ingress listener (#2626)
* Separate serviceentry port from gateway and sidecar, because only service entry port need target port

* make gen

* remove targer port from port struct

* remove unused import

* remove unused import
2023-01-12 08:06:14 -08:00
Istio Automation 454de919bf
Automator: update common-files@master in istio/api@master (#2629) 2023-01-11 14:10:20 -08:00
Istio Automation 735440dec0
Automator: update common-files@master in istio/api@master (#2628) 2023-01-11 10:39:13 -08:00
Gustaf Lindstedt 3e6a019275
Add `appProtocol` field to operator/v1alpha1 ServicePort (#2627) 2023-01-11 08:54:12 -08:00
Istio Automation 68cea7e303
Automator: update common-files@master in istio/api@master (#2625) 2023-01-10 17:19:28 -08:00
fsl dab445160d
fix CVE-2022-41717 vulnerability (#2623) 2023-01-09 08:31:49 -08:00
Istio Automation 04e3e63238
Automator: update common-files@master in istio/api@master (#2622) 2023-01-05 13:10:34 -08:00
Istio Automation bd0328192d
Automator: update common-files@master in istio/api@master (#2618) 2023-01-03 11:45:34 -08:00
Istio Automation 46501207a1
Automator: update common-files@master in istio/api@master (#2617) 2023-01-03 10:57:34 -08:00
Jacek Ewertowski 85a2491e78
Clarify that Sidecar is not applicable to gateways (#2615)
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
2023-01-03 08:07:36 -08:00
Rama Chavali abd31091d0
clarify warmup duration docs in destination rule (#2612)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2023-01-02 18:15:34 -08:00
Istio Automation f0141fc155
Automator: update common-files@master in istio/api@master (#2614) 2022-12-29 11:58:29 -08:00
Blake R 3417dfab29
Add OpenTelemetry Tracing Provider to Docs (#2609)
* Add OpenTelemetry Tracing Provider to Docs

Signed-off-by: blakeromano <blakeromano19@gmail.com>

* Add Note about needing 1.16.1 or higher

Signed-off-by: blakeromano <blakeromano19@gmail.com>

* Run Make Gen

Signed-off-by: blakeromano <blakeromano19@gmail.com>

Signed-off-by: blakeromano <blakeromano19@gmail.com>
2022-12-22 08:38:24 -08:00
Istio Automation 91287a0b77
Automator: update common-files@master in istio/api@master (#2608) 2022-12-21 07:01:22 -08:00
Istio Automation c440dfe68b
Automator: update common-files@master in istio/api@master (#2607) 2022-12-19 10:56:19 -08:00
Istio Automation e3c63367be
Automator: update common-files@master in istio/api@master (#2606) 2022-12-19 09:04:20 -08:00
Rama Chavali c50e400135
remove parentshutdown duration (#2605)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-12-19 08:58:20 -08:00
Istio Automation 5e592456cb
Automator: update common-files@master in istio/api@master (#2604) 2022-12-17 12:46:05 -08:00
Istio Automation bdacd8f622
Automator: update common-files@master in istio/api@master (#2600) 2022-12-15 13:32:13 -08:00
Istio Automation d85f166d5c
Automator: update common-files@master in istio/api@master (#2599) 2022-12-15 12:37:09 -08:00
Yossi Mesika 63c80143ed
Correct confusing typo in the authz policy proto (#2598)
* Correct confusing typo in the authz policy proto

* make gen
2022-12-15 07:28:09 -08:00
Alan Wang ef5ad47485
fix: envoy statistics config documentation (#2592)
* fix: envoy statistics config documentation

* Update mesh/v1alpha1/proxy.proto

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

* chore: make gen

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
2022-12-15 06:34:08 -08:00
rrobb-aspen bcd542ae5e
Update DestinationRule docs with correct env variable name (#2596)
* update docs to use the correct destination rule flag name for verifyCertAtClient

* add release notes

* fix release notes
2022-12-14 10:54:09 -08:00
Istio Automation 67362179af
Automator: update common-files@master in istio/api@master (#2595) 2022-12-14 08:31:10 -08:00
Istio Automation 7bfae0da82
Automator: update common-files@master in istio/api@master (#2594) 2022-12-14 07:08:09 -08:00
jacob-delgado 82b9feb5a1
Update deps to 1.26 (#2591) 2022-12-13 10:42:08 -08:00
Istio Automation 09895d6947
Automator: update common-files@master in istio/api@master (#2593) 2022-12-12 10:01:11 -08:00
Istio Automation b22f073d16
Automator: update common-files@master in istio/api@master (#2587) 2022-12-07 14:43:08 -08:00
Aryan Gupta 82e7f2d88e
added L7 deny tcp info in v1 authz (#2579) 2022-12-05 13:01:05 -08:00
Istio Automation 2df01fb1b9
Automator: update common-files@master in istio/api@master (#2586) 2022-11-28 09:22:10 -08:00
Fabien Degomme e5d63e4078
Fix a tiny typo in virtualservice documentation (#2581)
specfied -> specified
2022-11-28 06:47:10 -08:00
Daniel Hawton a39e7047c3
remove hide_from_docs for traffic selector (#2575) 2022-11-24 05:58:06 -08:00
Istio Automation 030674c61a
Automator: update common-files@master in istio/api@master (#2578) 2022-11-23 07:13:24 -08:00
Aryan Gupta bd9c37f95e
security policy graduation to v1 (#2553) 2022-11-22 12:03:23 -08:00
Istio Automation 848b520bfe
Automator: update common-files@master in istio/api@master (#2576) 2022-11-22 09:09:23 -08:00
Ravi kumar Veeramally 7a104c8b5f
Enable configuring Envoy QAT private key provider (#2565)
* Add QAT PrivateKeyProvider protobuf in ProxyConfig

Private key provider configuration will be provided by
user in ProxyConfig configuration. This information will
be used to send configuration to gateway/sidecar proxies.

* make gen

* add release notes

* fix comment

* make gen
2022-11-22 08:35:23 -08:00
John Howard e9eb60d280
consistent hash: add warnings (#2573)
I have helped on >10 issues from these confusion, so hoping to clear
things up.
2022-11-21 17:16:43 -08:00
luohua13 417106f309
remove comment about not support regex for delegete vs (#2526)
* Add comment about support regex in delegate vs

Signed-off-by: luohua13 <jcwang@alauda.io>

* Apply suggestions from code review

Apply suggestions form code review.

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

* Update by review comment

Signed-off-by: luohua13 <jcwang@alauda.io>

Signed-off-by: luohua13 <jcwang@alauda.io>
Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
2022-11-21 12:59:57 -08:00
Aryan Gupta 9c7e8716fa
copy jwt claim to header (#2570) 2022-11-17 14:44:03 -08:00
Aryan Gupta 5cbad44e0b
update authz policy docs (#2561) 2022-11-17 11:52:57 -08:00
Istio Automation 74c6801da2
Automator: update common-files@master in istio/api@master (#2569) 2022-11-16 18:42:59 -08:00
Istio Automation 85ebe72307
Automator: update common-files@master in istio/api@master (#2568) 2022-11-16 13:14:57 -08:00
Istio Automation a65564cea5
Automator: update common-files@master in istio/api@master (#2567) 2022-11-16 09:33:57 -08:00
Istio Automation 801a4479ce
Automator: update common-files@master in istio/api@master (#2566) 2022-11-15 10:34:34 -08:00
Istio Automation 4cb737a759
Automator: update common-files@master in istio/api@master (#2564) 2022-11-14 14:43:32 -08:00
zirain 8461c8ae2e
telemetry: add support for reporting_interval (#2556)
* telemetry: add support for tcp_reporting_duration

* update with kuat's suggestion

* update comments
2022-11-14 11:47:33 -08:00
Istio Automation f6adcb0d84
Automator: update common-files@master in istio/api@master (#2563) 2022-11-14 06:39:32 -08:00
Istio Automation 23dd52b23d
Automator: update common-files@master in istio/api@master (#2562) 2022-11-12 22:34:12 -08:00
Istio Automation 5aaa0b4aa1
Automator: update common-files@master in istio/api@master (#2560) 2022-11-11 13:20:10 -08:00
Istio Automation 7c8dc83e05
Automator: update common-files@master in istio/api@master (#2559) 2022-11-09 13:16:42 -08:00
Istio Automation 4e62904f97
Automator: update common-files@master in istio/api@master (#2557) 2022-11-09 11:27:42 -08:00
Antoine Cotten 3017a057f7
Remove remnants of old example in ServiceEntry docs (#2554)
* doc(serviceentry): remove remnants of old example

This part was copied verbatim from workload_entry.proto and is not
relevant here.

* Run gen
2022-11-08 07:27:12 -08:00
Istio Automation 4dfa70bf77
Automator: update common-files@master in istio/api@master (#2551) 2022-11-07 10:11:11 -08:00
Istio Automation 53ba599ff8
Automator: update common-files@master in istio/api@master (#2550) 2022-11-05 17:31:11 -07:00
Istio Automation 0e781924d6
Automator: update common-files@master in istio/api@master (#2549) 2022-11-04 21:45:18 -07:00
Istio Automation 07a71bbb73
Automator: update common-files@master in istio/api@master (#2548) 2022-11-04 16:01:43 -07:00
Faseela K a33bf930c8
Run proto-commit as part of make gen (#2546)
Signed-off-by: Faseela K <faseela.k@est.tech>

Signed-off-by: Faseela K <faseela.k@est.tech>
2022-11-03 13:35:29 -07:00
Istio Automation 64d11c91a3
Automator: update common-files@master in istio/api@master (#2545) 2022-11-03 13:13:50 -07:00
Faseela K ab64abbd19
Run proto-commit (#2544)
Signed-off-by: Faseela K <faseela.k@est.tech>

Signed-off-by: Faseela K <faseela.k@est.tech>
2022-11-03 12:40:49 -07:00
Istio Automation 87895b8944
Automator: update common-files@master in istio/api@master (#2542) 2022-11-03 11:47:50 -07:00
Istio Automation d0f6caddd8
Automator: update common-files@master in istio/api@master (#2540) 2022-11-02 11:08:25 -07:00
Istio Automation 6d9bb8750b
Automator: update common-files@master in istio/api@master (#2535) 2022-11-01 14:25:21 -07:00
zirain 1b2e343342
hpa: Policies move to v2beta2 (#2515)
* hpa: Policies move to v2beta2

* fix proto-commit-force
2022-10-31 11:27:00 -07:00
Zhonghu Xu 4cd2c00bad
Fix abort and delay percentage docs (#2522)
* update comment

* update comment

* rebase
2022-10-31 09:31:00 -07:00
Rama Chavali cb4e5c4e41
remove thrift config from config (#2532)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-10-31 09:18:01 -07:00
Zhonghu Xu 1179712aec
Added listener filter patching (#2514)
* Added listener filter patch api

* make gen

* update comment

* make gen
2022-10-28 03:50:55 -07:00
Istio Automation 53adcb3072
Automator: update common-files@master in istio/api@master (#2529) 2022-10-25 11:06:17 -07:00
Zhonghu Xu 28eb134a48
Update tls des (#2520)
* update minProtocol version comment

* make gen
2022-10-25 03:10:17 -07:00
Istio Automation 6b7b701961
Automator: update common-files@master in istio/api@master (#2525) 2022-10-21 11:39:46 -07:00
jacob-delgado 239492d46a
Update dependencies (#2524) 2022-10-21 11:09:45 -07:00
Istio Automation f26e759dd3
Automator: update common-files@master in istio/api@master (#2523) 2022-10-21 08:24:46 -07:00
Istio Automation ca186c3ab5
Automator: update common-files@master in istio/api@master (#2521) 2022-10-20 19:31:10 -07:00
Istio Automation 5bc6c0c33d
Automator: update common-files@master in istio/api@master (#2518) 2022-10-20 13:50:37 -07:00
Istio Automation 76fb5098d3
Automator: update common-files@master in istio/api@master (#2517) 2022-10-20 07:42:44 -07:00
Zhonghu Xu 902325bb8e
Added note tls version below 1.2 should set compatible cipher suites (#2502)
* Added note tls version below 1.2 should set valida cipher suites

* Address comment

* make gen
2022-10-20 01:02:42 -07:00
Istio Automation 3f64e0c3bc
Automator: update common-files@master in istio/api@master (#2511) 2022-10-17 11:47:10 -07:00
Eric Van Norman a51f8f8389
Run `make gen` with the new build-tools to generate new html (#2509) 2022-10-17 06:58:09 -07:00
Istio Automation d5177ccf88
Automator: update common-files@master in istio/api@master (#2508) 2022-10-14 12:35:26 -07:00
Istio Automation e857dd025d
Automator: update common-files@master in istio/api@master (#2507) 2022-10-14 09:15:23 -07:00
Istio Automation 99a3d7f1f7
Automator: update common-files@master in istio/api@master (#2506) 2022-10-13 11:37:25 -07:00
zirain 036963ee03
telemetry: fix required field (#2504) 2022-10-12 07:51:41 -07:00
Istio Automation 79e860da1b
Automator: update common-files@master in istio/api@master (#2503) 2022-10-11 06:19:12 -07:00
Istio Automation 0d6e2d45f3
Automator: update common-files@master in istio/api@master (#2495) 2022-10-06 09:55:34 -07:00
Istio Automation 4fbb3d451f
Automator: update common-files@master in istio/api@master (#2494) 2022-10-05 10:36:39 -07:00
Istio Automation 2be8da0d50
Automator: update common-files@master in istio/api@master (#2491) 2022-10-04 15:23:38 -07:00
Istio Automation 38de6fbf6f
Automator: update common-files@master in istio/api@master (#2490) 2022-09-29 11:37:07 -07:00
zirain 93870da8d3
telemetry: update doc link (#2488) 2022-09-29 06:50:06 -07:00
zirain 133886f668
fix CODEOWNERS (#2489) 2022-09-29 06:29:07 -07:00
Rajat Sharma 95d2a2fe21
Update ConfigSource.address examples in docs (#2482)
The ConfigSource.address field mentions that the MCP backend address can be an IP address
but doesn't clarify the protocol that needs to be used (xds:// or k8s://) in the docs.

Just adding a line to the doc to make it clear in the docs so that people don't have to dive into
the code to see the possible address formats
2022-09-27 07:43:49 -07:00
Zhonghu Xu 62c7eb9b18
Added `sidecar.istio.io/inject` label (#2486)
* update for sidecar.istio.io/inject

* auto gen
2022-09-23 09:17:36 -07:00
Istio Automation 2bf1ea101b
Automator: update common-files@master in istio/api@master (#2487) 2022-09-23 07:38:35 -07:00
Istio Automation 63fec66805
Automator: update common-files@master in istio/api@master (#2485) 2022-09-22 12:24:41 -07:00
Istio Automation 424771218d
Automator: update common-files@master in istio/api@master (#2484) 2022-09-22 09:50:40 -07:00
Istio Automation 2b52288e30
Automator: update common-files@master in istio/api@master (#2483) 2022-09-19 09:27:23 -07:00
Istio Automation 3579d30fdf
Automator: update common-files@master in istio/api@master (#2481) 2022-09-15 06:33:16 -07:00
Douglas Reid 8b21004e43
tracing: add warnings about OpenCensus configuration (#2480) 2022-09-13 14:36:54 -07:00
Istio Automation 71fdbd6f17
Automator: update common-files@master in istio/api@master (#2479) 2022-09-12 06:20:53 -07:00
Istio Automation 8174a8cb54
Automator: update common-files@master in istio/api@master (#2478) 2022-09-09 06:56:23 -07:00
Ingwon Song 776c2fbb29
Fix the comments explaining Workload mode of gateways (#2476)
* Fix comments

* Update extensions/v1alpha1/wasm.proto

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

* make gen

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
2022-09-07 16:07:38 -07:00
Istio Automation f7758f92e6
Automator: update common-files@master in istio/api@master (#2474) 2022-09-06 15:22:37 -07:00
Ingwon Song d5358d93ef
Add a match scheme to WasmPlugin for passing more specific traffic to Wasm module (#2412)
* Add a match scheme to WasmPlugin to select more specific traffic

* Make gen

* Move PortSelector and WorkloadMode to type/v1beta1/selector.proto

* Reflect the comments

* Catch up the missing "make gen"

* Reflect the comments

* Reflect the comments

* Reflect the comments, again

* Do "make gen"
2022-09-06 08:37:31 -07:00
Istio Automation 96f06acdca
Automator: update common-files@master in istio/api@master (#2471) 2022-09-01 07:23:40 -07:00
Istio Automation 763288e32b
Automator: update common-files@master in istio/api@master (#2467) 2022-08-26 16:04:18 -07:00
John Howard e556b6d7f9
Hide dns certificate management from docs (#2372)
Aligns with https://github.com/istio/istio.io/pull/11369
2022-08-26 10:16:21 -07:00
Eric Van Norman b5f730f29c
Fix typo SKPI->SPKI (#2463) 2022-08-25 07:16:07 -07:00
Istio Automation be140de8ba
Automator: update common-files@master in istio/api@master (#2464) 2022-08-25 06:32:07 -07:00
Istio Automation 59047e0576
Automator: update common-files@master in istio/api@master (#2461) 2022-08-17 06:15:11 -07:00
Istio Automation 329a0c404f
Automator: update common-files@master in istio/api@master (#2459) 2022-08-15 10:48:16 -07:00
Istio Automation 84e2baba34
Automator: update common-files@master in istio/api@master (#2456) 2022-08-12 09:55:11 -07:00
Douglas Reid d4db1bfe2c
telemetry: support lightstep removal and otel addition for envoy tracing (#2421)
* telemetry: support lightstep removal and otel addition for envoy tracing

* remove deprecation warnings
2022-08-11 12:50:45 -07:00
Faseela K ef38878bf5
Update sidecar bind description to include IPv6 (#2454)
* Update sidecar bind description to include IPv6

The bind attribute already works with IPv6, but somehow
the documentation seems to be not updated.

Signed-off-by: Faseela K <faseela.k@est.tech>

* Re-add fullstop

Signed-off-by: Faseela K <faseela.k@est.tech>

Signed-off-by: Faseela K <faseela.k@est.tech>
2022-08-11 00:35:02 -07:00
Rama Chavali 5bf1a9b66f
add maglev load balancer (#2434)
* add maglev load balancer

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* deprecate old and rename new message

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix issues

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* make gen

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-08-09 07:37:37 -07:00
Faseela K 03ff3f4b1d
enhance sidecar IstioIngressListener defaultEndPoint description (#2450)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-08-08 11:06:19 -07:00
Faseela K 426b2649f2
sidecar defaultEndPoints should be IPv6 compatible (#2447)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-08-05 07:54:47 -07:00
Faseela K d1ffe5e901
Running make gen (#2446)
Running make gen for some other change resulted in many additional
changes showing up in my local repo. So pushing a separate review for the same.

Signed-off-by: Faseela K <faseela.k@est.tech>
2022-08-04 07:28:26 -07:00
Eric Van Norman e452305808
Run `make gen` (#2444) 2022-08-03 07:39:24 -07:00
Istio Automation 30b5918d96
Automator: update common-files@master in istio/api@master (#2445) 2022-08-03 07:21:23 -07:00
Istio Automation fbb909b586
Automator: update common-files@master in istio/api@master (#2443) 2022-08-03 06:08:58 -07:00
Istio Automation c141306474
Automator: update common-files@master in istio/api@master (#2440) 2022-08-02 11:04:49 -07:00
Istio Automation e44fdbd44a
Automator: update common-files@master in istio/api@master (#2437) 2022-08-01 12:50:11 -07:00
Istio Automation 26e42ebb96
Automator: update common-files@master in istio/api@master (#2435) 2022-08-01 07:13:07 -07:00
Istio Automation bb85408436
Automator: update common-files@master in istio/api@master (#2433) 2022-07-29 13:34:04 -07:00
Rama Chavali 855072847f
clarify destination rule docs (#2428)
* clarify destination rule docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* review comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-07-29 07:49:09 -07:00
Istio Automation d3a531f09c
Automator: update common-files@master in istio/api@master (#2431) 2022-07-28 10:53:05 -07:00
Istio Automation d4dc373a1d
Automator: update common-files@master in istio/api@master (#2430) 2022-07-26 11:11:48 -07:00
Istio Automation 07eab04c67
Automator: update common-files@master in istio/api@master (#2429) 2022-07-25 08:22:46 -07:00
Istio Automation f06fcca0ad
Automator: update common-files@master in istio/api@master (#2426) 2022-07-21 14:14:44 -07:00
Istio Automation e326339fce
Automator: update common-files@master in istio/api@master (#2424) 2022-07-21 10:07:44 -07:00
Faseela K 0fb0cf61e4
Add auto-san-validation documentation (#2422)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-07-21 09:23:43 -07:00
John Howard 87dfc8c8c0
Deprecate injection annotation (#1997)
* Deprecate injection annotation

    This has been replaced with a label of the same name. The label is
    strictly more powerful since selection is done in Kubernetes, rather
    than in Istio.

    See
    https://preliminary.istio.io/latest/docs/setup/additional-setup/sidecar-injection/#controlling-the-injection-policy

* gen
2022-07-18 12:56:26 -07:00
Istio Automation 9a8420aade
Automator: update common-files@master in istio/api@master (#2416) 2022-07-13 07:44:22 -07:00
John Howard 72aa7f8e98
Validate and fix all samples (#2413)
* Fix broken samples

* run make gen
2022-07-12 19:08:17 -07:00
Istio Automation 2e59f77632
Automator: update common-files@master in istio/api@master (#2415) 2022-07-12 14:14:54 -07:00
Istio Automation c5fd23f942
Automator: update common-files@master in istio/api@master (#2414) 2022-07-12 13:54:53 -07:00
Rama Chavali 3ea9e42702
add comments for stat prefix (#2411)
* add comments for stat prefix

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-07-11 07:51:16 -07:00
sschepens 6a4e706e00
Fix direct response doc (#2410)
* fix grammar

* improve wording
2022-07-08 06:26:29 -07:00
Shriram Sharma 08d6b05bef
unhide tls on sidecar docs (#2382)
Signed-off-by: Shriram Sharma <shriram_sharma@intuit.com>
2022-07-07 16:01:42 -07:00
sschepens de09801552
Virtual Service Direct Response (#2407)
* feature: virtual service direct response

* make gen proto-commit

* add release notes

* use previous tools

* Revert "use previous tools"

This reverts commit 293ec72aaf.

* add bytes example

* add headers example
2022-07-07 15:33:42 -07:00
Rama Chavali 9152602184
add stat prefix for routes (#2405)
* add stat prefix for routes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-07-07 06:48:20 -07:00
Eric Van Norman 5294aace93
Run `make gen` with current tooling (#2409) 2022-07-06 07:17:29 -07:00
Zhonghu Xu d233ac5e12
Deprecate MeshConfig.Certificates (#2392)
* deprecate MeshConfig.Certificates

* make gen

* update comments

* Add release note

* Address comments

* gen files

* Update releasenotes/notes/deprecate-meshconfig-certificates.yaml

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
2022-07-05 06:47:28 -07:00
Istio Automation c89cabc8e0
Automator: update common-files@master in istio/api@master (#2408) 2022-07-05 06:29:28 -07:00
Rama Chavali e4ef3a5ee2
add support for max connection duration (#2341)
* add support for max connection duration

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* generate with correct protoc gen go

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* generate with buf

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* go.sum

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-07-01 22:28:56 -07:00
Laurent Demailly 4f1566985d
Clarify that EnvoyFileAccessLogProvider labels == JSON (#2401)
* Clarify that EnvoyFileAccessLogProvider labels == JSON

* ran make gen, removed backslash _

* review comment/suggestion
2022-06-30 11:56:14 -07:00
Istio Automation 85f4231f00
Automator: update common-files@master in istio/api@master (#2404) 2022-06-30 11:45:14 -07:00
Frank Budinsky 25925643fd
Namespace annotation for cluster leaders (#2385)
* Namespace annotation for cluster leaders

* add release note

* better description

* regen

* spelling

* change default

* change annotation name

* update release note

* change default
2022-06-30 06:44:07 -07:00
Kangwook Lee (이강욱) 8802e3c76f
Fix typo fiter -> filter in EnvoyFilter documentation (#2402) 2022-06-30 06:30:07 -07:00
Istio Automation a0e89271b7
Automator: update common-files@master in istio/api@master (#2400) 2022-06-29 14:41:40 -07:00
Istio Automation 0803428895
Automator: update common-files@master in istio/api@master (#2396) 2022-06-27 06:28:38 -07:00
Istio Automation 0b2c88ec9d
Automator: update common-files@master in istio/api@master (#2395) 2022-06-24 12:25:35 -07:00
Istio Automation 8a45646517
Automator: update common-files@master in istio/api@master (#2394) 2022-06-24 06:29:35 -07:00
Istio Automation 70e99d8c38
Automator: update common-files@master in istio/api@master (#2391) 2022-06-23 12:19:16 -07:00
Istio Automation 4d96c5769f
Automator: update common-files@master in istio/api@master (#2390) 2022-06-23 07:39:20 -07:00
Istio Automation 09a4eda26e
Automator: update common-files@master in istio/api@master (#2389) 2022-06-23 06:51:20 -07:00
Eric Van Norman 3e39d064ab
Update DR indentation with workload selector (#2386) 2022-06-21 08:56:48 -07:00
Istio Automation cb70ff7fdb
Automator: update common-files@master in istio/api@master (#2383) 2022-06-16 14:19:55 -07:00
Jacek Ewertowski f168fe82a3
Make tunnel protocol not required (#2381)
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
2022-06-15 18:03:52 -07:00
Oksana Baranova bfbafaf1ba
Document new sidecar annotation to exclude interfaces (#2374)
* Document new sidecar annotation to exclude interfaces and update auto generated files

* release note

* make gen

* updated as a feature
2022-06-14 09:39:45 -07:00
Istio Automation 31e03cf7a1
Automator: update common-files@master in istio/api@master (#2380) 2022-06-13 14:25:09 -07:00
Istio Automation 482b15cb01
Automator: update common-files@master in istio/api@master (#2379) 2022-06-13 11:43:09 -07:00
Suchith J N 0befc1f907
add documentation for configuring HTTP fault injection by aborting gRPC requests (#2375) 2022-06-13 09:35:09 -07:00
Yang 1afb555ce0
Fix description for warmup. (#2378)
* Fix description for warmup

* Make gen
2022-06-10 08:19:28 -07:00
Graham Woodward 053962c58f
Fix link in MeshConfig doc for enableEnvoyAccessLogService description #2350 (#2376) 2022-06-09 09:58:32 -07:00
Ingwon Song 7f9bb4db42
Extends the scope of ImagePullPolicy to cover http[s]:// and file:// as … (#2336)
* Extends the scope of PullPolicy to cover http\[s\]:// and file:// as well

* add the release note.

* Fix typo

* Update the generated files

* Revert ImagePullPolicy

* Update the generated files.

* Added back the omitted John's change

* Update the generated files.
2022-06-07 14:32:00 -07:00
Faseela K 08a7907ac8
Fix broken DR documentation (#2371)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-06-02 08:32:35 -07:00
LiuDui 2eb8069a88
move node selector annotation to api repo (#2305)
* move node selector annotation to api repo

* update node -> service

* update description
2022-06-01 18:31:09 -07:00
John Howard d3db120e51
Bump dependencies (#2369) 2022-06-01 18:25:09 -07:00
Istio Automation 9c0362530b
Automator: update common-files@master in istio/api@master (#2370) 2022-06-01 09:36:11 -07:00
Jacek Ewertowski 64602ec8d6
Require uppercase value of tunnel protocol (#2367)
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
2022-05-30 18:09:08 -07:00
Nicole LiHui e3c48c9ac3
fix proxy-config reference doc (#2364)
* fix proxy-config reference doc

* Delete fix-proxy-config-doc.yaml

Co-authored-by: John Howard <howardjohn@google.com>
2022-05-25 08:31:40 -07:00
Istio Automation 706b04d34c
Automator: update common-files@master in istio/api@master (#2363) 2022-05-23 11:35:28 -07:00
LiuDui 2b142e5278
update proxy config yaml (#2359) 2022-05-23 10:58:28 -07:00
Istio Automation c4fbcf7a14
Automator: update common-files@master in istio/api@master (#2362) 2022-05-23 10:44:28 -07:00
Istio Automation 9de7d74e0d
Automator: update common-files@master in istio/api@master (#2361) 2022-05-23 09:45:28 -07:00
Istio Automation 9e98e97c6d
Automator: update common-files@master in istio/api@master (#2360) 2022-05-23 06:53:28 -07:00
Istio Automation 5147bd5b2b
Automator: update common-files@master in istio/api@master (#2358) 2022-05-20 17:28:15 -07:00
Istio Automation 27e3bb7f1a
Automator: update common-files@master in istio/api@master (#2357) 2022-05-20 09:33:14 -07:00
Istio Automation 04d671abbc
Automator: update common-files@master in istio/api@master (#2356) 2022-05-19 11:30:58 -07:00
merusso 5b41322084
Fix API rendering issue in ServiceEntry.Resolution (#2354)
* Fix API rendering issue in ServiceEntry.Resolution

URL: https://istio.io/latest/docs/reference/config/networking/service-entry/#ServiceEntry-Resolution

ServiceEntry.Resolution description for `DNS_ROUND_ROBIN` does not
wrap `DNS_ROUND_ROBIN` in Markdown backticks, causing the keyword to
show up as italicized DNS<em>ROUND</em>ROBIN due to the underscores.

This change wraps `DNS` and `DNS_ROUND_ROBIN` in backticks, avoiding
this rendering issue.

Also added a comma in the description.

* Run `make gen`

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
2022-05-19 10:46:59 -07:00
Istio Automation 89828b1f4b
Automator: update common-files@master in istio/api@master (#2351) 2022-05-16 10:51:59 -07:00
Istio Automation a789445e9e
Automator: update common-files@master in istio/api@master (#2349) 2022-05-13 06:14:50 -07:00
Ingwon Song e0015771f0
Hide verification_key from doc and declare that it will be not implemented at this time (#2343) 2022-05-12 08:36:35 -07:00
Istio Automation ee5627d68b
Automator: update common-files@master in istio/api@master (#2345) 2022-05-12 07:38:07 -07:00
Istio Automation 50e8876159
Automator: update common-files@master in istio/api@master (#2344) 2022-05-11 12:27:26 -07:00
Xinnan Wen 579e7e6982
bump k8s hpa api mirrored in operator api to v2beta2 (#2273)
* bump k8s hpa api mirrored in operator api to v2beta2

* rebase and update quantity type

* update proto lock

* add release notes
2022-05-05 15:06:56 -07:00
Faseela K d58d7b7d5f
Document auto_sni behaviour (#2338)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-05-04 11:18:40 -07:00
Istio Automation 6c8aacd553
Automator: update common-files@master in istio/api@master (#2337) 2022-05-03 08:48:36 -07:00
Istio Automation 14e12fe188
Automator: update common-files@master in istio/api@master (#2333) 2022-04-25 20:08:04 -07:00
Istio Automation 657cc9daba
Automator: update common-files@master in istio/api@master (#2330) 2022-04-25 11:30:05 -07:00
Istio Automation 6f257a2631
Automator: update common-files@master in istio/api@master (#2329) 2022-04-25 09:03:04 -07:00
Istio Automation 7285329dce
Automator: update common-files@master in istio/api@master (#2328) 2022-04-22 12:09:51 -07:00
Jacek Ewertowski b6a03a9e47
Extend DestinationRule with TunnelSettings (#2283)
TunnelSettings enables tunneling TCP traffic over other transport or application layers.
Istio will initially support tunneling TCP over HTTP or H2 using CONNECT or POST methods,
but the supported protocols list might be extended in the future.
At the beginning tunnel settings will be applicable to TCP or TLS routes only,
but support for HTTP routes is also on the roadmap.

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
2022-04-20 09:43:08 -07:00
LiuDui 0e003b5fce
Update the package where the variable resides (#2306) 2022-04-19 08:11:15 -07:00
Istio Automation 202d5d4098
Automator: update common-files@master in istio/api@master (#2322) 2022-04-18 13:03:13 -07:00
Faseela K bfb8bb7bb3
Support CredentialName configuration in DR for sidecars (#2321)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-04-15 07:58:22 -07:00
Faseela K 7fbed831d6
Fix workloadSelector example in DestinationRule (#2320)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-04-15 07:11:22 -07:00
Istio Automation c481ee1962
Automator: update common-files@master in istio/api@master (#2317) 2022-04-13 06:19:05 -07:00
John Howard 98b86b0a79
Update common files manually (#2299)
* Update common files manually

* update again
2022-04-12 10:08:44 -07:00
Zhonghu Xu 4fb3190da8
Update Lua filter name (#2311)
* Update lua filter name

* make gen
2022-04-12 10:04:45 -07:00
Istio Automation 524417f68d
Automator: update common-files@master in istio/api@master (#2316) 2022-04-12 08:27:45 -07:00
Istio Automation f5197bb376
Automator: update common-files@master in istio/api@master (#2315) 2022-04-11 15:10:09 -07:00
Istio Automation b7da7525a6
Automator: update common-files@master in istio/api@master (#2313) 2022-04-05 20:03:26 -07:00
Istio Automation 27139ff65c
Automator: update common-files@master in istio/api@master (#2310) 2022-04-01 11:00:53 -07:00
Istio Automation 12356d53fb
Automator: update common-files@master in istio/api@master (#2309) 2022-04-01 08:30:52 -07:00
Istio Automation 30d1b92ecb
Automator: update common-files@master in istio/api@master (#2308) 2022-04-01 07:40:30 -07:00
Istio Automation ab2ad4a576
Automator: update common-files@master in istio/api@master (#2307) 2022-03-31 09:09:08 -07:00
Zhonghu Xu 4a9593d97d
Deprecate Proxyconfig.SDS (#2303)
* Deprecate proxyConfig.SDS

* make gen
2022-03-28 08:53:12 -07:00
Istio Automation 7e59a24ab1
Automator: update common-files@master in istio/api@master (#2302) 2022-03-25 20:03:34 -07:00
Istio Automation 4bbc959aad
Automator: update common-files@master in istio/api@master (#2301) 2022-03-25 10:26:31 -07:00
John Howard 5ebfc628bd
buf: migrate to v1 API (#2297) 2022-03-25 06:19:22 -07:00
Istio Automation 422a18bfed
Automator: update common-files@master in istio/api@master (#2300) 2022-03-24 16:09:21 -07:00
Istio Automation 2e573f8d7a
Automator: update common-files@master in istio/api@master (#2298) 2022-03-24 15:20:52 -07:00
Istio Automation ed22b1f4f3
Automator: update common-files@master in istio/api@master (#2296) 2022-03-24 08:36:58 -07:00
Istio Automation b69d80bfe8
Automator: update common-files@master in istio/api@master (#2295) 2022-03-23 13:45:38 -07:00
John Howard 9d336787a4
Migrate from gogo/protobuf to golang/protobuf (#2293)
* Migrate gogo/protobuf to golang/protobuf

* generated changes

* Fixes to deepcopy
2022-03-23 08:11:37 -07:00
Istio Automation 289bfe748e
Automator: update common-files@master in istio/api@master (#2294) 2022-03-22 16:44:40 -07:00
Istio Automation 6d1c93008e
Automator: update common-files@master in istio/api@master (#2292) 2022-03-22 06:21:25 -07:00
Istio Automation df273f3844
Automator: update common-files@master in istio/api@master (#2291) 2022-03-21 13:47:00 -07:00
lei-tang 2792e813eb
TLS configuration API (phase 1) (#2284)
* TLS configuration API (phase 1)

* Update based on reviewer's comments
2022-03-21 12:50:58 -07:00
Faseela K 7fbbe6f27e
WorkloadSelector support for DestinationRule (#2207)
* WIP: WorkloadSelector support for DestinationRule

Adding support for workloadSelector in DR
as per RFC Simplify Sidecar Egress For MTLS

Signed-off-by: Faseela K <faseela.k@est.tech>

* Fix release-notes

Signed-off-by: Faseela K <faseela.k@est.tech>

* Use istio.type.v1beta1.WorkloadSelector

Signed-off-by: Faseela K <faseela.k@est.tech>

* run proto-commit

Signed-off-by: Faseela K <faseela.k@est.tech>

* Rebase

Signed-off-by: Faseela K <faseela.k@est.tech>

* incorporate review comments and rebase

Signed-off-by: Faseela K <faseela.k@est.tech>

* Additional review comments for usecase explanation

Signed-off-by: Faseela K <faseela.k@est.tech>
2022-03-19 00:58:43 -07:00
Istio Automation 514041962a
Automator: update common-files@master in istio/api@master (#2290) 2022-03-18 17:09:45 -07:00
Douglas Reid c471f4dab0
Telemetry API: Add WorkloadMode selection to Tracing/Logging (#2266)
* Telemetry API: Add TrafficDirection selection to Tracing/Logging

* use workloadmode instead of a new enum

* add release note

* move match clauses to top
2022-03-18 10:40:05 -07:00
John Howard 7c2c37f6d2
Drop generated python protobufs (#2280)
These were added 4 years ago; since then there are no known users. Using
Istio as protobufs is generally not done, and if it is then users can
always generate their own python stubs as they do for java, c++, rust,
etc.
2022-03-17 16:55:44 -07:00
John Howard 773205214e
Remove releaselocks/ (#2288)
We currently have two redundant ways to test for breaking changes in
proto: proto-commit and releaselocks. These do the same thing, but add
substantial noise.

Release locks have also not been updated since 1.6.

The original intent was to test for breaking changes between versions.
However, since we test for breaking changes on each commit, there is no
need for the extra check; if it would have failed as "breaking change
from 1.0 -> HEAD" then it would also fail with "breaking change from
HEAD^ -> HEAD".

Finally, there are some weird LC_ALL issues with sorting that make the
releaselocks really hard to use, especially for newcomers. I spent hours
trying to fix it without success
2022-03-17 15:29:43 -07:00
Istio Automation 1fbbbb17d0
Automator: update common-files@master in istio/api@master (#2289) 2022-03-17 13:38:51 -07:00
John Howard e6bb02d631
operator: use camelCase (#2286)
* operator: use camelCase

operator relies on merging using K8s libraries. K8s libraries use the
`json` tag. protobuf doesn't have a way to configure this (`json_tag` is
for `protobuf.json`, not `json`) and never will.

JSON tag comes from the protobuf name. So we can make it camelCase to
fix the above issue. This will have no impact on unmarshalling with jsonpb -- which we use in
all cases aside from the merging -- any casing is allowed.

This may be a breaking change in the protobuf sense (but NOT to Istio
users), but it doesn't really matter as until last week the operator
protobuf was not a real protobuf at all and relied on `sed` to make it
into the shape we want. Therefor, its not possible someone depended on
the operator protobuf being protobuf-compatible.

* add comment

* gen

* extra line

* comment

* gen
2022-03-17 10:47:52 -07:00
John Howard 5796da5cb8
Regen docs after docs change (#2287) 2022-03-16 17:02:31 -07:00
Istio Automation 83d7aeb063
Automator: update common-files@master in istio/api@master (#2282) 2022-03-15 13:48:40 -07:00
Istio Automation 7232408b16
Automator: update common-files@master in istio/api@master (#2281) 2022-03-15 11:14:40 -07:00
Ravi kumar Veeramally e5c6661929
Enable configuring Envoy private key provider through ProxyConfig (#2261)
* Add PrivateKeyProvider protobuf in ProxyConfig

Private key provider configuration will be provided by
user in ProxyConfig configuration. This information will
be used to send configuration to gateway/sidecar proxies.

* make gen

* make proto-commit

* add release notes
2022-03-15 10:55:40 -07:00
jacob-delgado 5bdbb63aa9
Run make gen (#2279) 2022-03-14 19:49:40 -07:00
Istio Automation 7d8b9cd7cd
Automator: update common-files@master in istio/api@master (#2278) 2022-03-14 17:22:40 -07:00
Istio Automation 612ed38e14
Automator: update common-files@master in istio/api@master (#2277) 2022-03-14 14:00:23 -07:00
John Howard 5f8b290601
operator: move to real protobuf (#2272)
* Remove fixup_structs

* rlock
2022-03-14 10:26:22 -07:00
Istio Automation 9e00f6adcb
Automator: update common-files@master in istio/api@master (#2276) 2022-03-11 14:23:50 -08:00
Istio Automation 8ded074532
Automator: update common-files@master in istio/api@master (#2275) 2022-03-11 13:03:19 -08:00
Istio Automation 0cdff8a276
Automator: update common-files@master in istio/api@master (#2271) 2022-03-04 15:04:28 -08:00
Istio Automation a584d151ef
Automator: update common-files@master in istio/api@master (#2267) 2022-03-03 20:09:55 -08:00
Istio Automation 3e9e3f4470
Automator: update common-files@master in istio/api@master (#2264) 2022-03-03 17:42:54 -08:00
John Howard 3297f46868
Update common (#2263)
* Update common

* lint

* release locks

* fix LC_ALL
2022-03-03 16:01:52 -08:00
Istio Automation 4266cfb35f
Automator: update common-files@master in istio/api@master (#2262) 2022-03-03 10:02:57 -08:00
Istio Automation 7aeedc009f
Automator: update common-files@master in istio/api@master (#2259) 2022-02-28 13:22:49 -08:00
Istio Automation cd99dd5c6c
Automator: update common-files@master in istio/api@master (#2257) 2022-02-28 09:03:39 -08:00
Istio Automation 0511549a0f
Automator: update common-files@master in istio/api@master (#2256) 2022-02-25 10:49:55 -08:00
Istio Automation 1dab9ce1f6
Automator: update common-files@master in istio/api@master (#2255) 2022-02-25 09:51:36 -08:00
zirain e853cf9234
update envoyfilter EXTENSION_CONFIG demo (#2253) 2022-02-22 08:15:16 -08:00
Faseela K d4b274b3ca
Rerun proto-commit (#2252)
Signed-off-by: Faseela K <faseela.k@est.tech>
2022-02-18 11:01:27 -08:00
Xiaopeng Han a5a786dc37
Add HeadersToDownstreamOnAllow to ext_authz (#2241)
* add headers_to_downstream_on_allow

* make gen

* make gen

* minor revise
2022-02-16 06:37:29 -08:00
Istio Automation 07d3915aeb
Automator: update common-files@master in istio/api@master (#2249) 2022-02-11 15:28:55 -08:00
Rama Chavali 6ad61f9856
add warmup duration secs api (#2153)
* add warmup duration secs api

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2022-02-11 09:42:59 -08:00
zirain 49f540feee
fix fuzz (#2242)
* fix fuzz

* fix comment
2022-02-09 19:28:59 -08:00
zirain 4293757b06
WasmPlugin add VmConfig (#2227)
* WasmPlugin add VmConfig

* update comment
2022-02-09 17:52:25 -08:00
John Howard 6c5602216f
Add option to set runtime flags (#2239)
For https://github.com/istio/istio/issues/37202

I was originally going to use env var hacks - we already have similar
for `ISTIO_META` and `XDS_HEADER`. However, envoy runtime vars take the
format of `foo.bar_baz=something`. Env vars do not allow `.`, or really
any special charecters other than `_`, so we cannot easily use them.
Instead, seems better to have an explicit field.
2022-02-09 05:27:46 -08:00
John Howard 49eaa21b27
Re-run gen after buf upgrade (#2236)
This was an intended change in `buf` to not set the protoc version. I
don't know the context. Fixes #2235
2022-02-08 08:30:14 -08:00
Nathan Mittler 1bf4189352
Updating LB enum to allow switch in default (#2232)
Switching the default zero value to UNSPECIFIED. This allows us
to better detect when the user has set a value for the enum. If
the user previously specified ROUND_ROBIN, it will still be
handled properly, but will be assigned a new enum value.

In addition, the value LEAST_CONN is now deprecated in favor of
a new value LEAST_REQUEST. It was previously poorly named and
only remains for backward compatibility.

There is a chance that this change could break existing tools
if they rely on binary marshaling/unmarshaling of the proto.
There are currently no tools within Istio that do this,
however.
2022-02-08 07:22:31 -08:00
Istio Automation f1d102257b
Automator: update common-files@master in istio/api@master (#2233) 2022-02-07 09:00:18 -08:00
Faseela K a053162c63
Running proto-lock (#2230)
As per https://github.com/istio/api#updating `make proto-lock`
has to be run as part of new api changes. I was trying
to run the same for my PR https://github.com/istio/api/pull/2207
and saw some additional changes added in proto.lock which
was not introduced by my change. Hence putting them in a separate
PR here to check if these changes are needed or not.

Signed-off-by: Faseela K <faseela.k@est.tech>
2022-02-07 07:27:06 -08:00
Yangmin Zhu a6aeb68ad2
clarify multiple tokens case for request authentication API (#2220)
* clarify multiple tokens case for request authentication API

* address comments
2022-02-06 19:04:16 -08:00
John Howard 135c864f38
Add NONE mode to interception mode (#2202) 2022-02-03 08:37:03 -08:00
Istio Automation 8b93abbf2e
Automator: update common-files@master in istio/api@master (#2229) 2022-02-03 07:46:23 -08:00
Istio Automation 92d21b0b86
Automator: update common-files@master in istio/api@master (#2228) 2022-01-31 08:41:28 -08:00
Istio Automation dd6bd11b8b
Automator: update common-files@master in istio/api@master (#2224) 2022-01-27 09:16:28 -08:00
Eric Van Norman aa657e277a
lint updates needed for common-files updates (#2226) 2022-01-27 08:54:54 -08:00
Istio Automation b9c4eee3d8
Automator: update common-files@master in istio/api@master (#2223) 2022-01-26 11:29:04 -08:00
Istio Automation 9787acb352
Automator: update common-files@master in istio/api@master (#2221) 2022-01-25 06:09:14 -08:00
John Howard 0168187888
Move more examples to `credentialName` (#2217)
This is the recommended method for 6 releases now. There is still one
reference to the file mount option.
2022-01-24 17:38:47 -08:00
Istio Automation 48ae4a5aab
Automator: update common-files@master in istio/api@master (#2219) 2022-01-24 14:36:11 -08:00
Istio Automation 9e2d15c4e3
Automator: update common-files@master in istio/api@master (#2215) 2022-01-20 15:21:41 -08:00
zirain 9e7be6c8d8
add otel als provider (#2175) 2022-01-20 08:00:43 -08:00
Istio Automation 7f5ee7917e
Automator: update common-files@master in istio/api@master (#2211) 2022-01-19 11:51:25 -08:00
Istio Automation f803dd0df5
Automator: update common-files@master in istio/api@master (#2209) 2022-01-19 07:25:02 -08:00
Douglas Reid a3a1e91b06
proxyconfig(service-cluster): add control for service cluster naming (#2174)
* proxyconfig(service-cluster): add option for controlling service cluster naming

Provide enumerated options for `service_cluster` generation. This can be used to control the service names used in trace spans.

* simplify options

* add release note
2022-01-18 09:33:37 -08:00
zirain ec7515ed52
fix retryOn doc (#2208) 2022-01-18 08:17:05 -08:00
Shriram Sharma 2bcfbc3342
added tls to sidecar api (#2165)
* added tls to sidecar api

* Added comments and examples

* added release notes

* fixed the release notes

* adding the gen files

* fixed the comments based on the review

* added gen files

* fixed the example config yaml

* fixed the comment

* added hide-from-docs

Co-authored-by: Shriram Sharma <shriram_sharma@intuit.com>
2022-01-12 17:43:59 -08:00
Douglas Reid 694b7b802a
pickup SD extension configuration changes (#2206) 2022-01-10 13:15:29 -08:00
Istio Automation cbbeeda0f7
Automator: update common-files@master in istio/api@master (#2205) 2022-01-10 10:16:16 -08:00
linhuatan 880ae5a3b9
use default Telemetry accessLogging provider "envoy" instead of "envoyFileAccessLogger" (#2204) 2022-01-10 08:50:18 -08:00
Steven Landow e200e560af
fix storage version for workload group (#2203) 2022-01-09 19:07:43 -08:00
LiuDui 20feaf2097
fix httpbin.com -> example.com (#2199)
* fix httpbin.com -> httpbin.org

* update httpbin.org -> example.com
2022-01-09 18:44:07 -08:00
Steven Landow 7f464483e0
promote WorkloadGroup to v1beta1 (#2177)
* promote WorkloadGroup to v1beta1

* release note

* rebase and regen
2022-01-07 13:53:14 -08:00
Istio Automation 342601f39a
Automator: update common-files@master in istio/api@master (#2201) 2022-01-07 07:42:47 -08:00
Istio Automation d8722ec3ee
Automator: update common-files@master in istio/api@master (#2200) 2022-01-06 11:00:08 -08:00
Istio Automation 2e464ebf3e
Automator: update common-files@master in istio/api@master (#2198) 2022-01-05 09:02:05 -08:00
zirain e1d5fcda80
fix telemetry doc (#2195)
* fix telemetry doc

* add release notes

* Update releasenotes/notes/fix-telemetry-doc.yaml

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

* Update releasenotes/notes/fix-telemetry-doc.yaml

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

* Update releasenotes/notes/fix-telemetry-doc.yaml

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
2021-12-29 09:29:19 -08:00
Zhonghu Xu 90a4198e89
Loosen weight validation (#2192)
* Loosen route destination weight values

* Make gen

* Update comments

* make gen
2021-12-29 07:25:22 -08:00
LiuDui 7bbe5627ad
move port label to api repo (#2193)
* move port label to api repo

* update p
2021-12-28 10:55:33 -08:00
Istio Automation 259e0a4587
Automator: update common-files@master in istio/api@master (#2194) 2021-12-21 20:08:58 -08:00
Istio Automation 59312d5020
Automator: update common-files@master in istio/api@master (#2190) 2021-12-15 19:02:45 -08:00
Yangmin Zhu 065f3356b5
unhide the dry-run annotation (#2179) 2021-12-12 02:08:20 -08:00
Istio Automation 6cfcd32063
Automator: update common-files@master in istio/api@master (#2188) 2021-12-10 10:40:09 -08:00
Istio Automation 8b15cbd303
Automator: update common-files@master in istio/api@master (#2186) 2021-12-09 12:10:45 -08:00
John Howard 59998fe5db
Enable generation for ProxyConfig docs (#2167)
* Enable generation for ProxyConfig docs

* gen
2021-12-09 10:17:46 -08:00
jacob-delgado ce699ad0a1
Update dependencies (#2185) 2021-12-08 17:19:44 -08:00
peter woodman 3a1ff8c5e8
remove derelict/broken bazel build files (#2182) 2021-12-08 11:43:11 -08:00
Istio Automation e9422d1382
Automator: update common-files@master in istio/api@master (#2184) 2021-12-08 10:09:00 -08:00
Yangmin Zhu 4af825ec1a
update authz and JWT documentation (#2152) 2021-12-07 11:02:10 -08:00
Istio Automation d453d41024
Automator: update common-files@master in istio/api@master (#2180) 2021-12-03 16:47:52 -08:00
Istio Automation de00bed015
Automator: update common-files@master in istio/api@master (#2176) 2021-12-02 09:53:07 -08:00
Takeshi Yoneda e9d1de18c1
doc: fix selector in Wasm Plugin examples. (#2154)
* doc: fix selector in Wasm Plugin examples.

Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>

* make gen

Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2021-11-29 16:00:55 -08:00
Sam Naser 67f86871f2
Align ProxyConfig merge semantics with other Istio resources (#2138) 2021-11-24 06:35:50 -08:00
Istio Automation 4866a573a9
Automator: update common-files@master in istio/api@master (#2169) 2021-11-22 15:06:47 -08:00
Istio Automation 9b2831c2bb
Automator: update common-files@master in istio/api@master (#2168) 2021-11-22 11:22:43 -08:00
John Howard e0ac4ca57e
Fix docs for WASM and Telemtry (#2163)
* Fix docs for WASM and Telemtry

Apparently the spacing is very strict.

Also hide an internal comment

* gen?
2021-11-19 14:19:20 -08:00
Douglas Reid d334c433d5
telemetry: add provider-specific format options (#2110)
* telemetry: add provider-specific format options

* update and add filter

* clean up comments

* add release note

* address review comments

* expose stackdriver logging options

* refactor provider config

* rename fields

* fix default log names
2021-11-19 13:01:59 -08:00
Istio Automation 107306f764
Automator: update common-files@master in istio/api@master (#2162) 2021-11-18 06:57:28 -08:00
mandarjog 0f32f62807
Add ProxyImage to defaultConfig (#2148)
* Add ProxyImage to defaultConfig

Add ProxyImage to defaultConfig and ProxyConfig.
This overrides and eventually takes place of the values API.

Signed-off-by: Mandar U Jog <mjog@google.com>

* remove image name

Signed-off-by: Mandar U Jog <mjog@google.com>

* Remove hub and tag from ProxyImage

Signed-off-by: Mandar U Jog <mjog@google.com>

* add annotation and fix doc

* fix gen
2021-11-15 12:24:51 -08:00
Istio Automation f2972da310
Automator: update common-files@master in istio/api@master (#2151) 2021-11-11 09:09:02 -08:00
Istio Automation 6088f17843
Automator: update common-files@master in istio/api@master (#2150) 2021-11-10 13:39:40 -08:00
Istio Automation 621f0a95f3
Automator: update common-files@master in istio/api@master (#2146) 2021-11-09 06:32:56 -08:00
Yangmin Zhu a1902f2405
update jwt based routing (#2134)
* update jwt based routing

* update

* update

* update comment

* update comment

* add quote

* address comments

* update comment
2021-11-08 13:38:41 -08:00
Istio Automation 55a2ee85f7
Automator: update common-files@master in istio/api@master (#2143) 2021-11-08 07:49:19 -08:00
John Howard ad83eef0a8
Unhide default_http_retry_policy now that it is implemented (#2141) 2021-11-08 06:05:15 -08:00
Istio Automation 665ed2b92d
Automator: update common-files@master in istio/api@master (#2140) 2021-11-03 10:18:50 -07:00
Istio Automation a984c6d43d
Automator: update common-files@master in istio/api@master (#2139) 2021-11-03 10:05:54 -07:00
Rei Shimizu 291096a6ad
add option to skip sidecar generated requestID based sampling decision (#2104)
* add option to skip sidecar generated requestID based sampling decision

* release note

* fix

* fix

* move to telemetry api

* missing file

Signed-off-by: Shikugawa <Shikugawa@gmail.com>

* hide from docs
2021-11-02 16:38:13 -07:00
Istio Automation 41c1a93a58
Automator: update common-files@master in istio/api@master (#2137) 2021-11-01 14:22:07 -07:00
LiuDui 00e465a7d9
move annotation to istio/api (#2130)
* move annotation to istio/api

* update pr
2021-11-01 11:53:14 -07:00
John Howard 2de5b65af1
Fix docs for protocol detection timeout (#2117) 2021-10-20 01:17:32 -07:00
LiuDui fd380ebaca
Move the Annotation to istio/api (#2126)
* Move the Annotation to istio/api

* update pr

* update pr

* update pr
2021-10-19 10:14:15 -07:00
Daniel Grimm ff03a60b15
Make WasmPlugin's sha256 field non-optional (#2125)
We don't use the optional flag on any other Istio resource, and it
creates strange semantics in the generated code. This aligns WasmPlugin
with existing CRDs.
2021-10-14 08:50:06 -07:00
Andrii dac484e848
fix typo in virtual_service.proto (#2122) 2021-10-14 07:56:21 -07:00
Sam Naser 7601b496f6
Add ProxyConfig CRD (#2080)
* Add ProxyConfig CRD

* Iterate on comments

* Update description

* Add proper cue gen annotations

* Add plural

* Add storageVersion cue annotation

* iterate on comments

* improve docs

* improve descriptions

* update release note
2021-10-13 10:42:15 -07:00
Frank Budinsky fc9828a049
Fix telemetry docs not visible in ref docs index (#2123) 2021-10-13 09:31:11 -07:00
Rama Chavali 9f163290e6
fix telemetry docs (#2120)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2021-10-13 09:07:08 -07:00
Frank Budinsky 052946f096
Move WASM plugin doc to proxy_extensions location (#2124) 2021-10-13 08:58:10 -07:00
Istio Automation c7ad1485c2
Automator: update common-files@master in istio/api@master (#2119) 2021-10-11 14:35:27 -07:00
Eric Van Norman 3edfabcd8a
Update CODEOWNERS with change in TOC members (#2118) 2021-10-11 13:29:57 -07:00
Iris cc56825c86
add signer and trustdomains into certificateData (#2090) 2021-10-10 20:27:15 -07:00
John Howard a14094ee40
Pick up recent changes to the SD proto from `istio/proxy` (#2116) 2021-10-06 13:41:25 -07:00
John Howard 8e91abc90f
Move istio/proxy protos into istio/api (#2107)
* Move istio/proxy protos into istio/api

Fixes https://github.com/istio/istio/issues/35210.

This does two things:
* Move some protos we have in istio/istio that are manually generating
the go protos, using an outdated protobuf library and outdated proto.
* Move some protos we have in istio/proxy that are not generating any go
protos at all.

A next step will be to have istio/istio import these go libraries, and
istio/proxy to import these as proto_libraries.

* add README
2021-10-06 10:45:48 -07:00
Lin Sun e039bb6a46
remove the doc for configuring sni-dnat (#2115)
* remove the doc for configuring sni-dnat

* make gen
2021-10-06 03:47:27 -07:00
jacob-delgado 5c0524bcf8
Add support for Envoy's connection type LOGICAL_DNS in ServiceEntry (#2084)
* Add logical to service entry resolution

* Run make gen

* Attempt to come up with a better name instead of LOGICAL

* Run make gen

* Code review comments

* Add release notes

* Update comments

* Update previous definitions

* Fix releasenotes

* Run make gen

* Fix release notes

* Fix release notes
2021-10-04 22:43:55 -07:00
Istio Automation 2493ccebb6
Automator: update common-files@master in istio/api@master (#2114) 2021-10-04 21:35:24 -07:00
Istio Automation 32172e653f
Automator: update common-files@master in istio/api@master (#2112) 2021-10-04 15:48:12 -07:00
Daniel Grimm 37d9b25d04
Fix config_source in EnvoyFilter docstring (#2020) 2021-10-04 09:56:42 -07:00
Yangmin Zhu 5eaecec55c
support x-jwt-claim in request authentication (#2105)
* support x-jwt-claim in virtual service

* update

* update to request authN

* revert vs

* Apply suggestions from code review

Co-authored-by: Sven Mawson <sven@google.com>

* update

Co-authored-by: Sven Mawson <sven@google.com>
2021-10-04 09:49:41 -07:00
John Howard 21d8f992ec
update protoc version (#2109) 2021-10-01 13:53:33 -07:00
Istio Automation a682e8054f
Automator: update common-files@master in istio/api@master (#2111) 2021-10-01 11:23:18 -07:00
Rama Chavali 37753c5180
update docs for source ip support (#2096)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2021-09-21 19:37:33 -07:00
Dhi Aurrahman f167acc88a
docs: Use fromHeaders instead of jwtHeaders field in JWTRule example (#2102)
This patch fixes the use of jwtHeaders as a field in the example (there
is no jwtHeaders field). This is tipped by issue a comment here:
https://github.com/envoyproxy/envoy/issues/11672#issuecomment-653404950.

Signed-off-by: Dhi Aurrahman <dio@rockybars.com>
2021-09-17 07:45:48 -07:00
Jianfei Hu 7f52510f94
Clarify request authentication root namespace scope. (#2086)
* Clarify request authentication root namespace scope.

* typo fix.

* make gen.

* make gen.

* clarified all workloads instead.

* update with authz example.

* Update security/v1beta1/request_authentication.proto

Co-authored-by: Sven Mawson <sven@google.com>

* Update security/v1beta1/request_authentication.proto

Co-authored-by: Sven Mawson <sven@google.com>

* update the doc gen.

Co-authored-by: Lin Sun <lin.sun@solo.io>
Co-authored-by: Sven Mawson <sven@google.com>
2021-09-14 11:39:02 -07:00
Lin Sun 75b5398bac
update cluster label docs (#2076)
* update cluster label

* update make gen files

* update based on steven's comment

* update with input from Nathan

* make gen
2021-09-14 08:05:58 -07:00
Istio Automation 802725dc10
Automator: update common-files@master in istio/api@master (#2100) 2021-09-13 13:40:02 -07:00
Istio Automation adcacf4f85
Automator: update common-files@master in istio/api@master (#2099) 2021-09-13 08:28:22 -07:00
John Howard d6ce87e3e1
Add scheme and port to redirect (#2088)
* Add scheme and port to redirect

* Switch to enum

* Apply Louis' suggestions
2021-09-10 14:07:58 -07:00
Istio Automation ee14ffeb50
Automator: update common-files@master in istio/api@master (#2095) 2021-09-10 13:33:32 -07:00
Istio Automation 4c3fa7872b
Automator: update common-files@master in istio/api@master (#2092) 2021-09-08 12:13:35 -07:00
Yangmin Zhu 75bb24b620
add disable_clear_route_cache to the internal authn filter config (#2089)
* add clear_route_cache to the internal authn filter config

* update
2021-09-08 12:05:08 -07:00
Istio Automation 2b8d0a8546
Automator: update common-files@master in istio/api@master (#2091) 2021-09-08 11:58:04 -07:00
Rama Chavali eb79c65728
update api docs for retriable status codes (#2083)
* add api for retriable status codeS

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* remove gateway error

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2021-08-31 19:37:35 -07:00
John Howard 2c3ea0fbcb
Add new guidelines to API compatibility (#2061)
* Add new guidelines to API compatibility

* Update GUIDELINES.md

Co-authored-by: Neeraj Poddar <nrjpoddar@gmail.com>

* Add exceptions clause

Co-authored-by: Neeraj Poddar <nrjpoddar@gmail.com>
2021-08-30 17:11:14 -07:00
Zhonghu Xu 3f6d9b827a
Update `failoverPriority` comments (#2085)
* update failoverPriority docs

* update failoverPriority docs

* Address comment

* make gen
2021-08-30 08:35:26 -07:00
Istio Automation dfe4dfa4ca
Automator: update common-files@master in istio/api@master (#2087) 2021-08-27 11:56:17 -07:00
Zhonghu Xu 4e21675274
hide deprecated `mirror_percent` from docs (#2081)
* hide deprecated mirror_percent

* make gen

* make proto-commit
2021-08-19 07:53:25 -07:00
Eric Van Norman 1b724d2c57
Fix for istio.io linter (#2078) 2021-08-17 06:46:38 -07:00
Neeraj Poddar f8889a3464
Add global HTTP retry policy API in MeshConfig (#2058)
* Add global HTTP retry policy API in MeshConfig

Addresses: https://github.com/istio/istio/issues/6861

* Add release notes

* Add release notes

* Clarify disabling retry policy

* Fix disable comment

* Clarification about perRetryTimeout field

* Added hide_from_docs flag
2021-08-10 13:59:15 -07:00
Zhonghu Xu 94eb838216
General topology aware loadbalancing (#2043)
* Support general topology aware loadbalancing

* fix comments

* make gen

* make proto-commit
2021-08-09 02:30:20 -07:00
Istio Automation 2720268d18
Automator: update common-files@master in istio/api@master (#2074) 2021-08-06 12:28:55 -07:00
Eric Van Norman a21e8d7631
Update envoy TLS configuration link (#2070) 2021-08-04 19:56:30 -07:00
John Howard 776f030381
Fix docs for telemetry (#2064) 2021-08-03 09:31:01 -07:00
Suchith J N ee8471aaf5
fix `credential_name` documentation (#2066)
Signed-off-by: su225 <suchithjn22@gmail.com>
2021-08-03 07:55:39 -07:00
Istio Automation 97f04b08a7
Automator: update common-files@master in istio/api@master (#2069) 2021-08-02 08:01:04 -07:00
Kenan O'Neal 0412822e64
Introduce InsecureSkipVerify to DR (#2040)
* Introduce InsecureSkipVerify to DR

* hide VerifyCertificateAtClient in ProxyConfig to eventually be
removed.
* Add InsecureSkipVerify bool to allow users to prevent any certificate
validation on desired external host.

* Updated release-notes and depricate VerifyCertificateAtClient

* Update release-notes to specify changes and purpose for adding
InsecureSkipVerify and deprecating VerifyCertificateAtClient
* VerifyCertificateAtClient gets deprecated instead of only hidden

* Update release-notes area to security

* Make grammatical corrections

* Rebased and ran make gen

* Clarify release notes and documentation

* Improve documentation clarity

* Fix typo

* Make clarification edits

* Improve description of InsecureSkipVerify

* Correct documentation
2021-07-29 09:18:23 -07:00
Daniel Grimm 5e10e5cff1
Add WasmPlugin API (#1940)
* Add WasmPlugin API

* Renamed workload_selector to `selector`
* Rename signing_key -> verification_key
* Unify structure, make pull_secret a single string, config ->
pluginConfig
* add sandbox_config, plugin_name
* Update release note
* Fix typos

* Make sure to preserve unknown fields in pluginConfig

* Improve plugin_name comment

* Move selector to the top

* Remove sandbox_config

* Inline verification_key

* Improve sha256 docstring

* Improve pull_policy docstring

* Remove dependency on EnvoyFilter, add PluginPhase

* Add example

* Add example

* Address comments

* Address more comments

* Fix CRD generation

* Improve comments

* Fix examples (snake_case to camelCase)

* Review comments

- Clarify default for priority
- Add UNSPECIFIED_POLICY value
- Change sha256 behaviour
2021-07-27 14:05:57 -07:00
Istio Automation 325052a3e0
Automator: update common-files@master in istio/api@master (#2065) 2021-07-23 16:48:49 -07:00
Istio Automation 36794c332d
Automator: update common-files@master in istio/api@master (#2062) 2021-07-22 13:52:39 -07:00
Istio Automation 327bcef806
Automator: update common-files@master in istio/api@master (#2060) 2021-07-19 17:33:05 -07:00
Istio Automation 8895a23b81
Automator: update common-files@master in istio/api@master (#2059) 2021-07-19 16:32:03 -07:00
Istio Automation b719f46511
Automator: update common-files@master in istio/api@master (#2051) 2021-07-13 11:49:33 -07:00
Istio Automation b042573123
Automator: update common-files@master in istio/api@master (#2050) 2021-07-11 15:27:28 -07:00
Istio Automation 70c7701149
Automator: update common-files@master in istio/api@master (#2048) 2021-07-07 08:15:22 -07:00
Douglas Reid 527b9df380
Add support to Telemetry API for metrics and access logging (#1766)
* Add alpha Telemetry API to allow metrics customization

* rebase + update

* remove telemetryrulematch and add access logging

* refactor tag overrides and address comments

* more refactoring

* updates to match comments

* remove all_metrics from API

* add metric selector with client/server terminology

* add comment for TagOverride

* Add release note

* clean up some comments

* fix oneof name

* fix release note

* address review comments

* clarify logging enablement example
2021-07-02 10:07:16 -07:00
Istio Automation 501e03a831
Automator: update common-files@master in istio/api@master (#2044) 2021-07-02 07:04:07 -07:00
John Howard 88e56fb49a
Add tooling to automatically sync proto versions (#2021)
* Add script to sync protobuf versions

* Updates to protobuf files

* Update generated code

* Fix release locks
2021-07-01 11:52:09 -07:00
Istio Automation 2cccf2ebd3
Automator: update common-files@master in istio/api@master (#2042) 2021-06-30 12:03:41 -07:00
Shamsher Ansari 487339ae34
Use RE2 instead of ECMAscript regex-based match (#1968) 2021-06-30 08:08:43 -07:00
Shamsher Ansari c26b0c624c
Fix jwt rule note (#2025)
* Fix jwt rule note

* use jwksUri for docs
2021-06-29 23:20:52 -07:00
John Howard 4cf3c65942
Update TOC codeowners (#2037) 2021-06-29 19:07:55 -07:00
Istio Automation 3081382104
Automator: update common-files@master in istio/api@master (#2039) 2021-06-29 09:54:01 -07:00
Yangmin Zhu a1354df097
fix the html issue of unescaped < character (#2034) 2021-06-23 18:50:53 -07:00
Frank Budinsky 0ee0abf2a9
Components for remote and config cluster installations. (#2030)
* Components for remote and config cluster installations.

* regen

* revert to istiod_external

* regen

* proto.lock

* undo

* Revert "regen"

This reverts commit 1090057802.

* Revert "proto.lock"

This reverts commit 1a321e4a2f.

* regen

* update proto.lock
2021-06-22 13:21:55 -07:00
Zhonghu Xu c03e2efc07
Updated clusterMatch docs (#2022)
* Update comments for cluster match

* auto gen

* Fix comment
2021-06-21 21:50:30 -07:00
Istio Automation 24da9d14fb
Automator: update common-files@master in istio/api@master (#2031) 2021-06-21 12:29:37 -07:00
Istio Automation 860ad87f26
Automator: update common-files@master in istio/api@master (#2029) 2021-06-21 08:45:44 -07:00
Neeraj Poddar a1ac914aea
Updated CODEOWNERS to reflect the surviving TOC (#2024) 2021-06-17 11:36:32 -07:00
Istio Automation 2a18daae4e
Automator: update common-files@master in istio/api@master (#2026) 2021-06-17 07:06:39 -07:00
Istio Automation 66712274f5
Automator: update common-files@master in istio/api@master (#2023) 2021-06-15 10:14:20 -07:00
mandarjog 260a45372f
Add explicit order to patch sets. (#1975)
* Add comments about ordering

* Change to priority
2021-06-11 08:21:47 -07:00
Frank Budinsky 4f71f5a6cb
Remove istiodRemote component (#2018) 2021-06-08 08:40:05 -07:00
Istio Automation 6d9b95af35
Automator: update common-files@master in istio/api@master (#2019) 2021-06-08 06:42:53 -07:00
Long Dai 9a4239731e
docs: clear sourceLabels (#1955)
* docs: clear sourceLabels

Signed-off-by: Long Dai <long0dai@foxmail.com>

* feedback

Signed-off-by: Long Dai <long0dai@foxmail.com>

* feedback

Signed-off-by: Long Dai <long0dai@foxmail.com>
2021-06-01 07:59:14 -07:00
Istio Automation 6009ec604e
Automator: update common-files@master in istio/api@master (#2011) 2021-05-28 08:06:23 -07:00
Kuat 4c02bf77ab
envoyfilter: add bootstrap patch (#1974)
* envoyfilter: add bootstrap patch

Signed-off-by: Kuat Yessenov <kuat@google.com>

* review

Signed-off-by: Kuat Yessenov <kuat@google.com>
2021-05-27 13:45:48 -07:00
Istio Automation 5f382a082d
Automator: update common-files@master in istio/api@master (#2010) 2021-05-27 12:57:28 -07:00
John Howard a76af2adff
Add extra note about workload restart for proxy config (#2009) 2021-05-26 10:49:38 -07:00
Istio Automation ec23a4cdbf
Automator: update common-files@master in istio/api@master (#2008) 2021-05-25 17:48:57 -07:00
Istio Automation aadf1ba23c
Automator: update common-files@master in istio/api@master (#2007) 2021-05-25 17:10:56 -07:00
Istio Automation 56a1fa0701
Automator: update common-files@master in istio/api@master (#2006) 2021-05-25 13:48:51 -07:00
Istio Automation fe0c3c3753
Automator: update common-files@master in istio/api@master (#2005) 2021-05-25 10:23:33 -07:00
John Howard 6b0cffcd51
Document how to configure proxy config (#1998)
* Document how to configure proxy config

* document merge
2021-05-25 08:38:37 -07:00
Istio Automation 8e3314c467
Automator: update common-files@master in istio/api@master (#2001) 2021-05-20 16:08:35 -07:00
Istio Automation a0740e2836
Automator: update common-files@master in istio/api@master (#2000) 2021-05-20 10:35:53 -07:00
Istio Automation 6f705c42b0
Automator: update common-files@master in istio/api@master (#1996) 2021-05-19 11:50:20 -07:00
Rama Chavali ac5140ab4e
rename field (#1994)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2021-05-19 06:57:33 -07:00
Rama Chavali 375754e6d4
add local origin error configuration to destination rules (#1989)
* add local origin error configuration to destination rules'

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* address comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2021-05-17 21:28:23 -07:00
jacob-delgado 1b15945e40
make proto-commit (#1990) 2021-05-16 19:34:34 -07:00
Oliver Liu f296986a5b
Security fix on URL normalization (GoldPanda). (#1982)
* Security fix on URL normalization options (GoldPanda).

* Add release notes

* Small fix.
2021-05-12 09:26:28 -07:00
Istio Automation 02def630fd
Automator: update common-files@master in istio/api@master (#1976) 2021-05-07 07:16:35 -07:00
Istio Automation 52322b4d66
Automator: update common-files@master in istio/api@master (#1969) 2021-05-04 07:01:33 -07:00
Tom T 2af152115f
Change snake_case to camelCase for yaml documentation (#1964)
* Change snake_case to camelCase for yaml documentation

* Run make gen
2021-05-03 10:10:55 -07:00
John Howard 1c84260bf4
Document annotations used for injection (#1956)
These are not new annotations, but backfilling ones used in injection
that were not previously in the API repo.
2021-04-29 11:47:55 -07:00
Lin Sun 039c2e8d4b
Clarify docs and correct spaces (#1962)
* clean up

* clarify doc and correct spaces

* make gen update
2021-04-27 09:14:31 -07:00
Morven Cao 15c6bb524b
fix incorrect type for maxUnavailable/minAvailable of PDB. (#1952) 2021-04-25 19:29:00 -07:00
Istio Automation 24c65c0415
Automator: update common-files@master in istio/api@master (#1958) 2021-04-22 13:28:37 -07:00
Rei Shimizu 17514f58ee
add Apache SkyWalking tracer support (#1909)
* add Apache SkyWalking support

* fix

* fix
2021-04-16 10:03:58 -07:00
John Howard f5ea9a74da
Fix extra space in DR example (#1951)
I did a quick grep, sems these are the only cases of this.
2021-04-13 19:33:59 -07:00
Istio Automation a100387240
Automator: update common-files@master in istio/api@master (#1950) 2021-04-12 18:28:45 -07:00
Kebe 90c8315bf6
Fix BoolValueForPB.GetValue allow nil (#1939) 2021-04-09 13:57:42 -07:00
Eric Van Norman 9abf4c8720
Pick up missed automator common-files update (#1947) 2021-04-07 09:16:00 -07:00
Eric Van Norman e45b298e48
Update common files in `master` branch (#1946) 2021-04-07 07:51:28 -07:00
Istio Automation 3ccbde05f5
Automator: update common-files@master in istio/api@master (#1943) 2021-04-06 13:52:09 -07:00
Istio Automation ae69227b32
Automator: update common-files@master in istio/api@master (#1942) 2021-04-06 13:39:09 -07:00
Yangmin Zhu a9c5294cac
change ext-authz feature to experimental (#1936) 2021-04-05 19:43:26 -07:00
Istio Automation c7ce5c6570
Automator: update common-files@master in istio/api@master (#1935) 2021-04-05 09:33:08 -07:00
Douglas Reid ad94225e0b
Use wrapper types for Tracing fields (#1934) 2021-04-02 19:16:47 -07:00
Kebe 9780eca5ea
Add sidecar.istio.io/agentLogLevel annotation (#1903)
* Add sidecar.istio.io/agentLogLevel annotation

* + add release note

* > fix error change
2021-04-02 08:43:33 -07:00
Yangmin Zhu 8d2a4ee53a
update the ext-authz extension provider and promote to alpha (#1926)
* ext-authz: promote to alpha

* address comments

* update comment

* address comments

* update

* address comments

* update comment
2021-04-01 21:22:07 -07:00
Kenshin Chen a83ee6cc20
Fix AuthorizationPolicy Doc (#1895)
* Fix AuthorizationPolicy Doc

* Fix AuthorizationPolicy Doc
2021-04-01 20:58:42 -07:00
Yangmin Zhu e3f75bd8b6
add dry-run annotation (#1933) 2021-03-31 16:20:43 -07:00
Douglas Reid 8cb7ec8d3d
Fix telemetry API docs on inheritance (#1932)
* Fix telemetry API docs on inheritance

* Remove confusion note

* absent -> missing
2021-03-30 09:35:03 -07:00
Ryota 1a327717c7
Add info about `portLevelMtls` requirement of workload selector with PeerAuthentication (#1928)
* Clarify portLevelMtls requirement

* Run make gen

* Update security/v1beta1/peer_authentication.proto

Co-authored-by: Sven Mawson <sven@google.com>

* Rerun make gen

Co-authored-by: Sven Mawson <sven@google.com>
2021-03-29 11:43:44 -07:00
Ryota c35b8e39f3
Adjust VirtualService documentation format (#1929)
* Adjust document format

* Run make gen
2021-03-29 10:07:36 -07:00
Douglas Reid 68cba41b5a
Add initial Telemetry API with Tracing support for sampling and custom tags (#1740)
* Add initial Telemetry API definition

* fix names and comments

* Rename TracingConfig to Tracing

* Remove TelemetryProviders and consolidate to just Tracing providers

* add new extension providers to oneof

* Remove providers from telemetry API

* Add release note

* Address comments

* Add back providers, remove match, simplify Trace API

* Collapse TracingRule into Tracing and remove deprecations in ProxyConfig

* Move from address to service + port in providers

* Remove exclude_mesh_tags

* Revert to boolean control of span reporting

* Cleanup documentation

* Replace subdomain with telemetry type
2021-03-25 21:01:24 -07:00
Shamsher Ansari ec7ef4cd6e
Fix broken link for auth location (#1919) 2021-03-22 07:50:30 -07:00
Rama Chavali 2ba4f352b7
unhide bind in gateway api (#1914)
* unhide bind in gateway api

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update doc

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update comment

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2021-03-20 05:23:17 -07:00
Shamsher Ansari fbefbc937c
Add more info if custom ns is used to install Istio (#1894)
* Add more info if custom ns is used to install Istio

* update comments
2021-03-18 03:47:59 -07:00
Shamsher Ansari 4fccb61ace
Fix broken link for AuthorizationPolicy (#1907) 2021-03-16 06:34:15 -07:00
Istio Automation e8338beaf6
Automator: update common-files@master in istio/api@master (#1916) 2021-03-15 08:59:19 -07:00
Brian Avery 92d4fc7ec8
Minor grammar fix (#1913) 2021-03-12 19:16:27 -08:00
Nathan Mittler 8b90243cb0
Fixing docs for cluster_local defaults. (#1911) 2021-03-11 13:30:14 -08:00
Lin Sun a4bf146367
clean up (#1910) 2021-03-10 21:27:45 -08:00
Istio Automation 003b5cf6f6
Automator: update common-files@master in istio/api@master (#1904) 2021-03-04 19:54:42 -08:00
John Howard 2e1e4d7e6f
Update CRDs to v1 (#1900) 2021-03-02 13:10:31 -08:00
Istio Automation f708776cba
Automator: update common-files@master in istio/api@master (#1901) 2021-03-01 17:07:19 -08:00
Istio Automation 35b7ba8ee9
Automator: update common-files@master in istio/api@master (#1898) 2021-03-01 08:52:41 -08:00
Istio Automation 53be27d819
Automator: update common-files@master in istio/api@master (#1897) 2021-02-26 10:49:57 -08:00
Istio Automation c60ae35109
Automator: update common-files@master in istio/api@master (#1896) 2021-02-26 08:21:11 -08:00
Istio Automation 68975986cc
Automator: update common-files@master in istio/api@master (#1872) 2021-02-19 06:27:45 -08:00
Eric Van Norman 724943e9da
Update to use local-lint-protos (#1886) 2021-02-18 17:04:45 -08:00
Peter Jausovec d9395bd405
Fix typo in peer authentication docs (#1889)
* Fix typo in peer authenticaion docs

* Updates after make gen
2021-02-18 16:53:48 -08:00
John Howard 6e9e4699ed
Validate api docs, and fix issues (#1885)
* Fix invalid examples and alpha/beta discrepencies

* gen

* license

* lint

* missing space

* gen
2021-02-17 09:30:48 -08:00
Eric Van Norman 36a7e33783
gofumpt operator/v1alpha1/deepcopy.go (#1882) 2021-02-17 08:39:45 -08:00
John Howard 67bbb591b5
Update dependencies to mirror istio/istio (#1862)
Fixes https://github.com/istio/api/issues/1859
2021-02-17 06:44:25 -08:00
Sam Naser dee73e3940
Add default revision to operator (#1806)
* add default_revision and revision_tags to operator

* remove revision_tags from operator.proto

* add release note

* fix conflicts
2021-02-17 05:05:26 -08:00
Eric Van Norman ffc0cce815
Fix for some text that went missing (#1879) 2021-02-10 11:32:53 -08:00
Jason Wang 380e1355e0
Define Istio Stability Levels (#1817)
* Define Istio stability levels

* newline

* rename file
2021-02-08 11:44:00 -08:00
Zack Zhang 10292fe09c
fix doc (#1877)
Signed-off-by: zackzhangkai <zhangkaiamm@gmail.com>
2021-02-08 09:04:40 -08:00
Ed Snible 2e18dbeda2
Typo: entirity for entirety (#1875) 2021-02-05 09:36:02 -08:00
Etienne Fontaine 10e1f71c93
[#30611] Fix perTryTimeout documentation to be reflect the code (#1873) 2021-02-05 00:07:39 -08:00
Harvey Xia cb887ae4ac
add discoverySelectors to meshConfig (#1830)
* add discoverySelectors to meshConfig

* release notes

* add example and reference to k8s doc

* fix release note

* revise copy
2021-02-04 07:23:16 -08:00
Oliver Liu 8779b36cec
Add root configuration API. (#1848)
* Add root configuration API.

* Updates according to the feedback.

* Small update.

* Fixes.

* Add release notes.

* Rename the message.

* Small fixes on comments.

* Small fix
2021-02-03 16:36:27 -08:00
John Howard 27f2080b14
Update auto_passthrough docs to include enablement reqs (#1679)
Its valid today, but will be more important when this is not default
post https://github.com/istio/istio/pull/27775
2021-02-02 14:05:37 -08:00
Yangmin Zhu 4da173f697
ext-authz: unhide the CUSTOM action for 1.9 (#1864) 2021-02-01 17:39:20 -08:00
bufdev 20b9013774
Use buf for protobuf linting (#1863) 2021-02-01 11:13:42 -08:00
Istio Automation 186a0fdc95
Automator: update common-files@master in istio/api@master (#1868) 2021-02-01 08:41:22 -08:00
Morven Cao e51932d667
add volume and volumeMount to k8s settings. (#1812)
* add volume and volumeMount to k8s settings.

* add release note.

* rebase code.
2021-02-01 00:07:11 -08:00
Istio Automation bfeb106973
Automator: update common-files@master in istio/api@master (#1865) 2021-01-30 20:40:48 -08:00
Nathan Mittler 684bb8966a
Updating initial stability of subzone and network labels (#1853)
subzone: has been around for a while. It's tested and I believe some folks are using it in production. Probably at least beta.

network: fundamental label used by multicluster in particular for configuring multi-network scenarios. Since multicluster as a feature is beta, it makes sense that the stability here matches.
2021-01-29 12:19:41 -08:00
John Howard 5bd48e1445
Workaround golang bug causing make gen to fail (#1861)
Workaround https://github.com/golang/go/issues/43994

Run tidy after download
2021-01-29 08:44:43 -08:00
Istio Automation 6700cb8f5a
Automator: update common-files@master in istio/api@master (#1858) 2021-01-28 18:44:39 -08:00
John Howard 2bcca53775
Move protobuf generation/configuration to buf (#1833)
https://docs.buf.build/

Buf is the successor to https://github.com/uber/prototool which we
already use for linting.

This dramatically simplifies our Makefiles, which are both extremely
complicated and have led to numerous bugs historically, such as
https://github.com/istio/api/issues/1678.

This will make changes to the generation much simpler as well. For
example, to migrate to gogo protobuf, we will just need to change `gogo`
-> `go` in one location, rather than trying to wrangle 500 lines of
Makefiles. Additionally, its quite a bit faster - the whole proto stuff
is done in <1s now.
2021-01-28 17:47:43 -08:00
Fernando Cainelli bf37a09823
Fix MeshNetworks example documentation (#1855) 2021-01-27 17:36:59 -08:00
Istio Automation 610f6d12f3
Automator: update common-files@master in istio/api@master (#1856) 2021-01-27 10:23:56 -08:00
Jason Wang ea386e720d
Add CRD labels to WorkloadGroup (#1844) 2021-01-25 12:38:20 -08:00
Nathan Mittler a7d07ed40d
Removing unused labels. (#1839)
Also removing duplicate TLSMode label that was incorrectly included in the annotations list. It was never used by istio/istio.
2021-01-21 11:12:46 -08:00
Istio Automation 4153ff6a95
Automator: update common-files@master in istio/api@master (#1841) 2021-01-21 11:05:24 -08:00
Istio Automation 083fd257dd
Automator: update common-files@master in istio/api@master (#1840) 2021-01-21 10:05:08 -08:00
Istio Automation 6e81859132
Automator: update common-files@master in istio/api@master (#1838) 2021-01-21 08:17:00 -08:00
Istio Automation fcb369071f
Automator: update common-files@master in istio/api@master (#1837) 2021-01-20 16:18:39 -08:00
Yangmin Zhu ccade247d8
fix request authentication comment (#1786) 2021-01-20 15:40:33 -08:00
Istio Automation e39c8e4057
Automator: update common-files@master in istio/api@master (#1835) 2021-01-20 10:46:20 -08:00
John Howard edb1e1a51c
Update makefile for new docs plugin (#1821)
* Update makefile for new docs plugin

* Update common
2021-01-20 07:41:17 -08:00
Istio Automation b073e1b707
Automator: update common-files@master in istio/api@master (#1832) 2021-01-19 11:56:06 -08:00
John Howard da389fc06d
Update common-protos (#1815)
Pulls in update from common files. A bunch of files we don't use were
removed. For some reason the locking mechanism is asserting stuff in
common-protos when it probably shouldn't. I can look into this, but for
now just updated the locks.
2021-01-15 08:29:53 -08:00
jacob-delgado f46c629bdb
Use gogo/protobuf 1.3.2 (#1816)
* Use gogo/protobuf 1.3.2

* Run make gen

* Run go get istio.io/gogo-genproto

* Run make clean gen
2021-01-14 16:54:20 -08:00
jacob-delgado 328c3a3713
Generate protos (#1822)
* Run make clean gen

* Run make proto-commit
2021-01-13 16:39:59 -08:00
Istio Automation 01ce8d4813
Automator: update common-files@master in istio/api@master (#1820) 2021-01-13 07:55:05 -08:00
Istio Automation 0b7685835d
Automator: update common-files@master in istio/api@master (#1819) 2021-01-13 06:21:05 -08:00
John Howard 155b39af83
Cleanup generated files that we no longer generate (#1781) 2021-01-12 18:35:10 -08:00
John Howard 0ef6f5608b
Mark port as required field for health check (#1770)
Matches Kubernetes
2021-01-12 14:25:16 -08:00
Eric Van Norman fc5e0220c8
make update-common followed by a make gen (#1810) 2021-01-12 08:07:11 -08:00
Nathan Mittler 13cd1e2d91
Updating description for canonical service labels. (#1811)
From post-merge comments on https://github.com/istio/api/pull/1804
2021-01-11 18:54:28 -08:00
Nathan Mittler 57c66a1898
Add documentation for labels (#1804)
Keeping the existing labels.go for now until the main code branch is migrated over to use the new variables.

Will also remove security.istio.io/tlsMode (which always was a label, not an annotation) from annotations once the main code branch is migrated over to the label variable.
2021-01-11 15:27:27 -08:00
Istio Automation 0575f65cd5
Automator: update common-files@master in istio/api@master (#1808) 2021-01-09 08:32:59 -08:00
Istio Automation d00a26bf7b
Automator: update common-files@master in istio/api@master (#1807) 2021-01-08 16:54:10 -08:00
Istio Automation a205c627e4
Automator: update common-files@master in istio/api@master (#1805) 2021-01-07 11:22:47 -08:00
jacob-delgado a795af9d99
Shriram is no longer a part of the TOC (#1793) 2021-01-05 21:03:57 -08:00
Nathan Mittler 23e39dadb2
Specify feature status for annotations (#1723) 2021-01-05 16:02:59 -08:00
Shamsher Ansari 3b89470fd8
Fix rendering for proxyMetadata (#1790) 2021-01-05 08:53:16 -08:00
Istio Automation f788baf21f
Automator: update common-files@master in istio/api@master (#1791) 2021-01-05 06:48:00 -08:00
Istio Automation a364d5657c
Automator: update common-files@master in istio/api@master (#1789) 2021-01-04 09:26:59 -08:00
Lin Sun 1f62aaeb5e
update sampling doc (#1775)
* update sampling doc

* make gen
2020-12-17 09:35:12 -08:00
zhaohuabing 21c3bd1ba1
add destination port support for envoyfilter (#1774)
* add destination port support for envoyfilter

Signed-off-by: zhaohuabing <huabingzhao@tencent.com>

* modify the comment of destination port

We may use destination port match in other listeners in the future.

Signed-off-by: zhaohuabing <huabingzhao@tencent.com>

* make gen

Signed-off-by: zhaohuabing <huabingzhao@tencent.com>

Co-authored-by: zhaohuabing <huabingzhao@tencent.com>
2020-12-17 07:51:05 -08:00
Yangmin Zhu d474186cff
update ext-authz comment (#1759)
* update ext-authz comment

* hide the provider field

* fix comment
2020-12-14 17:30:01 -08:00
Istio Automation 78807d24d1
Automator: update common-files@master in istio/api@master (#1777) 2020-12-14 09:02:40 -08:00
Istio Automation 3cee6a1d3a
Automator: update common-files@master in istio/api@master (#1763) 2020-11-25 11:46:58 -08:00
John Howard c2df7c41fd
Cleanup mesh config docs (#1702)
Original intent was to document proxy config annotation and unhide the
proxy metadata section, which is used by many users now. On the way I
removed+reserved some dead fields and cleaned up a few comments. I can
revert the clean up if its controversial
2020-11-20 09:59:56 -08:00
Istio Automation bc26f04620
Automator: update common-files@master in istio/api@master (#1761) 2020-11-19 11:13:42 -08:00
Yangmin Zhu 5a5676f79e
update ext-authz API comment (#1757)
* update ext-authz API comment

* update
2020-11-18 16:10:29 -08:00
Istio Automation fcf32ac5d2
Automator: update common-files@master in istio/api@master (#1751) 2020-11-13 07:53:54 -08:00
Gregory Hanson da2f88dda4
clarify INSERT support for HTTP_ROUTE (#1625)
* clarify index support for HTTP_ROUTE

* improve wording
2020-11-11 20:18:49 -08:00
stewartbutler 5f3ac92ebb
Adding HoldApplicationUntilProxyStarts to proxyconfig (#1670)
* Adding HoldApplicationUntilProxyStarts to proxyconfig

* Updating comment

* Changing description of value

* Updating description again
2020-11-11 19:33:49 -08:00
Shamsher Ansari 5d144e8c9f
Fix workload-group docs (#1743) 2020-11-10 17:30:48 -08:00
Jason Wang da30ccf8d0
Enforce preserving unknown fields in EnvoyFilters (#1742) 2020-11-10 16:32:10 -08:00
Istio Automation b068af9615
Automator: update common-files@master in istio/api@master (#1741) 2020-11-09 19:39:40 -08:00
Istio Automation bf3d17a4ca
Automator: update common-files@master in istio/api@master (#1736) 2020-11-06 08:59:40 -08:00
Istio Automation aa428790a0
Automator: update common-files@master in istio/api@master (#1734) 2020-11-05 16:57:07 -08:00
Istio Automation 2bcafea439
Automator: update common-files@master in istio/api@master (#1733) 2020-11-05 14:44:09 -08:00
Yangmin Zhu 8c3489c742
fix workload selector link in security API (#1705) 2020-11-05 12:26:40 -08:00
Xinnan Wen 9314e18b88
deprecate addon field from the operator (#1701)
* deprecate addon field from the operator

* add releasenote and update comment
2020-11-03 13:44:05 -08:00
Ram Vennam c7f4cf5d83
typo in virtual-service docs (#1720) 2020-11-02 18:58:40 -08:00
John Howard 18a4c54891
Add support for Pod IP listener (#1719)
Implementation PR: https://github.com/istio/istio/pull/28178

This adds an additional allowed value to the sidecar API to facilitate
applications listening on their Pod IP. For example, to run zookeeper,
a user would configure a sidecar:

```yaml
apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: zk
spec:
  ingress:
  - port:
      number: 3888
      protocol: TCP
      name: election
    defaultEndpoint: 0.0.0.0:3888
  egress:
  - hosts:
    - "*/*"
```
2020-11-02 18:02:23 -08:00
Eric Van Norman 8322fd2765
Another manual update for the Automator (it wants a rebase) (#1730) 2020-11-02 16:10:16 -08:00
Eric Van Norman 1e9b1a15be
Manual make update-common and make gen (#1726) 2020-11-02 11:35:27 -08:00
Istio Automation 268d84dbfd
Automator: update common-files@master in istio/api@master (#1724) 2020-10-30 15:49:35 -07:00
Istio Automation 871cc446f4
Automator: update common-files@master in istio/api@master (#1722) 2020-10-30 14:32:36 -07:00
Istio Automation c58f82da74
Automator: update common-files@master in istio/api@master (#1721) 2020-10-30 14:13:36 -07:00
Istio Automation 037097edfa
Automator: update common-files@master in istio/api@master (#1718) 2020-10-30 08:48:46 -07:00
Brian Avery 9536b06b45
Add release notes (#1716)
* Add release notes

* Create link to template
2020-10-28 14:10:45 -07:00
Yangmin Zhu 801bb1f7f7
update CUSTOM action in AuthorizationPolicy (#1698)
* update external action API

* more generic in MeshConfig

* address comments

* more comments

* use ExternalProvider and many more updates

* use provider

* require fully qualified name in service

* add fail_open and share common settings for HTTP and GRPC

* update for extension_providers and EXTENDED action

* address comments

* make port required

* change to CUSTOM action

* fix
2020-10-27 11:32:11 -07:00
Sam Naser 78e48caf1a
Fix typo in IngressControllerMode description (#1712) 2020-10-26 22:17:54 -07:00
Istio Automation 2bfd7587e8
Automator: update common-files@master in istio/api@master (#1711) 2020-10-26 11:31:59 -07:00
Istio Automation 59ff63f2e2
Automator: update common-files@master in istio/api@master (#1710) 2020-10-26 11:13:39 -07:00
John Howard da9790aad1
Add MODE column to PeerAuthentication (#1695)
Result:
```
$ ki get pa
NAME      MODE      AGE
default   DISABLE   14h
```
2020-10-21 11:46:28 -07:00
Istio Automation fb96fd157e
Automator: update common-files@master in istio/api@master (#1703) 2020-10-20 13:32:41 -07:00
Mitch Connors e59b7fb6ed
Add observedGeneration to status (#1692)
* Add observedGeneration to status

* move to snake case

* Fix description

* Clarify comment

* Finalize comment

* Add docs link
2020-10-20 12:55:12 -07:00
Pengyuan Bian 0d3a960ded
update comment/doc of the newly add prxoy stats matcher (#1696) 2020-10-19 18:13:37 -07:00
Nupur Garg bc990c81b0
Add meshconfig to disable envoy listener access log (#1697)
* Add meshconfig to disable envoy listener access log

* Add Listener access log link
2020-10-19 12:06:32 -07:00
Jason Wang 8440b3958d
Fix kubectl explain (#1699) 2020-10-19 11:57:08 -07:00
Istio Automation 71b2976a51
Automator: update common-files@master in istio/api@master (#1694) 2020-10-15 14:33:20 -07:00
Istio Automation 1edce062f1
Automator: update common-files@master in istio/api@master (#1693) 2020-10-15 11:43:01 -07:00
Istio Automation 89d67dd134
Automator: update common-files@master in istio/api@master (#1691) 2020-10-15 09:03:58 -07:00
Jean-Rémy Bancel 544a95fb3c
Add missing quote in AuthenticationPolicy example. (#1672)
* Fix typo.

* Generated files.
2020-10-14 18:59:28 -07:00
Kyle Evans d35a65ac7f
create remote_ip_blocks in Source (#1687)
* create remote_ip_blocks in Source

By adding remote_ip_blocks and not_remote_ip_blocks in Source,
an AuthorizationPolicy can trigger actions based on the original
client IP address gleaned from the X-Forwarded-For header or the
proxy protocol.

* update comment to show that ip_blocks match on IP packet source address

* make reference to numTrustedProxies in remote_ip docs

* fix URL for gateway network topology
2020-10-14 18:24:20 -07:00
Nathan Mittler f91cd3a5b9
Add labels for locality (#1690) 2020-10-14 15:55:51 -07:00
Nathan Mittler 2217cd8969
Add cluster label. (#1689)
From approved RFC: https://docs.google.com/document/d/1ciVTulP-ClrJUcVKBKrbK_WHVjCfCXlymzjKP3sQW3A/edit#heading=h.xw1gqgyqs5b
2020-10-14 14:36:21 -07:00
Pengyuan Bian 410f0d0812
Add envoy stats inclusion matcher to proxy config (#1599)
* add envoy stats inclusion matcher to proxy config

* gen again

* wrap envoy stats options into a message

* update

* update comment

* add comment about default stats

* update comment

* fix comment
2020-10-14 10:55:12 -07:00
Shamsher Ansari fa43aa102e
Add example for how to use IstioOperatorSpec (#1667)
* Add example for how to use IstioOperatorSpec

* use yaml example
2020-10-13 14:22:08 -07:00
Shamsher Ansari 00636152b9
Fix inconsistent rendering of enum constant for EnvoyFilter (#1649)
* Fix inconsistent rendering of enum constant for EnvoyFilter

* do not use code blocks for acronym
2020-10-09 10:18:13 -07:00
Yangmin Zhu ae1b3ec96a
add external action to authorization policy (#1674)
* add external action to authorization policy

* remove config for now and update comments

* use custom config that is mostly based on Envoy ext_authz with minimal changes

* fix comments
2020-10-08 15:56:29 -07:00
Istio Automation 38d3c76a55
Automator: update common-files@master in istio/api@master (#1681) 2020-10-07 13:55:36 -07:00
John Howard 174a9fd5f2
Regenerate json code (#1677)
* Regenerate json code

I am not sure why this wasn't done automatically, might be a bug in our
auto update logic

* resync
2020-10-07 12:35:42 -07:00
Istio Automation aafbee249e
Automator: update common-files@master in istio/api@master (#1676) 2020-10-05 12:07:43 -07:00
John Howard 19bfd18ca7
Rename Authorization Policy proto for consistency (#1671)
Every other API is named `<kind in snake case>.proto`, but authz. It is
named authorization.policy. This impacts the generated code. For
consistency, renaming it to match all of our other APIs
2020-10-04 15:55:36 -07:00
Istio Automation fac2b8e466
Automator: update common-files@master in istio/api@master (#1673) 2020-10-02 14:35:37 -07:00
Kuat 44a8342c37
envoyfilter: add ecds option (#1652)
* add ecds option

Signed-off-by: Kuat Yessenov <kuat@google.com>

* add example

Signed-off-by: Kuat Yessenov <kuat@google.com>

* add comments

Signed-off-by: Kuat Yessenov <kuat@google.com>

* update docs

Signed-off-by: Kuat Yessenov <kuat@google.com>
2020-10-01 13:04:53 -07:00
Lin Sun f90eba96be
Idletimeout clarification (#1665)
* modify idle timeout comment

* make gen update

* update

* make gen

* minor update on drain

* make gen
2020-10-01 12:03:58 -07:00
Lin Sun e0b330f454
clarify http retry attempts (#1648)
* clarify retries attempts default

* update doc

* address Rama's comment

* make gen update

* update based on Neeraj's feedback

* change to allowed

* make gen

* make gen update
2020-10-01 08:53:00 -07:00
Istio Automation 455f0dfbed
Automator: update common-files@master in istio/api@master (#1666) 2020-09-30 16:32:41 -07:00
Istio Automation 11df83b4d2
Automator: update common-files@master in istio/api@master (#1663) 2020-09-29 14:15:20 -07:00
Shamsher Ansari 00671adacb
Fix link and bullet point rendering for IstioOperatorSpec (#1646)
* Fix link and bullet point rendering for IstioOperatorSpec

* Use list instead of code blocks

* Use list item for status
2020-09-29 11:17:39 -07:00
Shamsher Ansari c010b9c8b9
Fix inconsistent rendering of enum constant and code examples for ProxyConfig (#1644) 2020-09-28 09:33:32 -07:00
Istio Automation 10d38d0b69
Automator: update common-files@master in istio/api@master (#1659) 2020-09-28 09:28:00 -07:00
Linggg 206ab80879
Fix typo in request authn v1beta1 (#1657)
* fix typo in  request authn v1beta1

* fix typo in  request authn v1beta1
2020-09-28 09:22:15 -07:00
Istio Automation 454b9bac27
Automator: update common-files@master in istio/api@master (#1658) 2020-09-28 06:17:47 -07:00
Shamsher Ansari d7cf1f5167
Remove redundant operator installation configs docs (#1651) 2020-09-25 18:11:35 -07:00
Roland Kool 15dd35ef8a
Remove note about restriction on exportTo (#1655)
It is now possible to use exportTo to export to specific
namespaces. Was fixed in https://github.com/istio/istio/pull/24443
2020-09-24 11:10:05 -07:00
Eric Van Norman 482a96e7a9
Fix section end (#1645) 2020-09-22 07:00:55 -07:00
Shamsher Ansari 6a1b8009cc
Fix inconsistent rendering of enum constant and code examples (#1642) 2020-09-18 09:45:00 -07:00
Shamsher Ansari 6c686e560e
Fix capitalisation for accessLogEncoding (#1641) 2020-09-18 09:31:41 -07:00
Shamsher Ansari 17ee85a2cc
Update url for helm installation options (#1638) 2020-09-17 09:08:26 -07:00
Istio Automation b272f97d8c
Automator: update common-files@master in istio/api@master (#1639) 2020-09-16 09:15:12 -07:00
Istio Automation 83da38bf5d
Automator: update common-files@master in istio/api@master (#1637) 2020-09-15 20:06:57 -07:00
Istio Automation 3dfd59a77f
Automator: update common-files@master in istio/api@master (#1636) 2020-09-15 08:22:03 -07:00
Istio Automation 3c5b07fafb
Automator: update common-files@master in istio/api@master (#1635) 2020-09-15 07:43:34 -07:00
John Howard c31e56a3d5
Fix invalid yaml (#1634) 2020-09-15 05:58:14 -07:00
Rama Chavali bea3ed0bae
add use client protocol option for destination rules (#1627)
* add use client protocol option for gateways

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* remove gateway reference

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* change v1alpha3

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* clarify upgrade

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2020-09-13 13:30:30 -07:00
Istio Automation 3e82590c4e
Automator: update common-files@master in istio/api@master (#1631) 2020-09-11 10:55:40 -07:00
Istio Automation 5b52aa61cf
Automator: update common-files@master in istio/api@master (#1630) 2020-09-11 07:32:26 -07:00
Aditya Prerepa da5469b620
Add HealthCheck Config to ProxyStatus (#1620)
* add to proxyconfig

* lint

* follow k8s readiness probe exec field type

* match k8s exactly

* gen

* rename to snake case

* Update mesh/v1alpha1/proxy.proto

Co-authored-by: John Howard <howardjohn@google.com>

* fix some stuff

* lint & gen

* add to workloadgroup

* add example & comments

* make gen

Co-authored-by: John Howard <howardjohn@google.com>
2020-09-10 08:48:33 -07:00
Istio Automation 0c9c37277f
Automator: update common-files@master in istio/api@master (#1628) 2020-09-09 08:47:06 -07:00
Istio Automation 4e0c8da420
Automator: update common-files@master in istio/api@master (#1626) 2020-09-05 08:59:05 -07:00
Eric Van Norman d3db41cca5
Fix error: Ensure content only uses standard quotation marks and not “ (#1617) 2020-09-03 06:35:17 -07:00
Istio Automation b857fa82d6
Automator: update common-files@master in istio/api@master (#1619) 2020-09-02 17:44:47 -07:00
Istio Automation 0f5c97674d
Automator: update common-files@master in istio/api@master (#1615) 2020-09-02 15:03:18 -07:00
Eric Van Norman 06220a8230
Remove Telemetry v2 on Stackdriver (#1618) 2020-09-02 11:08:18 -07:00
John Howard 9a994ae513
Import new DeepCopy changes (#1613)
* deepcopy

* Better reuse implementation

* Update common

* update others
2020-09-01 13:35:38 -07:00
Pengyuan Bian 701568332f
remove policy and telemetry component from operator API (#1611) 2020-08-28 16:00:38 -07:00
John Howard bd18678dab
Fix escape in gateway docs (#1610) 2020-08-27 06:12:10 -07:00
Khoa Hoàng 99a2564337
Added MeshConfig for Custom External CA (#1596)
* Add MeshConfig for CustomCA

* Update document
2020-08-26 19:14:12 -07:00
Lin Sun b8a5f5dbee
clarify HTTP requests timeout default (#1606)
* update default

* update default in doc
2020-08-24 12:04:45 -07:00
Brian Wolfe c78f387f78
tracing: remove uncommonly-used tuning configs (#1591)
These configurations were added to be consistent with Stackdriver and
provide extra performance tuning for OpenCensus. These are unlikely to
be used in production. Tuning should probably be performed by Istio
developers instead. We can remove the options for now.

This was triggered by a conversation at the end of the previous CL
merge: https://github.com/istio/api/pull/1563
Change-Id: Iab148ff87dfe5b1772d3cdf2a009ec9cf4ea0f27
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/596
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>
Reviewed-by: Ying Zhu <ying.zhu@airbnb.com>
2020-08-19 15:59:23 -07:00
Nikolay Pshenichnyy 3aaa6f960a
Revert CRDs move to v1, move back to v1beta1 (#1602)
* Make CRD validation conditional.

* gen file and todo

* update tools image

* revert removal of the export statement
2020-08-19 13:17:28 -07:00
Istio Automation 278ad378f4
Automator: update common-files@master in istio/api@master (#1604) 2020-08-19 12:45:33 -07:00
Rama Chavali d9fef91fd3
update envoy filter docs (#1600)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2020-08-17 19:12:50 -07:00
Istio Automation 291eb3ba8a
Automator: update common-files@master in istio/api@master (#1601) 2020-08-17 09:05:44 -07:00
Navraj Singh Chhina c60647764a
Add VerifyCertificateAtClient to MeshConfig (#1585)
* add meshconfig field

* rename field

* change name

* add detailed comment

* address comments

* change to boolvalue wrapper

* proto commit

* change name again

* add comment for SAN matching

* fix comment

* use concise documentation
2020-08-14 14:43:30 -07:00
mandarjog d119b043da
Define FilterClasses with REPLACE (#1588)
* define EnvoyFilter REPLACE operation

* add example

* make gen

* Add filter class enum

* make gen

* Update per discussion

* Update text
2020-08-14 08:00:54 -07:00
Istio Automation 5df2b6a8cd
Automator: update common-files@master in istio/api@master (#1597) 2020-08-14 06:45:30 -07:00
Morven Cao b0d73f1d2a
add pod securitycontext for operator api. (#1589)
* add pod securitycontext for operator api.

* address comments.
2020-08-12 19:50:26 -07:00
Justin Wei 24be265d41
WorkloadGroup CRD (#1554)
* workload group template

* add storage version, timestamp

* new workloadgroup crd

* add docs for workloadentrytemplate

* comments for workloadgroup

* revised doc wording

* remove k8s dependency

* remove name, namespace

* remove WorkloadEntryTemplate

* regen

* formatting

* revise comments

* inline objectmeta

Co-authored-by: Justin Wei <juswei@google.com>
2020-08-12 13:27:21 -07:00
Khoa Hoàng 03c846170f
Add metadata field into Istio CertificateSigningService (#1576)
* add metadata field to certificate signing api

* make proto-commit
2020-08-10 11:51:29 -07:00
Brian Wolfe 0bb7e74acf
tracing: add API for OpenCensus agent exporter (#1563)
* tracing: add API for OpenCensus agent exporter

This is based heavily on the existing Stackdriver configuration.
Stackdriver and OpenCensus exporter will both use the OpenCensus tracer
implementation. This will permit OpenCensus to export OpenCensus
agent-formatted spans.

OpenCensus-formatted spans are handled by the OpenTelemetry collector,
providing a migration path from OpenCensus to OpenTelemetry when
OpenTelemetry is more complete and integrated with Envoy.

Change-Id: I566299c9291021d26ec1e839643871a380807bc3
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/551
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>

* tracing: add TraceContext & use OpenCensusAgent

Specify the set of trace headers to use for distributed trace context
propagation with a new TraceContext enum in the OpenCensusAgent tracer.

OpenCensus is the name of both the tracer implementation and the backend
service. To disambiguate between the two terms, rename OpenCensus to
OpenCensusAgent, since it is specific to the backend service. Both
Stackdriver & OpenCensus will use the OpenCensus trace implementation
under the hood.

Change-Id: Id860fbf6bf6b1345c7276bb2c2b93de3f69a9d44
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/575
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>

* tracing: update docs to include envoy proto link

The existing documentation for Stackdriver and OpenCensus reference the
OpenCensus configuration. We should reference both the Envoy OpenCensus
tracer configuration and the OpenCensus configuration.

Change-Id: Ia3fcbc879e2e15f90a56959cf97fe30b57211782
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/582
Reviewed-by: Ying Zhu <ying.zhu@airbnb.com>
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>
2020-08-08 14:39:52 -07:00
Istio Automation 2d7807cd4e
Automator: update common-files@master in istio/api@master (#1587) 2020-08-07 15:35:17 -07:00
Istio Automation 42453f1c8f
Automator: update common-files@master in istio/api@master (#1583) 2020-08-07 08:33:43 -07:00
Jason Wang cb1dd80a95
Change status timestamp to protobuf timestamp (#1581) 2020-08-06 16:37:26 -07:00
Istio Automation 661668963f
Automator: update common-files@master in istio/api@master (#1580) 2020-08-05 12:06:28 -07:00
Justin Wei 93ddbbf604
change meshId type to string (#1575)
Co-authored-by: Justin Wei <juswei@google.com>
2020-08-05 09:29:35 -07:00
Liam White 844ce7d2a3
Fix quantity and lock down others to a more specific type (#1567)
* Fix quantity and lock down others to correct IntOrString

Signed-off-by: Liam White <liam@tetrate.io>

* fix imports

Signed-off-by: Liam White <liam@tetrate.io>
2020-08-05 06:48:42 -07:00
Istio Automation 2420d6eaec
Automator: update common-files@master in istio/api@master (#1573) 2020-08-04 12:38:39 -07:00
Istio Automation daf4507509
Automator: update common-files@master in istio/api@master (#1572) 2020-08-04 04:42:00 -07:00
Istio Automation 59f772e832
Automator: update common-files@master in istio/api@master (#1568) 2020-08-02 05:26:00 -07:00
John Howard 899a809497
Tweak locality lb docs a bit (#1562)
Fixes  https://github.com/istio/istio/issues/22030
2020-07-30 19:22:35 -07:00
David Raskin 50557a0cbf
Extend authorization policy action with 'Audit' action (#1552)
* Modified rbac proto

* change module name

* change module again

* change go.mod again

* Changed back go.mod, go.sum, proto.lock

* Updated proto.lock

* Updated Audit documentation

* Documentation update

* Updated documentation
2020-07-30 15:39:38 -07:00
Kuat a68466d72e
remove more mixer stuff (#1564)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2020-07-29 12:11:40 -07:00
Navraj Singh Chhina 91f53f0b47
Remove deprecated SDS fields from meshconfig proto (#1559)
* remove sds_uds_path

* remove deprecated fields
2020-07-28 17:10:36 -07:00
Steven Landow d54746897f
pod label for network (#1546)
* add label for assigning a pod's network

* cluster label

* use an annotation instead

* Revert "use an annotation instead"

This reverts commit 24ead1188cdb5675b35fe842545e4f5e5bb35700.

* remove cluster for now

* clarify comment
2020-07-28 16:54:37 -07:00
Jianfei Hu 95ae444bcc
Add allowed_trust_domains for the authn filter config. (#1561)
* Add trust domain validation list for the authn filter config.

* Rename to allowed_trust_domains

* rewording and grammar fix.
2020-07-28 15:21:40 -07:00
Istio Automation fe141e2bb6
Automator: update common-files@master in istio/api@master (#1560) 2020-07-28 07:42:49 -07:00
Neeraj Poddar f3ffd0ee3a
Add nrjpoddar as API repo code owner (#1545) 2020-07-26 05:46:49 -07:00
Kuat 3c2193e749
cleanup: remove mixer artifacts (#1555)
* remove mixer artifacts

Signed-off-by: Kuat Yessenov <kuat@google.com>

* releaselocks

Signed-off-by: Kuat Yessenov <kuat@google.com>

* bad script

Signed-off-by: Kuat Yessenov <kuat@google.com>
2020-07-23 10:08:24 -07:00
Istio Automation 12ba196bf5
Automator: update common-files@master in istio/api@master (#1556) 2020-07-23 08:41:28 -07:00
Shamsher Ansari af0b0b3fd6
Fix broken link for WorkloadSelector (#1550) 2020-07-23 08:33:36 -07:00
Istio Automation 7e311b6ce2
Automator: update common-files@master in istio/api@master (#1549) 2020-07-22 07:43:11 -07:00
Ram Vennam 9d7f2a3afc
Gateway CA certs can be stored in secret-cacert. Take 2 (#1542)
* ca certs can be stored in secret-cacert

* ca certs can be stored in secret-cacert

* ca certs can be stored in secret-cacert
2020-07-21 23:57:56 -07:00
Jason Wang ae75c7e9ae
Add generated functions to status and analysis APIs (#1533) 2020-07-21 10:50:12 -07:00
Shamsher Ansari d32519b265
Fix invalid link for WorkloadSelector (#1540) 2020-07-21 10:36:07 -07:00
Oliver Liu dc7bc4c3a5
Remove the CA proto files from v1beta1. (#1543)
This is to remove the wrongly generated files in
https://github.com/istio/api/pull/1520.
2020-07-21 10:25:22 -07:00
Istio Automation 962b7ea3a7
Automator: update common-files@master in istio/api@master (#1538) 2020-07-20 12:21:37 -07:00
Xinnan Wen 83c0d06cba
add pending to operator status (#1499)
* add pending to operator status

* add message to overall status

* address comment

* address comment
2020-07-20 11:59:14 -07:00
Ram Vennam c5041002f1
ca certs can be stored in secret-cacert (#1537) 2020-07-20 11:04:39 -07:00
Eric Van Norman c1183dac17
Fix link so istio.io linter passes (remove latest) (#1535) 2020-07-17 13:27:05 -07:00
Istio Automation ccd0e877fb
Automator: update common-files@master in istio/api@master (#1534) 2020-07-16 17:39:58 -07:00
Istio Automation c358dad980
Automator: update common-files@master in istio/api@master (#1532) 2020-07-16 11:30:19 -07:00
Neeraj Poddar cec4d6d759
Remove unimplemented Sidecar Localhost APIs (#1529)
* Remove unimplemented APIs

* Reserve fields

* Override proto status check file
2020-07-16 10:01:34 -07:00
Mitch Connors 47776d78b0
remove hide from docs instruction in meta/status (#1524)
* Remove hide from docs instruction

* make gen
2020-07-16 08:14:07 -07:00
Neeraj Poddar e5d2918175
Fix gateway selection documentation (#1525)
* Fix gateway selection documentation

* More fixes

* More fixes
2020-07-15 19:30:57 -07:00
Shamsher Ansari ff22e4ec72
Update auth policy enum for proxy config (#1503)
* Update auth policy enum for proxy config

* use proxy to control plane instead of envoy to istiod

* use mesh and pod in auth policy description

* remove inherit description
2020-07-15 12:51:40 -07:00
Istio Automation 3f616a9fa9
Automator: update common-files@master in istio/api@master (#1527) 2020-07-15 11:29:43 -07:00
Istio Automation e8856e0cba
Automator: update common-files@master in istio/api@master (#1526) 2020-07-15 07:15:17 -07:00
Oliver Liu ada27df91b
Make cert signing API public in istio/api. (#1520)
* Make cert signing API public in istio/api.

* Update the API.

* Update the API.

* Small fix.
2020-07-14 16:44:59 -07:00
Istio Automation 0ad65aae95
Automator: update common-files@master in istio/api@master (#1523) 2020-07-14 13:15:02 -07:00
Jason Wang 42acf9095d
Add x-kubernetes-preserve-unknown-fields to instances and handlers (#1519)
* Add x-kubernetes-preserve-unknown-fields to instances and handlers

* make gen
2020-07-14 09:44:16 -07:00
Eric Van Norman 761aa01201
Remove extraneous file. It seems to have been added in a prior (#1509)
PR (duplicate of the same name in mesh/v1alpha1)
2020-07-13 19:05:19 -07:00
Navraj Singh Chhina 1ce90725be
Add Comment to CredentialName explaining use with Gateway Proxy only (#1508)
* fix comment

* addback preserveUnknownfields

* Update networking/v1alpha3/destination_rule.proto

Co-authored-by: Sven Mawson <sven@google.com>

* Update networking/v1alpha3/destination_rule.proto

Co-authored-by: Sven Mawson <sven@google.com>

* Update networking/v1alpha3/destination_rule.proto

Co-authored-by: Sven Mawson <sven@google.com>

* make gen

* add back puf

* address comments

* rephrase

Co-authored-by: Sven Mawson <sven@google.com>
2020-07-13 16:16:50 -07:00
Taylor Barrella d9971f2e9d
Replace/remove "whitelist" in comments/descriptions (#1518)
* Replace/remove "whitelist" in comments/descriptions

As part of https://github.com/istio/istio/issues/25381

* Replace "allowlisted" with "allowed" in policy/v1beta1/cfg.proto

Co-authored-by: Sven Mawson <sven@google.com>

* Regenerate proto

Co-authored-by: Sven Mawson <sven@google.com>
2020-07-13 15:51:45 -07:00
Istio Automation 4c3df67d02
Automator: update common-files@master in istio/api@master (#1517) 2020-07-13 14:09:09 -07:00
Mitch Connors 87ad7f45ae
Add Status types to API (#1449)
* Add proto for analysis messages

* Add analysis protos to make system

* Better comments, clearer intention with code/name

* Move analysis to beta, add meta types

* update ValidationMessages to validation_messages

* more snake casing, hopefully doesnt break kubernetes compatibility

* try to get all generated files updated

* update gen conflicts after rebase

* move analysis back to alpha

* demote meta to v1alpha1

* remove remnants of beta apis

* resolve gen problems related to demotion

Co-authored-by: Clayton Pence <ctpence@google.com>
2020-07-13 13:24:46 -07:00
Abdel SGHIOUAR a58c9d75a8
fix gateways typo (#1515) 2020-07-13 12:27:21 -07:00
Istio Automation a87a3e6c1d
Automator: update common-files@master in istio/api@master (#1516) 2020-07-13 09:05:38 -07:00
Istio Automation 00b73d23c6
Automator: update common-files@master in istio/api@master (#1512) 2020-07-10 12:15:38 -07:00
Jason Wang 48874a55a9
Generate x-kubernetes-preserve-unknown-fields at EnvoyFilter field level (#1507)
* proto changes

* Generate x-kubernetes-preserve-unknown-fields at EnvoyFilter field level
2020-07-10 11:21:16 -07:00
Istio Automation bc5bcf1ee3
Automator: update common-files@master in istio/api@master (#1506) 2020-07-09 21:18:58 -07:00
Istio Automation e6d1853c93
Automator: update common-files@master in istio/api@master (#1502) 2020-07-09 14:58:35 -07:00
Shriram Rajagopalan 42be9dcd33
Add targetPort to ServiceEntry Port (#1477)
* use targetPort for workloadEntries

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* fix workload entry

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* proto lock

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* undo deprecation

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* generate

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* regenerate

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* update docs

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* nits

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* reword

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-07-08 11:29:25 -07:00
Jason Wang 0503c9d9b6
Add preserveUnknownFields to EnvoyFilter (#1500)
* Add preserveUnknownFields to EnvoyFilter

* make gen
2020-07-08 11:21:35 -07:00
Istio Automation 91341632e3
Automator: update common-files@master in istio/api@master (#1501) 2020-07-08 08:36:13 -07:00
Istio Automation 4eaf05f269
Automator: update common-files@master in istio/api@master (#1498) 2020-07-07 07:21:33 -07:00
Istio Automation 8bca8f6873
Automator: update common-files@master in istio/api@master (#1497) 2020-07-06 18:38:16 -07:00
Shamsher Ansari 24dd11816e
Specify defaults for mesh and proxy configs (#1493)
* Specify defaults for mesh and proxy configs

* Update default for auth policy
2020-07-06 14:39:41 -07:00
Jason Wang 87380418ee
Update CRDs to v1 (#1495)
* Add script to check schema equality

* Update CRDs to v1

* Update makefile
2020-07-06 10:32:40 -07:00
Istio Automation 19d61f093a
Automator: update common-files@master in istio/api@master (#1494) 2020-06-30 11:21:54 -07:00
Shamsher Ansari 933b83065c
Update enable_auto_mtls default to true (#1489) 2020-06-29 14:03:45 -07:00
Istio Automation 4f9d78f4ae
Automator: update common-files@master in istio/api@master (#1490) 2020-06-29 13:14:02 -07:00
Istio Automation c07d1d63da
Automator: update common-files@master in istio/api@master (#1486) 2020-06-26 13:31:24 -07:00
Shamsher Ansari 4b9355d6da
Update gateway selector to be consistent with other names (#1473) 2020-06-26 09:25:25 -07:00
carolynhu 6e8e32f7ac
Add mesh ID to ProxyConfig (#1274)
* introduce mesh_id field in ProxyConfig

* address review comments
2020-06-25 18:34:08 -07:00
John Howard bac02847c8
Move operator to gogo proto (#1483)
* Move operator to gogo proto

* switch to gogo

* fix gen
2020-06-25 13:03:14 -07:00
Istio Automation add85bd6bf
Automator: update common-files@master in istio/api@master (#1485) 2020-06-25 08:07:49 -07:00
Istio Automation 2e72df5ead
Automator: update common-files@master in istio/api@master (#1480) 2020-06-23 18:29:53 -07:00
Istio Automation 1bc30d922a
Automator: update common-files@master in istio/api@master (#1479) 2020-06-23 10:49:06 -07:00
John Howard fb83ff2d82
Move termination drain duration (#1463)
This was merged yesterday so no risk reverting. This moves from mesh
config to proxy config, where it should have originally been. This is a
proxy specific config.
2020-06-17 11:47:12 -07:00
Frank Budinsky afce0718b9
Fix missing Headers doc (#1444) 2020-06-16 13:22:06 -07:00
Rama Chavali 657e06ab77
add name to gateway servers (#1469)
* add stat prefix to gateway servers

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add name to server

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2020-06-16 05:01:02 -07:00
LukasAuerbeck c19f5f1ec5
fixed minor typos in security/request_authentication documentation (#1470)
Co-authored-by: Lukas Auerbeck <auerbeck@youniqx.com>
2020-06-16 02:00:52 -07:00
Istio Automation 9b5293c30e
Automator: update common-files@master in istio/api@master (#1471) 2020-06-15 09:24:08 -07:00
Navraj Singh Chhina d54d738fb9
Add credentialName to DestinationRule API (#1468)
* Add credentialName to DestinationRule API

* rebase commits

Add comment to describle only one of cert or credential can be specified

* rebase master
2020-06-12 16:38:08 -07:00
Navraj Singh Chhina 6553314386
Remove legacy ISTIO_META_USER_SDS from documentation (#1467)
* Remove legacy USER_SDS from documentation

* add to description existing support for tls secrets
2020-06-11 17:04:00 -07:00
Douglas Reid a1a9587469
deprecation(mixer): mark Mixer configuration options as deprecated (#1466)
* rebase

* explicitly run make generate-mixer to update deepcopy files
2020-06-10 15:08:35 -07:00
Martin Ostrowski 2f6a9b1363
Add k8s field to base component (#1465) 2020-06-09 16:50:57 -07:00
Martin Ostrowski 001ca68fb1
Consolidate operator API to one file to maintain field order (#1464)
* Consolidate opeator API to one file to maintain field order

* Mirror Tolerations

* Remove json gen

* Rebuild

* Restore deepcopy

* Remove unneeded sed

* Rebuild

* Lint

* Update releaselocks

* Move deepcopy from autogenerated path

* Copyright banner

* Gofmt
2020-06-09 16:01:37 -07:00
John Howard 0fa3393654
Add termination drain duration to proxyconfig (#1457)
* Add termination drain duration to proxyconfig

This has been an environment variable in the agent for 3+ releases

* Add comment
2020-06-08 18:05:48 -07:00
Istio Automation d943a112f2
Automator: update common-files@master in istio/api@master (#1462) 2020-06-06 09:57:40 -07:00
Joey Bratton 5f26aa5836
Add includeOutboundPorts annotation (#1447)
Related to https://github.com/istio/istio/pull/23941 and in preparation for a matching CNI PR, this change defines the new `includeOutboundPorts` annotation that is ultimately used by `istio-iptables`.
2020-06-04 21:20:24 -07:00
Istio Automation 135858b7d7
Automator: update common-files@master in istio/api@master (#1460) 2020-06-04 07:30:05 -07:00
Istio Automation 2ade53f717
Automator: update common-files@master in istio/api@master (#1459) 2020-06-03 14:01:21 -07:00
Istio Automation 34e7efa0b7
Automator: update common-files@master in istio/api@master (#1458) 2020-06-03 12:55:39 -07:00
Jian Zeng 0e81570f77
doc: Gateway will be applied to all workloads if selector is nil (#1452)
Signed-off-by: knight42 <anonymousknight96@gmail.com>
2020-06-03 09:27:30 -07:00
Jian Zeng e094649aa7
feat: generate deepcopy methods for all the types (#1454) 2020-06-02 12:32:24 -07:00
Jim Ntosas 9cd6a563fc
CORS Policy Example: Change allowOrigins block (#1453)
In this commit, we change the block of CORS Policy definition from
`allowOrigin` to `allowOrigins` so not to be misleading for people who
take this example as guide to setup their Meshes.

After upgrading to Istio 1.6, the block with deprecated `allowOrigin`
is not respected thus not working.

Resolves: https://github.com/istio/istio/issues/24145

Signed-off-by: dntosas <ntosas@gmail.com>
2020-06-01 19:05:55 -07:00
Istio Automation da2b8f9da6
Automator: update common-files@master in istio/api@master (#1456) 2020-06-01 08:00:56 -07:00
Istio Automation e96cc44a96
Automator: update common-files@master in istio/api@master (#1455) 2020-06-01 07:39:05 -07:00
John Howard a845f7ed69
Add selector to Ingress (#1446)
* Add selector to Ingress

* Switch to just a name

* Fix comment

* regen

* regen
2020-05-29 08:49:42 -07:00
Istio Automation 2728161cd1
Automator: update common-files@master in istio/api@master (#1448) 2020-05-28 15:15:59 -07:00
maplebeats 255a048b2b
fix envoy filter doc indentation error (#1439) 2020-05-26 09:29:25 -07:00
Istio Automation 06a72513a1
Automator: update common-files@master in istio/api@master (#1445) 2020-05-26 07:09:09 -07:00
Istio Automation 32375f234c
Automator: update common-files@master in istio/api@master (#1441) 2020-05-21 10:16:57 -07:00
Istio Automation 1eccfb5ddd
Automator: update common-files@master in istio/api@master (#1440) 2020-05-20 09:35:44 -07:00
Yangmin Zhu d98da5d2d0
authz: remove alpha RBAC API (#1427)
* authz: remove alpha RBAC API

* update
2020-05-18 17:58:11 -07:00
Jason Wang 6d29a38039
Add release 1.6 release lock (#1436) 2020-05-18 13:38:17 -07:00
Neeraj Poddar edd38d54b2
Hide localhost TLS unimplemented APIs (#1437) 2020-05-17 14:42:51 -07:00
Brian Avery e5412c253f
Fix grammar issue (#1433)
* Update workload_entry.pb.html

* Update protos
2020-05-12 16:48:04 -07:00
Lin Sun 83e5c7ad83
Add istiod remote to component proto (#1428)
* update to individual owners

* add istiodremote

* make gen

* address comment

* update gen
2020-05-11 18:10:36 -07:00
Jason Wang 9b355c8e6e
Update CRDs to not validate status field (#1426) 2020-05-11 13:25:14 -07:00
Jason Wang 2ce8d6344d
Remove preserveUnknownFields from EnvoyFilter (#1423)
* Remove preserveUnknownFields from EnvoyFilter

* Remove preserveUnknownFields from instance and handler CRDs
2020-05-06 18:36:11 -07:00
John Howard 8c8385e634
Change proxyConfig.concurrency to wrapper (#1418)
* Change proxyConfig.concurrency to wrapper

This allows distinguishing between 0 and undefined. See
https://github.com/istio/istio/issues/23470 for motivation

* update locks
2020-05-06 10:06:27 -07:00
Jason Wang f9caf24cd6
Add preserveUnknownFields to CRDs (#1420) 2020-05-05 13:45:56 -07:00
Istio Automation d58b531533
Automator: update common-files@master in istio/api@master (#1419) 2020-05-05 11:11:40 -07:00
Istio Automation caa357ed2a
Automator: update common-files@master in istio/api@master (#1417) 2020-05-04 15:47:55 -07:00
John Howard 31b1938bfc
Align operator API with reality (#1366)
These components no longer exist
2020-05-04 13:39:12 -07:00
Istio Automation f6a9aae175
Automator: update common-files@master in istio/api@master (#1416) 2020-05-01 19:29:16 -07:00
Istio Automation 15c4c938b6
Automator: update common-files@master in istio/api@master (#1415) 2020-05-01 18:49:04 -07:00
Istio Automation f818d62949
Automator: update common-files@master in istio/api@master (#1413) 2020-04-30 15:00:31 -07:00
John Howard 3b39923819
Add proxy config annotation (#1401)
* Add proxy config annotation

This is already implemented in istio/istio. No problem changing the
syntax if people have concerns as it has not yet shipped - just need to make sure it makes it
into 1.6.

* Update annotation
2020-04-29 12:11:48 -07:00
Jason Wang 74b42d651c
Remove redundant v1beta1 virtual service html doc file (#1409) 2020-04-28 12:08:39 -07:00
Eric Van Norman 40379a42c8
Change LightStep to Lightstep as it was rebranded. (#1408)
per https://github.com/istio/istio.io/pull/7123
2020-04-28 11:54:39 -07:00
Istio Automation 78fa38750d
Automator: update common-files@master in istio/api@master (#1406) 2020-04-28 08:23:09 -07:00
Neeraj Poddar fcafad11e0
Added UNDEFINED for Gateway Topology (#1403)
We set "SANITIZE_SET" as the default option for Gateways and not having an
undefined setting makes it difficult to parse user intent. Note than Envoy has
"SANITIZE" as default 0 unset setting.
2020-04-26 16:44:41 -07:00
Gao Hongtao 8c7aa02ccd
Add TLS setting to Tracing message (#1397)
* Add Tls setting to Tracing message

Signed-off-by: Gao Hongtao <hanahmily@gmail.com>

* Update proto.lock

Signed-off-by: Gao Hongtao <hanahmily@gmail.com>

* fixup! Add Tls setting to Tracing message
2020-04-24 07:40:24 -07:00
Neeraj Poddar d5c7faf177
Configuration option for gateway topology (#1394)
* Added configuration options for gateway topology

* Review comments
2020-04-23 12:14:07 -07:00
Nathan Mittler f2a0c84364
Adding example for ClusterLocal services (#1398) 2020-04-23 11:23:25 -07:00
Istio Automation c4be55f6e6
Automator: update common-files@master in istio/api@master (#1400) 2020-04-22 15:23:39 -07:00
Istio Automation 1d7fee44d4
Automator: update common-files@master in istio/api@master (#1399) 2020-04-22 12:19:53 -07:00
Kuat f8795e60a0
add default extra stat option (#1368)
* add default extra stat option

Signed-off-by: Kuat Yessenov <kuat@google.com>

* make gen

Signed-off-by: Kuat Yessenov <kuat@google.com>

* review

Signed-off-by: Kuat Yessenov <kuat@google.com>

* regenerate

Signed-off-by: Kuat Yessenov <kuat@google.com>

* update per review

Signed-off-by: Kuat Yessenov <kuat@google.com>

* fix gen

Co-authored-by: Mandar U Jog <mjog@google.com>
2020-04-22 11:13:50 -07:00
Nathan Mittler dd0624ae32
Expanding cluster-local support to include specific services. (#1383)
Also adding support for future host-based attributes.
2020-04-22 08:27:35 -07:00
Istio Automation 7741f8e0f3
Automator: update common-files@master in istio/api@master (#1396) 2020-04-21 13:40:06 -07:00
Istio Automation d84e040314
Automator: update common-files@master in istio/api@master (#1395) 2020-04-21 11:55:18 -07:00
Diem Vu 90a9607296
Remove alpha authentication CRD (#1393) 2020-04-17 15:31:36 -07:00
Ed Snible e7679329ea
Fix invalid ServiceEntry sample (#1392) 2020-04-17 10:10:56 -07:00
Jason Wang 7dddf3e33e
fix destination rule crd (#1391) 2020-04-16 16:36:51 -07:00
Istio Automation 091c91ae59
Automator: update common-files@master in istio/api@master (#1390) 2020-04-16 14:44:29 -07:00
John Howard baab1f25e9
Make operator.meshConfig an interface type (#1384)
* Make operator.meshConfig an interface type

Otherwise we lose information as the round trip of json -> meshconfig ->
json is lossy. See https://github.com/istio/istio/issues/22948 for more
information

* fix protolock

* Add shell

* release lock

* test
2020-04-16 11:46:46 -07:00
Jason Wang f564a7563e
Fix port name doc in gateway (#1387) 2020-04-16 10:08:03 -07:00
jacob-delgado 5eb0c08ebd
Add mesh-wide support for custom tags in tracing (#1369)
* Support custom tags in mesh config

* Run make gen

* Code review comments

* Re-run make gen

* Code review comments

* Re-run make gen

* Minor edit

* Hide custom tags from docs in proxyconfig

* Run make gen

* Add support for specifying length of span tag value

* Make gen

* Code review comments

* Add tracing sampling configuration options

* Run make gen

* Only have random_sampling. Rename to sampling

* make gen
2020-04-16 08:24:25 -07:00
John Howard 1cf009d46d
Fix gen (#1386) 2020-04-16 07:19:34 -07:00
Istio Automation 5e56c1c8a8
Automator: update common-files@master in istio/api@master (#1381) 2020-04-14 06:53:26 -07:00
Istio Automation 23416557c7
Automator: update common-files@master in istio/api@master (#1379) 2020-04-13 16:54:33 -07:00
Istio Automation 96ed8fb94c
Automator: update common-files@master in istio/api@master (#1377) 2020-04-12 10:22:38 -07:00
Tariq Ibrahim adbe0d8bcc
update kubernetes and proto dependencies (#1376) 2020-04-11 14:06:17 -07:00
Istio Automation 715a3039a0
Automator: update common-files@master in istio/api@master (#1375) 2020-04-10 07:11:05 -07:00
Istio Automation 852f8fa8e3
Automator: update common-files@master in istio/api@master (#1374) 2020-04-09 14:01:58 -07:00
Istio Automation b9442befcc
Automator: update common-files@master in istio/api@master (#1373) 2020-04-09 09:14:52 -07:00
John Howard fb462ece86
Add configuration for prometheus aggregation (#1354)
* Add configuration for prometheus aggregation

Design:
https://docs.google.com/document/d/1TTeN4MFmh4aUYYciR4oDBTtJsxl5-T5Tu3m3mGEdSo8/edit

* regen

* aggregate -> merge

* add default

* fix gen

* Update comment

* gen
2020-04-07 10:16:55 -07:00
Jens Ulrich Hjuler Fosgerau e61fec7453
Fix rendering of yaml in RequestAuthentication docs (#1367) 2020-04-07 07:22:52 -07:00
Istio Automation 67297ce916
Automator: update common-files@master in istio/api@master (#1365) 2020-04-03 14:13:12 -07:00
Emre Savcı d8ca184f8e
delete redundant space on envoy_filter.proto (#1362)
* delete redundant space on envoy_filter.proto

extra space causes yaml to be invalid

* make clean gen for typo
2020-04-03 02:34:22 -07:00
Zhonghu Xu fb318b28df
Add support for VirtualService delegate (#1209)
* Added route delegate in virtualservice

* make gen

* make proto-commit

* make gen

* address comment
2020-04-02 23:49:18 -07:00
Ed Snible d0e0a5e651
Label for the Istio Control Plane revision and the labels created by the Operator (#1361)
* Annotation for the Istio Control Plane revision

* Use labels, not annotations
2020-04-01 15:38:54 -07:00
Istio Automation 81158ab0bf
Automator: update common-files@master in istio/api@master (#1356) 2020-04-01 11:38:02 -07:00
Nathan Mittler 3ca04d2c22
Adding ClusterLocalNamespaces to mesh config (#1359)
This is currently kept as a hidden/undocumented property
2020-03-30 14:05:52 -07:00
Shriram Rajagopalan ce1b8dd24c
Localhost TLS termination and initiation in Sidecar (#1333)
* Localhost TLS termination and initiation in Sidecar

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* cleanup gateway SDS documentation

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* nits

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* release lock status

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* update release locks

* nits

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* undo

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-03-26 12:33:17 -07:00
John Howard 81b5dc1926
Remove redundant connect timeout (#1352)
This field exists in both mesh config and proxy config. The one I am
removing is in proxy config, as it is very confusing to have the same
field in two different places. This is currently used in one single
place: XDS cluster timeout:
d131b957ac/tools/packaging/common/envoy_bootstrap_v2.json (L308)

I don't see a strong need to have that configurable, but if we do we can
just pull it from the mesh config setting.
2020-03-25 23:23:26 -07:00
John Howard 3f88ef9cac
Fix WorkloadEntry CRD (#1353)
* Fix WorkloadEntry CRD

Currently the workload entry is generating an invalid CRD as its trying
to store both alpha and beta - it should just be one. I also added an
extra column to print out the address

* regen
2020-03-25 13:24:43 -07:00
Yangmin Zhu 162cd100b1
Hide v1alpha1 RBAC and Authentication policy (#1351)
* hide RBAC

* hide authN
2020-03-25 06:38:22 -07:00
Shriram Rajagopalan 8217d7225b
VMs: Separate endpoints from service entry into WorkloadEntry (#1331)
* Separate endpoints from service entry

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* fixes

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* sync

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* move message out

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* renaming

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* generate files

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* update release lock status

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* make gen

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* bad merge

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-03-24 17:53:57 -07:00
rolandkool 85b9e55c6f
Document new sidecar annotations for setting resource limits (#1346)
* Document new sidecar annotations for setting resource limits

* update auto generated files
2020-03-24 17:38:56 -07:00
Diem Vu f290a04d07
Fix comment indent (#1345) 2020-03-24 17:38:48 -07:00
Jason Wang 11f0c7211a
Generate with latest build tool (#1349) 2020-03-24 16:02:30 -07:00
Istio Automation 80703ae0a8
Automator: update common-files@master in istio/api@master (#1347) 2020-03-24 12:10:22 -07:00
Shriram Rajagopalan 32b3c42553
Remove old envoyfilter fields (#1344)
* Remove old envoyfilter fields

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* release lock status

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-03-24 08:51:20 -07:00
John Howard 6bfc9cb1f4
Add UNSPECIFIED option for ingress mode (#1342)
* Add UNSPECIFIED option for ingress mode

Otherwise, its impossible to tell if something is set or if its OFF,
meaning we cannot change the default. This blocks
https://github.com/istio/istio/pull/22326

I am not sure if this is something that is legal to change though...

* Fix locks
2020-03-23 12:55:49 -07:00
Daniel fefdc2c661
add more details for TCP connection timeout description (#1343)
* add more details for TCP connection timeout description

* make gen

* add mke gen-check
2020-03-21 20:01:09 -07:00
Istio Automation 5d4196f4e0
Automator: update common-files@master in istio/api@master (#1341) 2020-03-19 10:13:29 -07:00
Shriram Rajagopalan 87dde8cda9
cleanup unused and incorrect annotations (#1332)
* cleanup unused and incorrect annotations

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* nits

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-03-18 08:34:52 -07:00
Shriram Rajagopalan 41d13517a8
cleanup gateway SDS documentation (#1334)
* cleanup gateway SDS documentation

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* nits

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-03-17 14:03:22 -07:00
Shriram Rajagopalan ca65536045
Add Josh to master code owner list (#1340)
To reflect TOC changes
2020-03-17 13:31:26 -07:00
Douglas Reid e49000d6b2
feat(label): add label package (#1339)
* feat(label): add label package

Signed-off-by: Douglas Reid <dougreid@google.com>

* add copyright banner

Signed-off-by: Douglas Reid <dougreid@google.com>
2020-03-17 11:09:26 -07:00
Shriram Rajagopalan 200da86cbc
revert #1248 - sidecar inboundTls (#1330)
* revert #1248 - sidecar inboundTls

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* protos

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-03-17 06:45:32 -07:00
Istio Automation dc6271ee34
Automator: update common-files@master in istio/api@master (#1336) 2020-03-16 11:32:17 -07:00
Shamsher Ansari 62026b23fc
Update ECMAscript to RE2 (#1327) 2020-03-15 11:12:15 -07:00
Martin Ostrowski feb6af7f7b
Fix bug with JSON tag camelCase conversion (#1324)
* Fix bug with JSON tag camelCase conversion

* Check for leading underscore in generated code

* Gofmt
2020-03-13 02:52:55 -07:00
Istio Automation d2e2572893
Automator: update common-files@master in istio/api@master (#1325) 2020-03-12 14:40:09 -07:00
Istio Automation 126db96871
Automator: update common-files@master in istio/api@master (#1323) 2020-03-11 16:09:30 -07:00
Istio Automation 89897d2e35
Automator: update common-files@master in istio/api@master (#1322) 2020-03-11 13:53:21 -07:00
Martin Ostrowski 281c9f1c58
Fix MeshConfig field tags for JSON unmarshal (#1320) 2020-03-11 12:45:01 -07:00
Istio Automation f75cb6ced5
Automator: update common-files@master in istio/api@master (#1319) 2020-03-10 01:16:39 -07:00
Istio Automation c89d0ade59
Automator: update common-files@master in istio/api@master (#1318) 2020-03-09 21:05:49 -07:00
Istio Automation f309114ead
Automator: update common-files@master in istio/api@master (#1317)
* Automator: update common-files@master in istio/api@master

* Update .gitignore

Co-authored-by: John Howard <howardjohn@google.com>
2020-03-09 11:38:10 -07:00
Zhonghu Xu c69d1c4a1d
Update envoyfilter (#1315)
* update envoyfilter example

* gen file
2020-03-09 09:39:57 -07:00
Istio Automation 7f43e14ded
Automator: update common-files@master in istio/api@master (#1313) 2020-03-07 11:07:42 -08:00
Istio Automation c2e88eb42b
Automator: update common-files@master in istio/api@master (#1312) 2020-03-06 19:25:19 -08:00
Istio Automation ecd0c598dc
Automator: update common-files@master in istio/api@master (#1311) 2020-03-06 18:41:36 -08:00
Istio Automation b1e4350a37
Automator: update common-files@master in istio/api@master (#1310) 2020-03-06 16:46:58 -08:00
Istio Automation 742c301584
Add short name for RequestAuthentication and PeerAuthentication (#1304)
Co-authored-by: diemtvu <diemtvu@users.noreply.github.com>
2020-03-05 14:03:54 -08:00
Istio Automation 60d7d118d7
Automator: update common-files@master in istio/api@master (#1308)
Co-authored-by: istio-testing <istio-testing@users.noreply.github.com>
2020-03-05 11:44:45 -08:00
Istio Automation f73b0b5a5a
Add status port to proxy config (#1296)
* Add STS and status port to proxy config

For https://github.com/istio/istio/issues/21222

This is part of the effort to move configuration out of flags/env vars
into mesh config for agent (and other fields). These fields are
currently only passed via helm, I am moving them to mesh config in the
same form they were in.

* fix type

* Remove STS
2020-03-04 19:57:29 -08:00
Istio Automation 97136ce53d
Automator: update common-files@master in istio/api@master (#1306) 2020-03-04 17:32:25 -08:00
Rama Chavali 9fc7ffee08
update docs for stats patterns (#1292)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2020-03-03 03:56:41 -08:00
Martin Taillefer 134bf514b3
Removing myself 2020-02-29 16:55:01 -08:00
Istio Automation 5ce1c9cc55
Automator: update common-files@master in istio/api@master (#1302) 2020-02-27 04:43:50 -08:00
Diem Vu 98a77fbfb2
Deprecate authentication policy (#1290) 2020-02-26 18:46:34 -08:00
Istio Automation 4553ae51e6
Automator: update common-files@master in istio/api@master (#1298) 2020-02-26 13:50:51 -08:00
Martin Ostrowski cca495b82b
Change int or strings fields to interface type for yaml unmarshal (#1297)
* Change int or strings fields to interface type for yaml unmarshal

* Update 1.5 proto lock
2020-02-25 18:45:46 -08:00
Istio Automation b245c555a4
Automator: update common-files@master in istio/api@master (#1271) 2020-02-21 19:50:36 -08:00
Shamsher Ansari 228308df3f
Make external links in Global Mesh Options page clickable (#1293) 2020-02-20 18:59:27 -08:00
Jason Wang 31e7c1917c
Fix front matter generation in some API docs (#1295)
* fix front matter generation in some API docs

* regen
2020-02-20 16:52:26 -08:00
Morven Cao d90ddaf53c
deprecate status_string field in operator api. (#1291) 2020-02-20 05:49:18 -08:00
kentchenjh 7fd43ea7fc
fix destination rule ttl mismatched type (#1285) 2020-02-17 17:31:18 -08:00
Yangmin Zhu 00efe73173
fix authz API documentation (#1288) 2020-02-13 15:01:20 -08:00
Martin Ostrowski a25e995402
Add location tag for istio.io doc scraping (#1287)
* Add location tag for istio.io doc scraping

* Make gen
2020-02-13 13:35:59 -08:00
Jason Wang 628048ed55
Sync v1alpha3 and v1beta1 APIs (#1286) 2020-02-13 10:32:48 -08:00
Jack Kleeman 6fa980ccf4
Use golang protobuf in operator json generated code (#1283) 2020-02-12 06:00:15 -08:00
Morven Cao 2835595eb4
fix operator go struct tag (#1277)
* fix tag for operator go struct.

* keep protobuf key unchanged.

* fix lint.
2020-02-11 18:56:37 -08:00
Shriram Rajagopalan 7e4faad991
Sidecar Outbound Traffic Policy allow_any mode tweaks (#1279)
* Catch all egress gateway

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* doc updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* refactor

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates 2

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-02-11 12:39:08 -08:00
Kun Chang 251e511063
add retry_remote_localities for retry (#1156) 2020-02-11 08:30:25 -08:00
Martin Ostrowski 9564cdd03c
Tag must be interface{} type for unmarshaling (#1275)
* Tag must be interface{} type for unmarshaling

* Update releaselocks
2020-02-07 18:09:12 -08:00
Shriram Rajagopalan e090ac3f82
custom TLS termination at sidecar (#1248)
* wip

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* adding TLS to sidecar ingress

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* v1beta1

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* proto gen

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* doc updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* fixes

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* Revert "fixes"

This reverts commit cf52ae5738.

* Revert "updates"

This reverts commit 6019f00dc8.

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* doc update

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* update doc

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* doc updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-02-07 14:56:51 -08:00
Zhonghu Xu 8af5bcd0f1
Add query param based hash (#1272) 2020-02-06 09:06:18 -08:00
Jack Kleeman 365fa8c98b
Add source_namespace to match attributes (#1254)
It would be useful to be able to route on source namespace additional to
source labels
2020-02-03 10:54:40 -08:00
Jack Kleeman ffa85b11a3
Add json codegen for Operator (#1263)
We have a pretty nasty bug where fields with two names, eg
UnvalidatedValues, aren't getting unmarshaled properly in k8s clients
because we haven't set up jsonpb unmarshaling for the Operator. This
should solve it.
2020-02-03 09:54:14 -08:00
John Howard 7b905a0a6e
Add istio.io/rev (#1260) 2020-01-31 16:16:07 -08:00
Jason Wang 082bb23391
Add networking v1beta1 example to docs (#1266) 2020-01-31 15:12:58 -08:00
Jonh Wendell 7ecef25d61
Update common (#1265)
* Update common files

* make gen
2020-01-31 10:40:00 -08:00
Diem Vu 659a010b17
Peer authentication beta API, aka mTLS beta (#1241)
* Peer authentication beta API, aka mTLS beta

* Add missing gen file

* Update CRD cue and re-gen"

* Add port level mtls

* Udate proto.lock after rebase

* Remove port level settings for now. We might add it later

* Re-gen

* Apply comment suggestions

* Add port level mTLS settings

* Add example for inherit parent settings

* Rename invalid to unset

* Rename invalid to unset

* Address comments

* Address comments
2020-01-30 17:40:34 -08:00
Jason Wang 5866f09f1c
Sync between v1alpha3 and v1beta1 and add back reverted commit (#1255) 2020-01-30 16:44:44 -08:00
Jason Wang 10b8d8b27e Add release-1.5 protolock (#1258)
* Add release-1.5 protolock

* fix go linter

* proto commit
2020-01-28 11:40:49 -08:00
Shriram Rajagopalan 833498da27 Update EnvoyFilter API docs (#1247)
* update envoyfilter docs

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* fixes

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* generate proto

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2020-01-28 07:37:01 -08:00
Martin Ostrowski 09de24aba1 Mirror HorizontalPodAutoscalerSpec to fix overlay issue (#1251)
* Update operator proto with explicit namespace

* Mirror HorizontalPodAutoscalerSpec to fix overlay issue

* Lint

* Make gen
2020-01-27 15:47:35 -08:00
John Howard 2e8814b40f Revert "Add without_headers field to HTTPMatchRequest for specifying if-not-present semantics (#1233)" (#1250)
This reverts commit b255104af7.
2020-01-25 20:16:26 -08:00
Peter Novotnak 84dc760300 reference thrift config in meshconfig (#1239) 2020-01-23 19:53:05 -08:00
Francois Pesce 9fbb385560 Release 1 5 common files update (#1240) 2020-01-22 13:45:07 -08:00
Nupur Garg 5978992a6e Add option INSERT_FIRST in EnvoyFilter.Patch.Operation (#1234) 2020-01-21 16:27:00 -08:00
Gregory Hanson a7d27b8cd6 clarify acceptable values for protocolDetectionTimeout (#1238) 2020-01-21 11:02:25 -08:00
Xinnan Wen 22f70e5f01 fix toleration type for operator (#1236) 2020-01-21 10:25:44 -08:00
Ingwon Song b255104af7 Add without_headers field to HTTPMatchRequest for specifying if-not-present semantics (#1233) 2020-01-20 13:13:38 -08:00
Peter Novotnak 776c2d7b73 Initial thrift configuration (#1235)
* initial thrift configuration

* move thrift options to message

* fix field names and type
2020-01-17 11:48:47 -08:00
Xinnan Wen 9fcdbdc649 use custom type for k8s intorstring (#1229) 2020-01-16 17:25:39 -08:00
Jason Wang 7e12b4ec2f Add v1beta1 for Networking APIs (#1232)
* Add v1beta1 networking APIs

* rebase and regen
2020-01-15 09:42:00 -08:00
Joe Selman 7f5243e44d Add annotation for suppressing analyzer messages per-resource (#1227) 2020-01-14 10:33:23 -08:00
Morven Cao 80fb3f4c49 move status out of operator spec api. (#1231) 2020-01-10 16:08:14 -08:00
Yangmin Zhu 660e8ea299 add deny and negative match in authorization policy (#1222)
* add deny support in authorization policy

* add exclude semantics

* update comments

* update comments

* address comments

* update comments
2020-01-10 14:09:49 -08:00
Morven Cao 2f9dfd28a2 add service annotation to KubernetesResourcesSpec in operator api. (#1230) 2020-01-10 11:40:08 -08:00
Zhonghu Xu e7b15ef814 Remove some fields in virtualservice (#1214)
* Remove deprecated fields in VS

* gen crd
2020-01-10 02:44:35 -08:00
ZereChen 08509ba5b8 add allow_origins in CorsPolicy. (#1197) 2020-01-10 01:00:34 -08:00
Yangmin Zhu dbc1d7b502 fix comments (#1228) 2020-01-08 18:55:30 -08:00
Kun Chang 6166b45d34 add annotation for enableCoreDump (#1226) 2020-01-08 10:16:17 -08:00
Kun Chang ad468de08f add enabled for locality lb (#1182) 2020-01-08 09:15:19 -08:00
Jason Wang c785926a84 Add kubeType annotation for mixer CRD client registration (#1219) 2020-01-06 11:14:29 -08:00
Martin Ostrowski 0593b0ef35 Move operator API to separate dir (#1223)
* Move operator API to separate dir

* Update linter settings

* Add make gen files

* Add values field to gateways

* Make gen

* Add enablement for gateways

* Remove CoreDNS from core components list
2020-01-06 09:02:25 -08:00
Diem Vu 7a503499ce Deprecate obsolete fields in authN alpha policy. (#1206)
* Deprecate obsolete fields in authN alpha policy.

* Update comments

* Address comments
2020-01-03 09:52:23 -08:00
Jason Wang b8a70ca43b Change mixer CRDs to lower case (#1218) 2019-12-23 12:51:18 -08:00
Martin Ostrowski 48d712f99a Partial revert of #1211, part 2 (#1217) 2019-12-23 11:17:06 -08:00
Martin Ostrowski 2201aa34d2 Partial revert of #1211 (#1216) 2019-12-23 10:25:06 -08:00
Matt Turner 3dcc874c28 Remove incorrect escape character. (#1193)
Also add full syntax for the YAML value, to remove ambiguity.
2019-12-21 11:08:06 -08:00
Frank Budinsky 7791470ecc Put back doc for gateways field in http match (#1210)
* Put back gateways doc in http match

* Put back gateways doc in http match

* address review comment

* grammar tweak
2019-12-20 09:59:05 -08:00
Ying Zhu b5c3569683 deprecate consecutive_errors and add consecutive_gateway_errors & consecutive_5xx_errors (#1189)
* istio-api: add consecutive_5xx_errors for outlier detection

This CL adds consecutive_5xx_errors field in OutlierDetection.
This field describes the number of 5xx errors before a host is
ejected from the connection pool.

I made changes to destination_rule.proto, the other files are auto-generated.

Change-Id: Ib5097b3c6bf3ea2b8b2f857491537acb674ae1ff
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/195
Reviewed-by: Brian Wolfe <brian.wolfe@airbnb.com>
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>
Reviewed-by: Weibo He <weibo.he@airbnb.com>

* Revert "istio-api: add consecutive_5xx_errors for outlier detection"

This reverts commit 064b737396200a84ed5fd6303ae6b68b48c569b3.

Reason for revert: decided to deprecate consecutive_errors

Change-Id: I95e3191db30711b1ce7abdebe7639de4899f2ab1
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/163
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>

* istio-api: deprecate consecutive_errors and add gateway & 5xx errors

With the original consecutive_errors design, there is no way to turn
off consecutive gateway errors. This CL deprecate the field and add two
new fields: consecutive_gateway_errors and consecutive_5xx_errors.

See discussions here: https://github.com/istio/api/issues/909

Change-Id: I0e98990d194216cef842fb792a76a5f59b6e674e
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/199
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>
Reviewed-by: Weibo He <weibo.he@airbnb.com>

* istio-api: consecutive 5xx defaults to 5, gateway defaults to 0

This CL changes the description of consecutive_5xx_errors and
consecutive_gateway errors. 5xx defaults to 5 and gateway defaults to 0.

Change-Id: I6c3b29cf92df1c972a7850a726eb159b5e23bf90
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/211
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>

* istio-api: reword consecutive 5xx & gateway descriptions

This CL rewords the descriptions of consecutive 5xx & gateway as
suggected in https://github.com/istio/api/pull/1189/files.

Change-Id: Ia95c03da78a2c9f12c8762b9d8fb95e7add08516
Reviewed-on: https://gerrit.musta.ch/c/public/istio-api/+/214
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>
2019-12-20 09:53:05 -08:00
Martin Ostrowski 5a4614ed97 Fixes for synthetic and k8s types (#1211)
* Fixes for synthetic and k8s types

* Lint, gen
2019-12-19 14:16:05 -08:00
rolandkool 1928603d61 Fix deny all authorization policy examples (#1184)
* Fix deny all authorization policy examples

* update auto-generated files

* put empty hash on a new line
2019-12-18 08:07:23 -08:00
Steven Dake 7bafbd24c1 commonfiles-master-2019-12-15T16-17-48 (#1208) 2019-12-17 19:18:25 -08:00
Steven Dake 769833c753 commonfiles-master-2019-12-15T16-17-48 (#1207) 2019-12-17 16:08:24 -08:00
Diem Vu 3738877341 Add forward spec to JWTRule (#1172)
* Add forward spec to JWTRule

* Drop forward_original

* Rename forward-xxx to output-

* Update proto.lock due to Jwt -> JwtRule rename

* Add back the option to keep the original token

* Update comment for less google specific

* Rename retain_ to forward_

* Fix rebase proto.lock
2019-12-16 19:20:50 -08:00
Martin Taillefer cc9d61a1c5
Fix some comments that were leading to bogus HTML. (#1202) 2019-12-14 23:08:44 -08:00
Lin Sun 38e933ff4a update to individual owners (#1200) 2019-12-14 23:08:23 -08:00
Jason Wang fb6ac89050 Remove field rules from api repo (#1196)
* Remove field rules from api repo

* force push protolock file
2019-12-13 08:27:36 -08:00
Costin Manolache f04959cc85 Few small updates to the mesh config API (#1194)
* Few small updates to the mesh config API

* Make gen, update

* Update based on feedback

* Add hide from docs until impl is ready
2019-12-12 12:52:02 -08:00
Suresh Visvanathan 73d66eb8c8 Even with permissive mode, the TLS require client cert (#1191) 2019-12-10 12:45:43 -08:00
Martin Ostrowski 2bfe3e1437 Refactor and integrate MeshConfig and IstioControlPlaneSpec (#1177)
* Refactor and integrate MeshConfig and IstioControlPlaneSpec

* Fix hub comment

* Review comments

* Update status

* Added istiod

* Review comments

* Remove stray message

* Proto gen fixes

* Mirror k8s structs that have import problems

* Remove debug

* Update comment

* Consolidate some types

* Merge gateways

* Remove proxy config type

* Add name field for gateways

* Update gateways

* Update generated files

* Update go.mod

* Licenses

* Lint

* More lint, add gw label

* Add lint debug output

* Address comments

* Removing debug character
2019-12-10 09:32:28 -08:00
Jason Wang d2b87eef56 Use annotations for CRD gen (#1192)
* change crd gen to use annotations

* Add more annotations to crds

* revert generated kubernetes file

* regen with new container

* use the new image and regen

* cleanup and regen
2019-12-05 15:45:47 -08:00
Frank Budinsky 3197d4dee3 Clarify location of timeout field (#1185) 2019-11-30 07:26:46 -08:00
Jason Wang 7d2523df8d add istio api extensions definitions (#1186) 2019-11-29 07:43:04 -08:00
Krishna Vudata 24b8eae6b1 Docs for namespace of VirtualService gateways (#1180)
* Docs for namespace of VirtualService gateways

* Revert "Docs for namespace of VirtualService gateways"

This reverts commit 623a8cbd5c.

* properly generate new docs via proto

* run make proto-commit
2019-11-26 22:02:11 -08:00
Frank Budinsky 62544e3fed Fix broken link (#1181) 2019-11-26 07:20:42 -08:00
Brian Wolfe 2a7248f229 VirtualService: use a double for mirror_percent (#1173)
To support mirroring less than 1% of traffic to a destination, the
mirror_percent field should provide specification of percentages less
than 1. Envoy permits mirroring fractions as small as 1 in 1,000,000.
The Delay and Abort messages already encountered this issue and
solved it by using a Percent (== double) field called percentage instead
of an integer field called percent.

Here, we support small fractions in mirroring using the same pattern,
using mirror_percentage in place of mirror_percent and deprecating the
mirror_percent field.

When reading mirror_percentage, we will need to handle rounding
of numbers near 1.0e-6 carefully because the floating point
representation will not be exact.
2019-11-25 18:37:42 -08:00
Clay f0abe0c81e Use different example in api guidelines (#1176)
"Config" is short for "configuration" which confused me for a bit. I
think having a more obvious example will help not distract readers from
the point of this guideline.
2019-11-20 11:56:22 -08:00
Frank Budinsky 7a8183d7e4 Fix broken aliases (#1170) 2019-11-15 09:12:46 -08:00
Diem Vu 70879dca4e Fix documentation for RequestAuthentication (#1168)
* Fix documentation for RequestAuthentication

* Fix merge
2019-11-14 15:48:46 -08:00
Jason Wang 4d74abbb0d Add RequestAuthentication to CRD gen (#1169) 2019-11-14 13:47:19 -08:00
Diem Vu 62bf0afefa Add RequestAuthetication API (#1151)
* Add RequestAuthetication API

* Address comments

* Make JWTHeader type to define header with prefix

* Revert go.sum

* Address more comments

* Add blank line to end of file

* Update JwtHeader field

* Rename JwtHeader to JWTHeader for consistency

* Update security/v1beta1/jwt.proto

Co-Authored-By: Sven Mawson <sven@google.com>

* Update make gen

* Regenerate file after rebase

* Update comment

* Rebase
2019-11-12 19:06:52 -08:00
Frank Budinsky e071453522 Reorganize reference docs (#1165) 2019-11-11 12:03:08 -08:00
Daniel Grimm 614e713a51 Disable circuit breaking by default (#1139)
This updates ConnectionPoolSettings comments according to #17346
2019-11-11 11:41:54 -08:00
Jason Wang e511348728 Generate with new container (#1164)
* Generate with new container

* update common file
2019-11-08 17:19:11 -08:00
Jason Wang 6818c03d25 Gen for annotations (#1162) 2019-11-07 14:46:52 -08:00
John Howard 75ed25ab68 Add operator annotations (#1160)
* Add operator annotations

* Fix language
2019-11-06 14:09:15 -08:00
Yangmin Zhu 5ef26cf6cb update the RBAC and authz doc for 1.4 (#1158) 2019-11-05 07:44:25 -08:00
Jason Wang 3fcb499e2a Regen based on new container (#1152) 2019-11-01 15:10:11 -07:00
John Howard 9fe6a7da36 Fix default doc for idle timeout (#1140)
This was changed in https://github.com/envoyproxy/envoy/pull/8629
2019-10-28 18:22:34 -07:00
aattuluri 9a5ec23e27 Add locality load balancer settings on destination rule (#1141)
* Move locality load balancer settings to destination rule and use it in config.

* Add proto generated files with protolock

* Update based on proto run.

* Fix conventions

* Additional changes after generation

* Update the protolock status files.

* Add locality load balancer settings under port traffic policy

* Moved locality load balancer settings under load balancer settings.

* Remove extra lines added.

* Update after make gen.
2019-10-28 11:16:01 -07:00
Martin Taillefer e871b2898d
Update common files. (#1146)
- Make the gen target invoke tidy-go and mirror-licenses.
2019-10-24 13:08:52 -07:00
Jason Wang d00922a1ff Add CRD structural schema generation (#1142)
* modify cue configuration

* Add CRD structural schema generation

* remove preserveUnknowFields
2019-10-23 17:20:41 -07:00
Frank Budinsky a941678415 Add backticks around sidecar doc symbols (#1145) 2019-10-23 15:23:48 -07:00
Frank Budinsky cad0b366e4 Clarify connection pool example (#1143)
* Clarify connection pool example

* regen
2019-10-23 09:53:10 -07:00
Diem Vu 1bbff2ef25 Remove unimplemented/unused labels in authn target selector (#1118)
* Remove unimplemented/unused labels in authn target selector

* Rebase
2019-10-22 13:51:09 -07:00
Martin Taillefer 3f3fc3abb8
Fix URL references to account for moved content. (#1137) 2019-10-17 10:50:43 -07:00
Martin Taillefer 5ee5d605c4
Fix bad alias syntax. (#1135) 2019-10-17 10:16:37 -07:00
Martin Taillefer e0c65682fa Updated paths for networking docs. (#1133) 2019-10-17 08:53:15 -07:00
Kuat 9582c9e793 do not generate envoy xds protos here (#1110)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2019-10-17 06:32:15 -07:00
Jason Wang e33ecc3d73 add release 1.4 protolock (#1131) 2019-10-16 15:45:07 -07:00
Eric Van Norman 2a243b3efb Update go modules to use the latest patch releases (#1127)
* Update go modules to use the latest patch releases

* Revert github.com/gogo/protobuf since update caused failure in istio
2019-10-16 09:53:39 -07:00
Yan Xue 31d048906d update alpn filter api (#1128)
* update alpn filter api

* update api
2019-10-16 08:15:39 -07:00
Jason Wang bfa91e88ab Change quota charge to int32 (#1129)
* Change quota charge to int32

* update proto lock

* retro add release locks
2019-10-15 14:07:38 -07:00
Jason Wang 1187adbd14 Use field_behavior as an option for required fields (#1125)
* use field_behavior opiton for required fields

* modify makefile to replace import path for field_behavior

* generate after image update

* changes after comments from policy and telemetry team

* regen after changes

* update networking and rebase
2019-10-14 10:42:57 -07:00
Martin Taillefer da50137db4
Fixed a few comment typos. (#1126) 2019-10-11 12:59:59 -07:00
Martin Taillefer ebe44b4258
Update common files. (#1124) 2019-10-11 09:24:41 -07:00
Frank Budinsky a7165be19f Fix bad quote characters (#1122) 2019-10-10 08:49:24 -07:00
Martin Taillefer 891d7f9d3d
Update common files. (#1121) 2019-10-09 21:18:35 -07:00
Yan Xue 593785242b add config for ALPN filter (#1120) 2019-10-08 18:17:36 -07:00
Martin Taillefer 365fcec87f
Update common files. (#1119) 2019-10-08 17:05:47 -07:00
Ed Snible 7d93c2ea8b Spell check and Istio Style Guide conformance (#1117) 2019-10-08 13:00:37 -07:00
Nathan Mittler 8dfead13c1 Adding target resources to annotations (#1116) 2019-10-08 09:49:03 -07:00
Douglas Reid 096de7877b feat(mesh config): add support for disabling reporting via mixer (#1112)
This PR establishes a way to disable telemetry reporting via Mixer. This
is part of the transition to the extensibility v2 architecture in which
there will be no Mixer in Istio. We need a mechanism to allow
selectively disabling Mixer for experimentation, development, and
migration.

This option is hidden, as it is meant only for experimental usage.

This new field is needed, as setting `mixer_report_server` to be empty
would break TCP reporting during the transition state. When TCP support
reaches parity, this field can be retired in favor of unsetting
`mixer_report_server`.

Related issue: https://github.com/istio/istio/issues/15935

Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
2019-10-03 08:18:28 -07:00
Douglas Reid 88a7b5f700 feat(mixerclient): add field to ignore forwarded attributes (#1085)
* feat(mixerclient): add field to signal mixerclient to ignore forwarded attributes

Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>

* add clarification on precedence

Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
2019-10-02 15:32:28 -07:00
Martin Taillefer 18efaeeae2
Fix the gen-check target (#1114) 2019-10-02 12:28:19 -07:00
Martin Taillefer 67e00885e3
Add a gen-check target. (#1113)
- New common target to check that a repo is clean wrt generated files.
2019-10-02 09:51:41 -07:00
Martin Taillefer 03ce488f22
Fix logic to test if 'make' hasn't been run. (#1111) 2019-10-01 07:53:07 -07:00
lei-tang ca4d65802c K8sCertificateSetting configures the provision of certificates (#1105) 2019-09-30 17:46:24 -07:00
Phillip Quy Le 33a483a29b Add trust_domain_aliases (#1109)
* Add trust_domain_aliases

* Address comment

* Address comment
2019-09-30 15:07:24 -07:00
Frank Budinsky 6b92153267 Doc for VirtualService sourceLabels field (#1108)
* Doc for VirtualService sourceLabels field
2019-09-30 11:02:21 -07:00
Martin Taillefer ee1be9aa0d
Update to latest gogo. (#1107) 2019-09-30 09:40:08 -07:00
Martin Taillefer 4bd5f6af69
Update common files. (#1106) 2019-09-30 07:23:01 -07:00
Rob Cernich 1b594bcab9 Support using api types with k8s code generation tools (#1081) 2019-09-25 11:01:16 -07:00
Martin Taillefer 5587b037a7
Add check to make sure 'make' has been run on the repo before checkin. (#1102) 2019-09-25 08:49:06 -07:00
Gregory Hanson 5e9ae71274 removed port name from the port selector (#1100) 2019-09-25 07:27:42 -07:00
Frank Budinsky b08fcbadad Fix retry policy links (#1098) 2019-09-24 10:40:35 -07:00
Martin Taillefer 9165e1dad4
Fix build process. (#1097) 2019-09-24 10:17:18 -07:00
Jianfei Hu a90f877295 Add an annotation option to opt-in autopilot. (#1090)
* add an annotation option to opt-in autopilot.

* determined typo.

* update the naming to autoMTLS

* update comments.

* move alphabetically sorted.
2019-09-23 18:21:12 -07:00
Martin Taillefer 8430d600db
Update common files and common protos (#1093) 2019-09-23 12:15:05 -07:00
styblope 6e49236a42 refine NetworkEndpoints fromRegistry field description (#1078) 2019-09-23 11:00:15 -07:00
Nenad Stojanovikj 00c9c6a177 Fix missing right quote (#1092) 2019-09-23 10:57:12 -07:00
Nino Kodabande 4de186df9e Allow to describe the source of configuration in configSource (#1083) 2019-09-23 09:42:12 -07:00
John Howard 19527b4d8c Fix EnvoyFilter example (#1091) 2019-09-23 12:26:12 -04:00
Kuat 2387a8cbe1 Revert "fix envoy protos (#1088)" (#1089)
This reverts commit e760b40a75.
2019-09-19 14:50:34 -07:00
Kuat e760b40a75 fix envoy protos (#1088)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2019-09-19 14:33:25 -07:00
Martin Taillefer ebf8c2869a
Restore Mixer client to use gogo code gen. (#1087) 2019-09-19 11:45:31 -07:00
Waret 638cf7f506 correct sample of handler api (#987)
* correct sample of handler api

* correct sample of handler api

* correct sample of handler api
2019-09-17 15:37:08 -07:00
Kuat 9eb49cc466 redo (#1084)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2019-09-17 10:35:07 -07:00
Jonh Wendell 8920ca4382 Add mirror_percent (#1079)
This allows us to mirror only a percentage of the traffic, instead
of always mirroring 100%.

This partially fixes https://github.com/istio/istio/issues/14437, in
conjuction with https://github.com/istio/istio/pull/16939.
2019-09-13 12:48:55 -07:00
Martin Taillefer d5a84f4eac
Enable all linters on this repo. (#1077)
* Enable all linters on this repo.

- Fix a few linting errors.
2019-09-09 10:31:28 -07:00
chen zhengwei 4b780f0bd2 fix spell mistake (#941) 2019-09-09 07:01:44 -07:00
Martin Taillefer cd150f8ca1
Update common files. (#1075) 2019-09-08 08:12:11 -07:00
Tomoya Usami 07957a9b3c Fix typo (#1069) 2019-09-07 06:38:55 -07:00
Yanghui Weng ffa10c76f2 typo fix (#1054) 2019-09-05 19:52:02 -07:00
Lin Sun 906cbe6415 fix the sidecar egress order in the example (#1070)
* fix the sidecar egress order in the example

The sidecar config caused the following error when I applied it.
	* sidecar: the egress listener with empty port should be the last listener in the list

* fix proto

* undo html change

* spaces
2019-09-05 10:21:06 -07:00
leo 92e6362083 Correct some minor syntax errors (#1064) 2019-09-02 04:48:38 -07:00
Martin Taillefer b0e5f9e312 Update CODEOWNERS 2019-08-31 15:27:34 -07:00
Martin Taillefer 639bc154bd Update CODEOWNERS (#1066) 2019-08-31 12:48:29 -07:00
Rama Chavali adb6f9e24b add stat name patterns to mesh config (#1063)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2019-08-28 20:21:30 -07:00
Rama Chavali 4d7314930b revert stat name from destination rule (#1062)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2019-08-27 20:19:52 -07:00
Jason Wang 55bf99d69a Correct Some Reference Example Field JSON Naming to camelCase (#1060)
* change some field name references to camelCase

* run proto lock
2019-08-27 13:34:53 -07:00
Yanghui Weng 16f53cfd08 Modify to a half-width quotation mark to fix the garbled document (#1053) 2019-08-27 11:30:48 -07:00
Rama Chavali 47d59557d3 add stat name pattern (#1056)
* add stat name pattern

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add subset name

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2019-08-27 10:11:54 -07:00
Martin Taillefer 1c58b135ae
Update common files. (#1055)
- Fix some broken dependency tracking.

- Remove a superfluous proto import to get rid of a warning.

- Explicitly select an older build-tools container version, since
the current one has some problems building the protos.
2019-08-26 09:57:37 -07:00
Rama Chavali b1788382cc fix envoy links (#1057)
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2019-08-26 08:04:19 -07:00
Yanghui Weng 2200d073d1 Fix outdated XDS url link (#1052) 2019-08-26 06:55:43 -07:00
Jianfei Hu 64b0d85137 Add feature flag enable_auto_mtls in mesh config. (#1028)
* update the meshconfig for istio mtls auto feature.

* update with wrapper boolvalue.
2019-08-23 10:45:26 -07:00
Martin Taillefer 9dc74657c5
Update common files. (#1050)
This introduces a new protoc compiler, which affects the python code
gen a bit.
2019-08-21 19:43:58 -07:00
Frank Budinsky c93aa8baf3 Update sidecar and gateway hosts doc (#1048) 2019-08-20 13:04:32 -07:00
Zhranklin 9449ee8ac1 fix rbac/v1alpha1/rbac.pb.go (#1037) 2019-08-19 15:49:32 -07:00
Martin Taillefer c9d3da9c66
Switch this repo to BUILD_WITH_CONTAINER=1 (#1046) 2019-08-16 22:11:07 -07:00
Jason Wang 232a0e04c0 Use the merged build tool image (#1044)
* Use the newly merged build tool image
2019-08-16 15:22:39 -07:00
Shriram Rajagopalan 0d1db548cf
Sidecar doc updates (#1039)
* Sidecar doc updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* nits

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-08-15 09:52:34 -04:00
Limin Wang 2745b7cd41 Add WorkloadSelector definition in a common directory. (#1032)
* Add WorkloadSelector definition in a common directory.

* Address comments and fix test.

* Try to fix presubmit test.

* Remove "hide from doc".
2019-08-13 12:47:54 -07:00
Martin Taillefer 35ff5ed8aa
Update to latest container image. (#1034) 2019-08-13 09:40:22 -07:00
Shriram Rajagopalan 93fc23ae4a
Protocol Detection Timeout (#1033)
* Protocol Detection Timeout

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* proto commit

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-08-12 21:24:07 -04:00
Yangmin Zhu 3a122a92ea remove the out-dated authorization policy (#1031)
* remove the out-dated authorization policy

* fix releaselock-1.1
2019-08-12 18:22:52 -07:00
Martin Taillefer 591cf32c1d
Switch to the build-tools image (#1025) 2019-08-09 05:57:25 -07:00
Yangmin Zhu b632c65780 Add authorization policy v1beta1 (#918)
* add authorization policy v1beta1

* address comments

* use workload selector in Sidecar
2019-08-08 20:37:50 -07:00
Shriram Rajagopalan 0e77ec0023
Named routes in VS and few more fields in envoyfilter api (#1026)
* adding few more fields to envoyfilter api

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* nits

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* adding names to virtual service routes

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* proto commit

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* return name to envoy filter

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* docs

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-08-08 14:32:17 -04:00
Gao Hongtao 8b97a45b01 Add Keepalive settings for envoy ALS and metrics services (#1024)
Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
2019-08-07 22:11:36 -04:00
Shriram Rajagopalan 2691e01957
[proxy] Add TLS Settings for envoy ALS and metrics services (#1023)
* Add TLS settings for envoy ALS and metrics services

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* files

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-08-07 20:02:24 -04:00
Martin Taillefer c6210efe50
Fix OpenAPI dependency tracking. (#1021) 2019-08-07 07:46:05 -07:00
Martin Taillefer 502840cb63
Update the common files. (#1020) 2019-08-06 07:54:02 -07:00
Pengyuan Bian a1b90298cb add context.proxy_version into mixer attributes dictionary (#1019) 2019-08-05 11:07:44 -07:00
Martin Taillefer 288b2046a2
Remove mergify link. (#1018) 2019-08-02 15:47:42 -07:00
Martin Taillefer 982935ba45
Add a Galley annotation. (#1017) 2019-08-02 07:46:53 -07:00
Martin Taillefer 27c01d9b41
Fix go.mod file. (#1015) 2019-07-31 22:48:01 -07:00
Martin Taillefer c1f2935580
Point to the right version of generated RPC protos. (#1014) 2019-07-31 16:25:04 -07:00
Shriram Rajagopalan 590323566e
fix proxy version match (#1012)
* fix proxy version match

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* bad merge

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-07-31 18:32:11 -04:00
Martin Taillefer d5b7ba048a
Disable mergify, now using Tide. (#1009) 2019-07-31 14:46:02 -07:00
Martin Taillefer a66c9b061e
Switch to latest tool container and upstream gogo/protobuf. (#1011) 2019-07-31 13:14:08 -07:00
Maximilian Bischoff c3d815cde8 Clarify global IstioEgressListener-hosts setting docs (#1002)
Signed-off-by: Maximilian Bischoff <maximilian.bischoff@inovex.de>
2019-07-31 08:51:26 -04:00
Zhonghu Xu 5ad2b2c986 fix EnvoyFilter docs (#1006) 2019-07-30 12:37:11 -07:00
Steven Dake f306601671 Support gogo-generate forked tooling (#1007) 2019-07-30 10:10:35 -07:00
Steven Dake 9d45a5649a Use a different version of gomod 2019-07-30 09:08:02 -07:00
Steven Dake 0988834cd4 DNM - a test of gogo forked tooling 2019-07-30 08:22:31 -07:00
Martin Taillefer 8d0c8b9e07
Point to the right version of gogo-protobuf (#1005) 2019-07-29 16:38:43 -07:00
Jason Wang 1361ec19ee
Add openapi schema to Istio protos (#989)
* Add openapi schema to Istio protos

* Update generated schema

* update output with the updated generator image

* Remove cue docker files as it is moved to tools repo

* Update json to current

* Update generated json with the latest change

* Update generation with latest changes

* remove some extra newlines in makefile
2019-07-29 16:33:55 -07:00
Martin Taillefer 6da6215163
Update to latest container version. (#1004) 2019-07-29 16:08:05 -07:00
Shriram Rajagopalan fee961ba53
EnvoyFilter: add ability to match on proxy metadata and version (#1003)
* add a proxy version check for envoy patch match

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* update docs

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* update protolock

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* generic proxy match

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-07-29 14:06:31 -04:00
Martin Taillefer 59524407e6
More makefile improvements (#1000)
- Fix some broken dependencies

- Stop generating doc files for non-resource proto packages,
since we don't use those on istio.io anyway.
2019-07-29 09:41:28 -07:00
Martin Taillefer 4285569620
Cleanup makefile (#999)
- Make more human-readable

- Properly track all dependencies

- Simplify container usage

- Combine rules to reduce # tool invocations

- Fix missing python binding for rbac protos.

- Include html link checking as part of linting.

- Retire CircleCi job, since that's now taken care of by the above linting change.

As a result of these changes, a full rebuild takes considerably less time
(1/10th maybe)
2019-07-27 09:34:41 -07:00
Chris Sherry 67272e757e Add TLS certificate default validation options (#973)
* Add TLS certificate default validation options

* Fix nits in gateway.proto

* Regenerate files

* Simplify spki comment

* Remove trusted_ca field and CertificateValidationContext message.
Move validate_certificate_spki near other validation settings.
Add validate_certificate_hash.

* Add TLS certificate default validation options

* Fix nits in gateway.proto

* Regenerate files

* Simplify spki comment

* Remove trusted_ca field and CertificateValidationContext message.
Move validate_certificate_spki near other validation settings.
Add validate_certificate_hash.

* Rebase from upstream

* Revert "Merge branch 'certificateValidation' of https://github.com/Phlak106/api into certificateValidation"

This reverts commit 8ee3ba7931, reversing
changes made to 01f3b1decc.

* update proto.lock with make proto-commit
2019-07-26 22:12:00 +00:00
Martin Taillefer 47261436b2
Update to latest tool container. (#998) 2019-07-26 09:53:31 -07:00
mnktsts2 927332251e Follow a comment about the default value of `min_health_percent`. (#992)
* follow a commen about min_health_percent
* change the default to 0% from 50%
* istio/istio#15609

* Fix letter case
2019-07-26 01:02:39 +00:00
Martin Taillefer 1a4b66d532
Update to latest container rev. (#996) 2019-07-25 16:34:58 -07:00
Martin Taillefer 78c8d88153
Moving these to the tools repo. (#995) 2019-07-25 15:36:28 -07:00
Martin Taillefer ae67f60b2e Generate a doc page for our annotations. (#993) 2019-07-25 21:09:24 +00:00
Steven Dake 26bd136789 Simplify protogen container builder (#994)
* Simplify protogen container builder

The old continer builder was based on Golang 1.9 (according to
@geeknoid; I couldn't actually get it to build).  The container
could use some serious simplificaiton.  If we don't need to pin gRPC
and protobuf, it is better practice to let the experts in golang
distribute their own container (golang:1.12) and work from that.

I have assumed in this PR that they have the correct versions of
gRPC and protobuf, which may be a bad assumption.

Also this PR does not yet build (so don't merge) because of a
dependency problem in the tools repo.  Further, this PR likely
won't build and certainly isn't tested yet, until the tools
repo build problem is sorted out.

Depends-On: https://github.com/istio/tools/pull/222

* Updated to build

* Dockerfile updated for go1.12

This dockerfile is simplified and moved to go 1.12.
2019-07-25 11:21:51 -07:00
Zhonghu Xu 1eedae8506 Revert "Add feature gate in global config (#958)" (#988)
This reverts commit e710196a11.
2019-07-24 21:28:59 +00:00
Sam Naser 48457f4161 Introduce ISTIO_MUTUAL TLSmode in gateway.proto (#991)
It is not possible to specify Istio certificate locations using MUTUAL
mode, so we must introduce ISTIO_MUTUAL TLSmode (as found in
destination_rule.proto). Allows us to use secure mTLS connection
between the gateway and workloads with SDS enabled
2019-07-24 17:56:52 +00:00
Martin Taillefer 3ab1ce77ba
Update mergify config. (#990) 2019-07-22 15:45:34 -07:00
Nathan Mittler 0a0442bf86 Hiding alpha-level annotations. (#986)
Also adding a few stragglers used in istio/istio and istio/installer
2019-07-18 14:34:50 -07:00
mergify[bot] 4f4db2d49c cherry-pick warning from release-1.1 (#977) (#985)
(cherry picked from commit 413c83ff60)
2019-07-18 09:43:43 -07:00
Kun Chang 99722f53e7 add parameter to specify HTTP redirect code (#970) 2019-07-17 23:51:23 -04:00
Yangmin Zhu 36b4225204 authn: add a field to confrol trust domain validation (#980)
* authn: add a field to confrol trust domain validation

* update comments
2019-07-18 00:35:42 +00:00
Nathan Mittler d90184ef5a Add missing policy annotations (#984) 2019-07-16 18:28:21 +00:00
Nathan Mittler a82b00bcd9 Minor cleanup to annotation names (#983) 2019-07-16 17:34:55 +00:00
Shriram Rajagopalan 115cae5613
Tweaks to EnvoyFilter docs and minor api fix (#982)
* tweaks to envoy filter docs and api

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* protolock

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-07-16 13:11:33 -04:00
Nathan Mittler 1963af6763 Autogenerate common Istio annotations (#979) 2019-07-16 08:42:54 -07:00
Martin Taillefer cfbf5c2dbc
Strict mode conflicts with the CLA bot, so turn it off. (#981) 2019-07-16 08:42:25 -07:00
Frank Budinsky f80767926e Header manipulation example (#978)
* Header manipulation example

* regen
2019-07-15 21:14:16 +00:00
Martin Taillefer 5cf4c9399e Test change to ensure mergify is working. (#976) 2019-07-12 22:33:28 +00:00
Martin Taillefer 21264df5be
Switch this repo to Mergify. (#975) 2019-07-12 14:24:36 -07:00
Brian Avery 5c33284f69 Remove reference for name since it fails validation (#960)
* Port name is no longer valid on port selector

* Cleaned up phrasing
2019-07-11 13:39:13 -07:00
Yangmin Zhu ece3d93c51 fix RbacConfig comments and do not hide in documents (#966)
* fix RbacConfig comments

* update weight to put authentication right above authorization
2019-07-09 15:25:12 -07:00
Keith Byrne 6eaef57d82 Add support for STRING_MAP in policy API (#925)
* Add support for STRING_MAP as a supported Value

This change will support implementing STRING_MAP in out of process
adapters.

https://github.com/istio/istio/issues/7645#issuecomment-417306781

* Commit proto.lock.
2019-07-09 14:14:12 -07:00
Zhonghu Xu e710196a11 Add feature gate in global config (#958)
* add feature in mesh config

* gen

* make proto-commit
2019-07-08 21:54:23 -07:00
Utako Ueda 70f6e4eada include PatchContext in EnvoyFilter_EnvoyConfigObjectMatch (#971) 2019-07-08 13:04:18 -07:00
Nupur Garg bcef516bf9 Add a Status field in CheckResponse Quota Result (#967)
* Add a Status field in CheckResponse Quota Result

This is the QuotaResult that is used by grpcServer in istio.io/istio and we can set this when not able to fetch quota and check call can fail in proxy based on fail-open policy set by user.

Ref: istio/istio#12115

* Run make proto-commit
2019-07-08 11:45:18 -07:00
Robert Panzer 4b6c61ecac Fixes #12873. Add property Sidecar.OutboundTrafficPolicy to configure… (#964)
* Fixes #12873. Add property Sidecar.OutboundTrafficPolicy to configure outbound traffic policy individually per application

* Fix difference in proto.lock
2019-07-08 13:58:44 -04:00
Davide Bianchi 9c5d213dcc typo: fix typo in sidecar docs (#968) 2019-07-08 13:54:08 -04:00
mandarjog be8a513844 Add stackdriver tracing config (#959)
Update per comments
2019-07-01 12:43:42 -07:00
Shriram Rajagopalan 8685353777 fix field type (#956)
Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-06-24 11:47:50 -07:00
Shriram Rajagopalan 812ed88951
Enhancing EnvoyFilter with listener/cluster/route mods (#899)
* Add replace/merge semantics in EnvoyFilter

Signed-off-by: Shriram Rajagopalan <rshriram@gmail.com>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@gmail.com>

* Using JSON XPaths

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* doc updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* protolock

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* proto lock

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* release-lock status

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* undo

* Revert "undo"

This reverts commit ae659a19b3.

* proper undo

* multiple matches

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* doc updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* rework apis

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* fixes

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* update release lock

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* updates

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* fixes

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* port names

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>

* hide from docs

Signed-off-by: Shriram Rajagopalan <rshriram@tetrate.io>
2019-06-24 14:16:44 -04:00
Zhonghu Xu 251533346f Fix invalid ServiceEntry docs (#932)
* update ServiceEntry API docs

* gen

* fix comments

* gen

* add blank lines

* fix comments
2019-06-20 09:40:21 -07:00
Phillip Quy Le 868f99fbab Refine RBAC API usage for TCP and gRPC services. (#942)
* Correct gRPC usage for RBAC methods field

* Refine TCP and gRPC usage for RBAC
2019-06-18 11:49:21 -07:00
Martin Taillefer 875defe302
Update common files. (#950) 2019-06-17 09:35:24 -07:00
Rama Chavali 8d15f127d0 docs: minor correction (#947)
* minor doc fix

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* generated docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2019-06-16 16:17:25 -07:00
Kaushik 5e89209e2c #939: Changing the documentation to the format 'namespace/name' (without leading slash) (#944)
* #939: Changing the documentation to the format 'namespace/name' (without leading slash)

* Running make clean generate as per PR comments
2019-06-15 12:05:24 -07:00
Steven Dake 20f94249cb Fix envoy links (#946)
* Modify upstream links that changed in envoy docs

See PR: https://github.com/istio/istio.io/pull/4424/files

This was an emergency blockage during the last few days of release
1.2, so the exact process of modifying API first then modifying docs
was not done.  Instead, sadly it felt backwards (modify docs first,
then modify this repo).

* Run make after modifying protos

This generates the go commented PI as well as the proto HTML
documentation.
2019-06-14 15:30:58 -07:00
Shakti Das 426c8875e2 For Sidecar captureMode NONE, bind inbound listener to instance IP instead of wildcard. (#945)
Signed-off-by: Shakti <shaktiprakash.das@salesforce.com>
2019-06-13 09:03:29 -07:00
Ed Snible 2f353a304b Missing quote in match example (#928)
* Missing quote in match example

* Missing quote in match example

* Generated files must be generated with 'make'
2019-06-12 15:55:39 -04:00
Martin Taillefer 7a674f5eb2 Try to check links in generated .html files (#943) 2019-06-06 14:01:26 -07:00
Gao Hongtao 6f137ab2ce Replacing envoy_google_grpc with envoy_grpc for als (#937) 2019-06-03 19:31:28 -07:00
Martin Taillefer 40410651dc
Add support for auto-cherry pick from master to the release branch. (#936) 2019-06-03 13:46:49 -07:00
mandarjog 5dd7dbbe45 H2 auto upgrade options (#930)
* Add h2upgrade policy

* review comments

* Add generated files
2019-06-01 20:47:16 -07:00
Gao Hongtao a92ad44857 Adding envoy gRPC access log service configuration to MeshConfig (#911)
* Adding envoy_accesslog_service to MeshConfig

* Update config message name

* Adding envoy_accesslog_service to MeshConfig
2019-05-31 08:47:44 -04:00
Martin Taillefer e349b364e0
Import common files into this repo (#935)
- Delete circleci config as its completely redundant with what prow is doing.

- Delete other cruft.
2019-05-30 20:36:13 -07:00
Martin Taillefer 09c6838558 Update URL given new doc location. (#931) (#934) 2019-05-30 14:13:17 -07:00
Hai Huang 9f689ccd27 adding fields to allow batch reporting options to be tunable as helm values (#929) 2019-05-29 11:45:17 -07:00
Santiago Saavedra e29f1a9ce0 Document default behavior for maxRequestsPerConnection (#920)
The default on envoy is to use MAX_STREAMS, defined internally
to be 2²⁹ connections.
2019-05-22 06:57:27 -07:00
fox 41dbaa62e3 improve code snippet style of MeshNetworks (#919) 2019-05-22 06:53:26 -07:00
Venil Noronha 1dffc8d3d2 Add parameter to ignore HTTP match case (#926)
This adds a ignoreUriCase parameter to HTTPMatchRequest to allow for
configuring case-insensitive HTTP URI matching.

Signed-off-by: Venil Noronha <veniln@vmware.com>
2019-05-21 17:40:26 -07:00
David Radcliffe 820986f294 add default max connections to docs (#916) 2019-05-16 21:14:03 -07:00
Nupur Garg 657d9f2e55 Add a status field in QuotaResult (#921)
* Add a status field in QuotaResult

This is so that we can result status when we are not able to fetch quota and check call can fail based on fail-open policy set by user.
Issue: https://github.com/istio/istio/issues/12115

* Fix build
2019-05-16 13:05:03 -07:00
Martin Taillefer 982e5c3888 Add issue templates like in istio/istio (#922) 2019-05-15 13:57:59 -07:00
Hai Huang fb2153e2f1 adding report_batch_max_request and report_batch_max_time to TransportConfig (#914)
* adding report_batch_max_request and report_batch_max_time to TransportConfig

* run make proto-commit

* added comment on the default-value behavior

* added more descriptive comments on the 2 added fields
2019-05-02 06:32:50 -07:00
Rama Chavali 61ea6af9b6 correct default values in the destination rule (#915)
* correct default values in the docs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* revert envoy defaults

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
2019-05-01 19:21:49 -07:00
idouba bd778017b4 update host desc that more than one vs share same host (#874) 2019-04-26 11:44:19 -07:00
Alvaro [Andor] 01fd175d20 Correct percentage value to match 1 out of 1000 docs value (#886) 2019-04-23 14:43:18 -07:00
Arian Motamedi 6b8d1849e7 Adding idle_timeout field to DestinationRule (#891)
* adding idle_timeout setting for upstream connections.

* typo: removing extra whitespace from idle_timeout documentation.

* running proto-commit.
2019-04-05 10:27:52 -04:00
Gregory Hanson 561dceb9fa add Greg Hanson as reviewer/approver to istio/api repo (#892) 2019-04-05 10:01:03 -04:00
Phillip Quy Le 4ad9831be2 Add to ServiceRoleBinding to replace (#885) 2019-04-04 17:54:49 -07:00
Venil Noronha 8a1240dcc3 Add configuration for matching on query params (#883)
This adds the necessary configuration for matching over query
parameters.

Signed-off-by: Venil Noronha <veniln@vmware.com>
2019-04-02 08:34:26 -04:00
Venil Noronha 208c0eaf79 Fix ISTIO_META_USER_SDS styling in docs (#881)
This fixes a minor styling issue with the ISTIO_META_USER_SDS variable
in the Gateway docs.

Signed-off-by: Venil Noronha <veniln@vmware.com>
2019-03-30 07:40:30 -07:00
Martin Taillefer c9118cd127
Update to latest doc gen tool. (#889) 2019-03-29 14:57:17 -07:00
Quanjie Lin c443173254 add sds related param to proxyconfig proto (#884)
* add sds related param to proxyconfig proto

* fix build

* update comment
2019-03-27 16:50:42 -07:00
Ed Snible 785ea83cee Be precise about 'workload' vs 'workload instance' (#876) 2019-03-22 06:42:40 -07:00
John Howard 87afa02b7b Merge release-1.1 into master (#872)
* Doc fixes.

* Add high-level overview and diagrams for MCP (#805)

* document MCP

* add additional note on NACK behavior

* add a note about ignoring stale nonces

* Add envoy metrics service configuration to ProxyConfig (#803)

* Add envoy metrics service configuration to ProxyConfig

Similar to the statsd sink config, this change is in preparation for adding support for the envoy metrics service API.

* Update proto.lock

* Reorder metrics_service_address just after statsd_udp_address

* Update comment in the authN API to match with 1.1 behavior (#808)

* Rename metrics_service_address to clarify that it is for Envoy's API (#809)

Since "metrics service" is so ambiguous, this change specifically denotes that the config is for Envoy's metrics service API. The comments also now link to detailed info about the metrics service API.

* Generate separate HTML page per proto under networking (#811)

* Generate separate pages for each networking proto

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* tweaks

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Fix interdoc references

* separate doc and go gen

* change dash to underscore

* fix

* more fixes

* makefile fix

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* remove bad target

* Revert "change dash to underscore"

This reverts commit 7fbced66f6.

* final update

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Revert "Generate separate HTML page per proto under networking (#811)"

This reverts commit 5f14eadd since it breaks the ability
to generate reference docs in istio.io

* Update to latest tools.

* Revert "Update to latest tools."

This reverts commit 231fadc5 which I accidentally pushed to the
wrong place.

* fix mcp update error diagram (#810)

* update istio/tools (#815)

* Revert "Revert "Generate separate HTML page per proto under networking (#811)"" (#818)

* Minor updates for building docker images. (#817)

* Add spell checking for docs. (#819)

* Add a bunch of words to the custom dictionary.

* Document exportTo restrictions (#820)

* Doc fixes. (#821)

* Proxy config: Add tls_certs_to_watch field (#824)

* Proxy config: Add tls_certs_to_watch field

* Address PR comment

* Revert "Proxy config: Add tls_certs_to_watch field (#824)" (#825)

This reverts commit e613e358ae.

* Update gateway and sidecar hosts doc (#826)

* Update gateway and sidecar hosts doc

* regen

* review comments

* Update API docs (service entry, gateway, sidecar) (#831)

* Update sidecar and gateway docs

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* gen docs

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update service entry

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* add configurable dns refresh rate to mesh for strict dns cluster,  (#832)

* add configurable dns refresh rate to mesh for strict dns cluster, issue #12181

* add lock file

* Hosts are not ignored in ServiceEntry for HTTPs (#833)

* Hosts are not ignored in ServiceEntry for HTTPs

* Clarify

* Reword

* Generate protos

* Address code review comments

* Fix typo

* generate

* make mixer config marshal deterministic (#846)

Signed-off-by: Kuat Yessenov <kuat@google.com>

* Fix some doc errors. (#854)

This started out to just fix a bad link to unblock work on
istio.io, but I ended up fixing a bunch of typos/incorrect format
throughout.

* Fix two more broken links. (#856)

* Fix CRD examples for release-1.1 (#859)

* fix MeshNetworks demo (#841)

* fix MeshNetworks demo

* generate

* update

* last minute doc fixes (#865)

Signed-off-by: Shriram Rajagopalan <rshriram@gmail.com>

* Clarify comment for server_name field in Mixer oop auth config (#800)

* add mixerclient config to istio.io reference docs (#827)

* Envoyfilter docs fix (#867)

* Tweaks to get the mixer client config docs to be published. (#868)

* Change where the Mixer client docs are published.
2019-03-21 13:54:42 -07:00
idouba 70dd072430 ns of egress gateway should be istio-system in the context (#869) 2019-03-20 14:22:39 -07:00
Martin Taillefer 693bbe9236 Delete obsolete leftover file. (#866) 2019-03-19 09:59:40 -07:00
Phillip Quy Le 8b4ca3ebcc Add support for inline role definition (#860) 2019-03-18 14:22:39 -07:00
Ed Snible 8463cba039 Fix example Sidecar structure (#849)
* Fix example Sidecar structure

* Return to the original structure, be re-order, so validation succeeds
2019-03-12 14:16:33 -07:00
Jeff Mendoza 4ea7534227 Setup CI to test for incompatible changes against 1.0 and 1.1 (#707)
* Test for incompatible changes against existing releases.

Add Makefile target to test curent protos against proto.lock files
from previous releases.

* Review comments.
2019-03-12 11:01:35 -07:00
Ed Snible f5ccf50ad5 Example CRD instances must be valid (#857) 2019-03-12 09:39:35 -07:00
Jeff Mendoza 75f0c6603d Update prototool. (#830)
* Update prototool.

Change to download a release instead of building from source. Run
prototool commit with new version to get updated proto.lock

* Update Circle image.
2019-03-11 11:54:36 -07:00
Ozben Evren 5a79ba0ecb Merge release-1.1 to master (#840)
* Doc fixes.

* Add high-level overview and diagrams for MCP (#805)

* document MCP

* add additional note on NACK behavior

* add a note about ignoring stale nonces

* Add envoy metrics service configuration to ProxyConfig (#803)

* Add envoy metrics service configuration to ProxyConfig

Similar to the statsd sink config, this change is in preparation for adding support for the envoy metrics service API.

* Update proto.lock

* Reorder metrics_service_address just after statsd_udp_address

* Update comment in the authN API to match with 1.1 behavior (#808)

* Rename metrics_service_address to clarify that it is for Envoy's API (#809)

Since "metrics service" is so ambiguous, this change specifically denotes that the config is for Envoy's metrics service API. The comments also now link to detailed info about the metrics service API.

* Generate separate HTML page per proto under networking (#811)

* Generate separate pages for each networking proto

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* tweaks

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Fix interdoc references

* separate doc and go gen

* change dash to underscore

* fix

* more fixes

* makefile fix

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* remove bad target

* Revert "change dash to underscore"

This reverts commit 7fbced66f6.

* final update

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Revert "Generate separate HTML page per proto under networking (#811)"

This reverts commit 5f14eadd since it breaks the ability
to generate reference docs in istio.io

* Update to latest tools.

* Revert "Update to latest tools."

This reverts commit 231fadc5 which I accidentally pushed to the
wrong place.

* fix mcp update error diagram (#810)

* update istio/tools (#815)

* Revert "Revert "Generate separate HTML page per proto under networking (#811)"" (#818)

* Minor updates for building docker images. (#817)

* Add spell checking for docs. (#819)

* Add a bunch of words to the custom dictionary.

* Document exportTo restrictions (#820)

* Doc fixes. (#821)

* Proxy config: Add tls_certs_to_watch field (#824)

* Proxy config: Add tls_certs_to_watch field

* Address PR comment

* Revert "Proxy config: Add tls_certs_to_watch field (#824)" (#825)

This reverts commit e613e358ae.

* Update gateway and sidecar hosts doc (#826)

* Update gateway and sidecar hosts doc

* regen

* review comments

* Update API docs (service entry, gateway, sidecar) (#831)

* Update sidecar and gateway docs

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* gen docs

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update service entry

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* add configurable dns refresh rate to mesh for strict dns cluster,  (#832)

* add configurable dns refresh rate to mesh for strict dns cluster, issue #12181

* add lock file

* Post-merge generation
2019-03-09 07:47:29 -08:00
kyanagimoto ef059c690c VirtualService configuration (#802)
* VirtualService configuration

I think this is correct, but what do you think?

* docs: Run generate-protos.sh and make proto-commit.

* Revert "docs: Run generate-protos.sh and make proto-commit."

This reverts commit 0f3897978d.

* docs(Run generate-protos.sh and make proto-commit.):
2019-03-08 12:17:32 -08:00
tkishore1192 878240ff33 change gateway to gateways (#836) 2019-03-07 09:59:34 -08:00
Yangmin Zhu 5f7cfed842 Add jwks to JWT policy to allow using public key for token validation. (#829)
* Add jwks to allow using public key directly in JWT policy.

Signed-off-by: Yangmin Zhu <ymzhu@google.com>

* do not use oneof

* fix build
2019-03-05 11:31:32 -08:00
Sebastien Vas f0270aec28 Remove myself from owners add utka instead (#814) 2019-02-25 11:41:35 -08:00
Louis Ryan 53b11a3dc9
Merge pull request #806 from louiscryan/Merge11ToMaster
Merge 1.1 to master
2019-02-20 16:58:54 -08:00
louiscryan 823a224f0b Merge branch 'release-1.1' into Merge11ToMaster 2019-02-20 16:27:40 -08:00
Shriram Rajagopalan 1b39429492
doc fixes (#801)
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2019-02-19 12:53:26 -05:00
Caleb Gilmour f6b6c4168d Add Datadog tracing to proxy config (#797)
Signed-off-by: Caleb Gilmour <caleb.gilmour@datadoghq.com>
2019-02-18 13:47:25 -08:00
Caleb Gilmour 2b2fabd451 Generate files with correct owner. (#798)
Signed-off-by: Caleb Gilmour <caleb.gilmour@datadoghq.com>
2019-02-15 10:17:34 -08:00
Pengyuan Bian 5945a02236 add server_name to mixer remote handler tls / mtls (#789)
* add server_name to mixer remote handler tls / mtls

* proto.lock
2019-02-15 10:47:28 -05:00
John Howard d817a1a3e2 Fix typos in sidecar.proto (1.1) (#796) 2019-02-13 10:43:21 -08:00
John Howard 01a2afd81a Fix typos in sidecar.proto (#795) 2019-02-13 10:42:53 -08:00
Martin Taillefer 92b7ddc0f3
Doc fix to have the mesh config show up on istio.io. (#794) 2019-02-11 16:51:25 -08:00
Limin Wang 27010bf6b4 Rename "principals" to "names". (#791)
* Rename "principals" to "names".

Since this is defined under "subjects", we are basically referring to
the "name" of a subject.

* Update comments.
2019-02-11 12:56:00 -05:00
Joshua Blatt 07829e06ca Add transport error retry config to mixer client. (#792) 2019-02-10 21:19:52 -05:00
Martin Taillefer 9883956e6e
Doc fixes (#788) 2019-02-08 08:01:46 -08:00
Jimmy Chen 1a129f07e6 Update comment for credentialName (#786)
* Update comment for credentialName

* Update comment
2019-02-06 13:53:57 -08:00
Andra Cismaru 3094619c84 Add subject_alt_names field in ServiceEntry (#785)
* Add service_accounts field in ServiceEntry

* Ran make proto-commit

* Added example with format

* Rename to subject_alt_names

* Move example out of the message definition

* Added a period

* Remove hide_from_docs
2019-02-05 13:26:00 -08:00
Shriram Rajagopalan e3015e7a46 Fixing SDS field/semantics in the gateway (#780)
* Enabling SDS in the gateway

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* lint

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* nits

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* cleanups

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* protolock

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2019-01-31 15:56:14 -08:00
Shriram Rajagopalan d5da499b61
revert sds name (#781)
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2019-01-30 20:15:20 -05:00
Douglas Reid 1b0a034631 Add way to signal encoding used for CompressedAttributes to Mixer (#770)
* Add mechanism to signal encoding used for CompressedAttributes to mixer proto

* Update proto.lock
2019-01-30 11:02:42 -08:00
Shriram Rajagopalan 5c6aec28eb
Revert "Enabling SDS in the gateway (#778)" (#779)
This reverts commit 3c7e31a648.
2019-01-29 19:40:38 -05:00
Shriram Rajagopalan 3c7e31a648
Enabling SDS in the gateway (#778)
* Enabling SDS in the gateway

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* lint

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2019-01-29 19:38:36 -05:00
Louis Ryan b524b1eb29 Replace 'scope' with 'export_to' namespace (#758)
* Replace public/private scoping with namespace scoped exports
Add flags to control scopeTo defaults
Update doc for locality weighted LB

* Hide from docs and other misc fixes
2019-01-28 15:31:48 -05:00
Andy Lai 825044c7e1
Merge pull request #774 from hklai/1.1-master
Merge release-1.1 into master. (Final batch)
2019-01-26 17:31:37 -08:00
hklai 35daa9d4be Merge remote-tracking branch 'upstream/release-1.1' into 1.1-master 2019-01-26 17:18:56 -08:00
JoeWrightss cd33a9a8ed Fix some typos in comment (#763)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-01-25 09:29:40 -08:00
Jimmy Chen b2beb75c6b Add sds_name into gateway config. (#772)
* Add sds_name into gateway config

* Update comment

* Update comment
2019-01-24 10:28:51 -08:00
Andy Lai d0444f6849
add response headers (#769) (#771)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2019-01-23 11:32:46 -08:00
Kuat 0dd68ef13c add response headers (#769)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2019-01-22 12:08:18 -08:00
Andy Lai 827080d56d
Merge pull request #768 from hklai/1.1-master
Merge release-1.1 master
2019-01-22 10:55:46 -08:00
hklai c26350ee04 Merge remote-tracking branch 'upstream/release-1.1' into 1.1-master 2019-01-22 10:25:36 -08:00
Kuat 91619d730f policy: add direct response (#765)
* add direct response

Signed-off-by: Kuat Yessenov <kuat@google.com>

* linter

Signed-off-by: Kuat Yessenov <kuat@google.com>

* linter

Signed-off-by: Kuat Yessenov <kuat@google.com>

* some commit

Signed-off-by: Kuat Yessenov <kuat@google.com>

* silly

Signed-off-by: Kuat Yessenov <kuat@google.com>

* silly

Signed-off-by: Kuat Yessenov <kuat@google.com>
2019-01-22 08:24:58 -08:00
Zhonghu Xu 6286ff0e63 Locality LB failover api (#760)
* mesh wide locality loadbalancer api

* generate

* generate
2019-01-20 17:49:56 -08:00
Andy Lai a222b707a5
Merge release-1.1 into master (#766)
* assorted doc updates (#757)

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* add optional incremental flag to ResponseSink and ResourceSource services (#762)

* Add option to select worload using lables for authn policy. (#755)

* Add option to select workload using labels for authn policy

* Make proto-commit
2019-01-18 20:55:05 -08:00
Diem Vu aec9db9d9a Add option to select worload using lables for authn policy. (#755)
* Add option to select workload using labels for authn policy

* Make proto-commit
2019-01-16 12:55:48 -08:00
Jason Young 2dadb9eaaf add optional incremental flag to ResponseSink and ResourceSource services (#762) 2019-01-16 09:24:49 -08:00
Shriram Rajagopalan 40a08a31ea
Merge pull request #759 from yangminzhu/merge-1-1
Merge release-1.1 into master
2019-01-14 21:04:21 -05:00
Shriram Rajagopalan d341fc8fb6
assorted doc updates (#757)
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2019-01-14 20:29:43 -05:00
Yangmin Zhu 1c71953e05 Merge branch 'release-1.1' to Master 2019-01-14 16:17:27 -08:00
Yangmin Zhu 48ad354660 Update RBAC for Authorization v2 API. (#748)
Signed-off-by: Yangmin Zhu <ymzhu@google.com>
2019-01-11 13:24:15 -05:00
Kuat f818794c44 add optional header operations (#753)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2019-01-10 11:28:46 -08:00
Jason Young aa7083e882 Introduce forward looking MCP enhancements (#741)
* Introduce forward looking MCP enhancements

The initial version of Mesh Configuration Protocol (MCP) was
introduced to decouple Pilot/Mixer from the k8s kube-apiserver. These
enhancements address additional forward looking requirements as we
bring Galley and the MCP API to beta quality.

* Enable alternative control topologies where the source of
  configuration is not publicly accessible.

* Provide a feedback mechanism to report the observed config state to
  the user (e.g via CRD status).

* Improve performance at scale (e.g. Enterprise use case)

* Rationalize the resource model

The intent is to introduce these backwards incompatible API changes
now before Galley and MCP ship as beta quality and on-by-default.

Rationalization of the resource model and incremental improvements can
be implemented immediately as they effect the contract between Pilot
and Galley. Alternative control topologies and feedback/status are
inherently new features and can be implemented later with the same
APIs without concerns of breaking compatibility.

Design proposal: https://goo.gl/RTKMwF

* fix linter error

* add missing generated file

* proto-commit

* remove python/istio_api/mcp/v1alpha1/envelope_pb2.py

* s/envelope/resource

* s/client/node

* make proto-commit

* fix comments

* add system_version_info for compatibility with non-incremental MCP

* address review comments

* s/node/sink_node

* address more review comments

* update resource name documentation
2019-01-09 10:31:45 -08:00
Martin Taillefer 0ba25e5351
Comment fixes. (#752)
(cherry picked from commit 001174fb4d)
2019-01-09 06:37:46 -08:00
Martin Taillefer 056eb85d96
Comment fixes. (#751) 2019-01-09 06:30:08 -08:00
Andy Lai 576296585d
Merge pull request #750 from hklai/1.1-master
Merge release-1.1 into master
2019-01-08 17:23:43 -08:00
hklai a999ccd6d2 Merge release-1.1 into master 2019-01-08 16:07:13 -08:00
Shriram Rajagopalan 448faa9b3c Sidecar config resource (#742)
* renaming

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Sidecar

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* gateway updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* tweaks

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update protolock

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* add workloadSelector to EnvoyFilter

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update comments

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* feedback

* tweaks

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* capture mode

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* nits

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2019-01-07 13:10:44 -08:00
JoeWrightss 30cc0ae7bc Fix some spelling errors (#745)
Signed-off-by: JoeWrightss <zhoulin.xie@daocloud.io>
2019-01-07 08:48:43 -08:00
Pengyuan Bian d793e6c907 rename report_session_affinity. (#747) 2019-01-04 09:53:50 -05:00
Pengyuan Bian 4238d2d87b Add Mixer Report Session Affinity into Mesh Config (#746)
* add session affinity option.

* proto lock
2019-01-03 09:45:42 -08:00
Vadim Eisenberg ab6f375bdc remove deprecated from OutboundTrafficPolicy. REGISTRY_ONLY and ALLOW_ALL (#744)
* add allow_traffic_to_unknown_ports flag to meshconfig

related to https://github.com/istio/istio/issues/10330

* update proto.lock

* Revert "update proto.lock"

This reverts commit d1d3a0275a.

* Revert "add allow_traffic_to_unknown_ports flag to meshconfig"

This reverts commit e6fd415e2f.

* remove deprecated from OutboundTrafficPolicy. REGISTRY_ONLY and ALLOW_ALL

* remove deprecated from Mode and outbound_traffic_policy
2019-01-01 10:57:15 -05:00
Zhonghu Xu 08a19da534 Add per service locality weight setting (#726)
* Add locality weight setting

* generate

* Add locality weight setting

* generate

* Add locality weight setting

* make proto commit
2018-12-28 23:41:20 -05:00
mtail 73238e149e Comment typo fixes. 2018-12-20 07:21:35 -08:00
mtail ac180ae6f7 Comment typo fixes. 2018-12-20 07:15:24 -08:00
Martin Taillefer 6c1f2991ef
Fix a comment. (#740) 2018-12-17 11:58:30 -08:00
Martin Taillefer c85aada9bd
Fix a comment. (#739) 2018-12-17 08:51:04 -08:00
Pengyuan Bian 80aff01d40 oop adapter connection auth config (#606)
* grpc adapter connection auth.

* proto.lock.
2018-12-14 14:34:47 -08:00
Jeff Mendoza 6a495cfb10 Add note to readme about backwards incompatible changes (#700) 2018-12-14 14:30:05 -08:00
Frank Budinsky 0a85c2c2cb Fix broken CORS link (#728) 2018-12-14 14:29:27 -08:00
Quanjie Lin b1978437bd add enable_sds_k8s_sa_jwt flag to meshconfig (#729)
* add enable_sds_k8s_sa_jwt flag to meshconfig

* fix build

* update comment and rename
2018-12-11 14:05:28 -08:00
Heiko W. Rupp b917615b0e target -> targets (#725) 2018-12-05 10:40:40 -05:00
Andy Lai a4f4a1ff6f
Merge pull request #721 from hklai/1.1-master
Merge release-1.1 into master
2018-11-30 17:10:59 -08:00
Andy Lai a6e0c12436 Merge remote-tracking branch 'upstream/release-1.1' into 1.1-master 2018-11-30 16:42:06 -08:00
Shriram Rajagopalan 49946a7daf
rename NetworkScope to ServiceDependency (#720)
* rename NetworkScope to ServiceDependency

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* update

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2018-11-28 22:24:25 -05:00
Shriram Rajagopalan 4f643c9854
NetworkScopes (#719)
* default network scope

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* protolock

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* doc update

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* NetworkScopes

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* proto lock

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* default network scope

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* doc updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* rename

* nits and final updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2018-11-28 15:09:16 -05:00
Itay Shakury 1a7788d738 allow setting headers (#709)
* refactor headers

* proto-commit

* settle num entries with 1.1 state
2018-11-25 19:40:04 -08:00
Shakti Das fd493665dc API changes to enable TCP keepalive configuration. (#718)
* API changes to enable TCP keepalive configuration.

Signed-off-by: Shakti <shaktiprakash.das@salesforce.com>

* Added probes configuration to tcp_keepalive.

Signed-off-by: Shakti <shaktiprakash.das@salesforce.com>

* Updated description to 'time duration'.

Signed-off-by: Shakti <shaktiprakash.das@salesforce.com>
2018-11-25 07:48:03 -08:00
Itay Shakury e6126169ac clarify http match example (#714) 2018-11-21 10:14:10 -05:00
Gregory Hanson 62032e035e add access log encoding (#710) 2018-11-19 15:58:01 -08:00
Gregory Hanson a48276b531 add access log encoding (#713) 2018-11-19 14:56:02 -08:00
Gregory Hanson 44363fb191 Revert "fix naming convention between access log format vs encoding (#711)" (#712)
This reverts commit 60483a526b.
2018-11-19 14:36:02 -08:00
Gregory Hanson 60483a526b fix naming convention between access log format vs encoding (#711) 2018-11-19 12:53:01 -08:00
Michal Rostecki 4eeb69c9eb bazel: Allow to distdir all dependencies (#702)
To use --distdir option of Bazel (which allows to use previously
fetched tarballs instead of downloading dependencies during
build), all dependencies should use http instead of git and need
to have sha256 sums specified.

Signed-off-by: Michal Rostecki <mrostecki@suse.de>
2018-11-14 08:17:04 -08:00
Shriram Rajagopalan 05124e691e
Merge pull request #705 from rshriram/release-1.1
Merge missing commits from master to release-1.1
2018-11-14 11:11:27 -05:00
Shriram Rajagopalan 93b99d4175 [Cherry-pick]Adding weights to service entry endpoints (#704) (#706)
* Adding weights to service entry endpoints (#704)

* add dynamic state to attribute list

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Adding weights to service entry endpoints

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* undo

* update protolock

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2018-11-14 08:06:06 -08:00
Shriram Rajagopalan 1aa3b316e7 update protolock
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2018-11-14 10:19:34 -05:00
Shriram Rajagopalan afb4e0828e Merge remote-tracking branch 'origin/master' into release-1.1 2018-11-14 10:00:45 -05:00
Shriram Rajagopalan 56c82136df
Adding weights to service entry endpoints (#704)
* add dynamic state to attribute list

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Adding weights to service entry endpoints

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* undo
2018-11-12 12:20:59 -05:00
Shriram Rajagopalan 7b94541b03
Merge pull request #699 from rshriram/r11tom
Merge release-1.1 to master
2018-11-08 16:15:35 -05:00
Shriram Rajagopalan 24f6a071c4 Update protolock 2018-11-08 16:12:09 -05:00
Shriram Rajagopalan c5d2d4fdf9 Merge remote-tracking branch 'origin/release-1.1' into r11tom 2018-11-08 16:04:40 -05:00
Kevin Conner d03e770930 Add support for healthy panic threshold (#486) (#496) 2018-11-08 16:04:04 -05:00
Shriram Rajagopalan 079096fc82 proto lock update 2018-11-08 15:57:32 -05:00
Shriram Rajagopalan 072d625e0b Merge remote-tracking branch 'origin/release-1.1' into r11tom 2018-11-08 13:53:09 -05:00
Quanjie Lin 11e496c875 add trust domain to meshconfig (#697)
* add trust domain to meshconfig

* fix build

* add comment
2018-11-07 14:22:01 -08:00
Kuat d782dcae24 documentation (#698)
Signed-off-by: Kuat Yessenov <kuat@google.com>
2018-11-07 14:18:00 -08:00
Zhonghu Xu 510451bbdb update commentttttt (#695) 2018-11-05 11:22:38 -08:00
Vadim Eisenberg 32157467a3 remove references to envoyproxy.io api-v1 (#694)
in the latest envoyproxy.io (1.9) api-v1 was removed
2018-11-05 06:46:36 -08:00
Venil Noronha 6b9e3a501e Add TcpClusterRewrite config proto (#693)
This commit adds a TcpClusterRewrite proto to be used in the upcoming
TCP cluster rewrite filter on istio/proxy.

Signed-off-by: Venil Noronha <veniln@vmware.com>
2018-11-02 13:47:20 -04:00
Jeff Mendoza bac7f54431 Merge mixer protos (#691)
* Merge mixer protos.

* Remove renamed generated files.

* Regen mixer files

* Remove mixer lint exception.
2018-11-02 08:22:12 -07:00
Jeff Mendoza 20d2d5dd62 Fix style for TLS enum in networking. (#690)
* Fix style for TLS enum in networking.

* Regen with new networking proto.
2018-11-01 19:28:54 -04:00
Jeff Mendoza d2dcf0047f Add prototool for linting, precommit, Circle, Prow. (#685) 2018-10-31 17:07:12 -07:00
Gregory Hanson 7ce9562e50 re-add deprecated fields, but hide from docs. also resurrect outbound traffic policy config (#680) 2018-10-31 10:13:07 -04:00
Jeff Mendoza 011906d92f Add Protolock. (#675)
* Add Protolock.

Move the protoc docker files to tools/protoc. Add docker files for
protolock image. Update Makefile precommit hook and prow presubmit
check to run protolock.

* Add combined image to be used on CircleCI

* Update proto.lock for policy_check_fail_open in mesh config.

* Updade circle config.
2018-10-30 20:34:10 -07:00
Pengyuan Bian 4a0e55ed2b add stdduration annotation. (#673) 2018-10-26 16:01:10 -07:00
Zhonghu Xu ff7edaf15a use lowercase_with_underscore for field name `retry_on` (#681) 2018-10-26 06:45:10 -07:00
Yossi Mesika 5b71098af4 Minor correction to avoid confusion in ServiceEntry reference doc (#678)
* Minor correction to avoid confusion in reference doc

* Updated also the pb and html
2018-10-25 12:15:42 -04:00
Zhonghu Xu e9d86f9b88 Add HTTPRetry config to allow setting retryOn policy (#679) 2018-10-25 12:15:21 -04:00
Shriram Rajagopalan 0fc221c726
Merge pull request #676 from rshriram/release-1.1
Cherry pick PRs from master
2018-10-25 10:36:33 -04:00
Shriram Rajagopalan e7646ba58a
Merge branch 'release-1.1' into release-1.1 2018-10-24 15:07:49 -04:00
Yangmin Zhu 9e5a9173e6 Add mesh config to allow setting network policy fail open (#670) 2018-10-23 13:25:54 -07:00
Ozben Evren 3f8c1a7cfb Update OWNERS (#671) 2018-10-23 12:15:04 -07:00
Shriram Rajagopalan e23ad3b761
MCP server configuration (#669)
* MCP server configuration

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* nits

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2018-10-22 18:23:40 -04:00
Yossi Mesika 0ca0781434 Cherry picked network config (#667)
* Updating description of network definitions (#664)

* clarity

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* renaming

* nits

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* Added MeshNetworks
2018-10-21 10:58:16 -04:00
Yossi Mesika 0b1e20cf24 Added MeshNetworks (#666) 2018-10-21 10:57:43 -04:00
Shriram Rajagopalan b3f5d5de82
Updating description of network definitions (#664)
* clarity

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* renaming

* nits

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2018-10-21 09:40:26 -04:00
Shriram Rajagopalan 141ca6126a Multicluster/partial-registry view network configuration API (#656)
* Multicluster mesh config

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* updates

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* undo breaking changes

* nits

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

* undo changes

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
2018-10-19 13:55:44 -07:00
485 changed files with 157803 additions and 80187 deletions

View File

@ -1,29 +0,0 @@
version: 2
defaults: &defaults
working_directory: /src/istio.io/api
docker:
- image: gcr.io/istio-testing/protoc:2018-06-12
environment:
GOPATH: /go
OUT_PATH: /src
jobs:
build:
<<: *defaults
steps:
- checkout
- run:
command: |
./scripts/generate-protos.sh || die "could not generate *.pb.go"
if [[ -n $(git status --porcelain) ]]; then
git status
git --no-pager diff
echo "Repo has unstaged changes. Re-run ./scripts/generate-protos.sh"
exit 1
fi
workflows:
version: 2
all:
jobs:
- build

View File

@ -0,0 +1,33 @@
{
"name": "istio build-tools",
"image": "gcr.io/istio-testing/build-tools:master-8e6480403f5cf4c9a4cd9d65174d01850e632e1a",
"privileged": true,
"remoteEnv": {
"USE_GKE_GCLOUD_AUTH_PLUGIN": "True",
"BUILD_WITH_CONTAINER": "0",
"CARGO_HOME": "/home/.cargo",
"RUSTUP_HOME": "/home/.rustup"
},
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
"ghcr.io/mpriscella/features/kind:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"golang.go",
"rust-lang.rust-analyzer",
"eamodio.gitlens",
"zxh404.vscode-proto3",
"ms-azuretools.vscode-docker",
"redhat.vscode-yaml",
"IBM.output-colorizer"
],
"settings": {
"files.eol": "\n",
"go.useLanguageServer": true,
"go.lintTool": "golangci-lint"
}
}
}
}

16
.gitattributes vendored Normal file
View File

@ -0,0 +1,16 @@
*.descriptor linguist-generated=true
*.descriptor -diff -merge
*.descriptor_set linguist-generated=true
*.descriptor_set -diff -merge
*.pb.html linguist-generated=true
*.pb.go linguist-generated=true
*.gen.go linguist-generated=true
*.gen.yaml linguist-generated=true
*.gen.json linguist-generated=true
*_pb2.py linguist-generated=true
manifests/charts/**/profile*.yaml linguist-generated=true
go.sum merge=union
vendor/** linguist-vendored
common/** linguist-vendored
archive/** linquist-vendored
**/vmlinux.h linquist-vendored

36
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,36 @@
---
name: Bug report
about: Report a bug to help us improve Istio
---
(NOTE: This is used to report product bugs:
To report a security vulnerability, please visit <https://istio.io/about/security-vulnerabilities/>
To ask questions about how to use Istio, please visit <https://discuss.istio.io>
)
**Bug description**
**Affected product area (please put an X in all that apply)**
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
**Expected behavior**
**Steps to reproduce the bug**
**Version (include the output of `istioctl version --remote` and `kubectl version`)**
**How was Istio installed?**
**Environment where bug was observed (cloud vendor, OS, etc)**
Additionally, please consider attaching a [cluster state archive](http://istio.io/help/bugs/#generating-a-cluster-state-archive) by attaching
the dump file to this issue.

View File

@ -0,0 +1,24 @@
---
name: Feature request
about: Suggest an idea to improve Istio
---
(This is used to request new product features, please visit <https://discuss.istio.io> for questions on using Istio)
**Describe the feature request**
**Describe alternatives you've considered**
**Affected product area (please put an X in all that apply)**
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
**Additional context**

1
.github/SECURITY.md vendored Normal file
View File

@ -0,0 +1 @@
Refer to [Istio Security Overview](https://github.com/istio/istio/blob/master/.github/SECURITY.md) for more details.

9
.gitignore vendored
View File

@ -13,10 +13,6 @@
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
@ -39,3 +35,8 @@
genbin/
/vendor
.htmlproofer
# Contains the built artifacts
out/

View File

@ -0,0 +1,10 @@
# Bugs and Feature Requests
You can report bugs and feature requests to the Istio team in one of three places:
- [Product Bugs and Feature Requests](https://github.com/istio/istio/issues)
- [Documentation Bugs and Feature Requests](https://github.com/istio/istio.io/issues)
- [Community and Governance Issues](https://github.com/istio/community/issues)
For security vulnerabilities, please don't report a bug (which is public) and instead follow
[these procedures](https://istio.io/about/security-vulnerabilities/).

3
BUILD
View File

@ -1,3 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_prefix")
go_prefix("istio.io/api")

6
CODEOWNERS Normal file
View File

@ -0,0 +1,6 @@
* @istio/technical-oversight-committee
/Makefile* @istio/wg-test-and-release-maintainers
/*.md @istio/wg-test-and-release-maintainers
/common/ @istio/wg-test-and-release-maintainers
/common-protos/ @istio/wg-test-and-release-maintainers
/scripts/ @istio/wg-test-and-release-maintainers

5
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,5 @@
# Contribution guidelines
So you want to hack on Istio? Yay! Please refer to Istio's overall
[contribution guidelines](https://github.com/istio/community/blob/master/CONTRIBUTING.md)
to find out how you can help.

View File

@ -1,6 +1,6 @@
# Istio API Guidelines
This page defines the design guidelines for Istio APIs. They apply to
This page defines the design guidelines for Istio APIs. They apply to
[Kubernetes Custom Resource Definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)
and all [proto files](https://developers.google.com/protocol-buffers/) that are used to
configure Istio components through the [Mesh Configuration Protocol(MCP)](https://docs.google.com/document/d/1o2-V4TLJ8fJACXdlsnxKxDv2Luryo48bAhR8ShxE5-k/edit).
@ -10,87 +10,108 @@ Google's [API Design Guide](https://cloud.google.com/apis/design) as
the baseline for protos. Because Envoy APIs also uses the same baseline, the
commonality across Envoy, Istio, proto3 and gRPC will greatly help
developer experience in the long term.
In addition to Google's guide, the following conventions should be
followed for Istio APIs.
## Contents
- [Proto Guidelines](#proto-guidelines)
- [Style](#style)
- [Basic Proto Versioning](#basic-proto-ersioning)
- [Style](#style)
- [Basic Proto Versioning](#basic-proto-ersioning)
- [Validation Guidelines](#validation-guidelines)
- [CRD Guidelines](#crd-guidelines)
- [Style](#style-1)
- [Basic CRD Versioning](#basic-crd-versioning)
- [Style](#crd-style)
- [Basic CRD Versioning](#basic-crd-versioning)
## Proto Guidelines
This section captures guidelines that apply to the proto form of the configuration resources.
### Style
#### Placement
* **Do** place new API protos under ```istio.io/api/<area>/<version>``` folder.
* **Prefer** complete words for file names.
* ```config.proto // Not cfg.proto!```
- **Do** place new API protos under ```istio.io/api/<area>/<version>``` folder.
- **Prefer** complete words for file names.
```
index.proto // Not idx.proto!
```
#### Package Names
* **Do** use `lowercase` without any `_`.
* **Do** use singular words
* **Do** use the name pattern ```istio.<area>.<version>```.
- **Do** use `lowercase` without any `_`.
- **Do** use singular words
- **Do** use the name pattern ```istio.<area>.<version>```.
```proto
package istio.networking.v1alpha3;
```
```proto
package istio.networking.v1alpha3;
```
#### Message/Enum/Method Names
* **Do not** use embedded acronyms. See [#364](https://github.com/istio/api/issues/364) for details.
```proto
message HttpRequest {/*...*/} // Not HTTPRequest!
- **Do not** use embedded acronyms. See [#364](https://github.com/istio/api/issues/364) for details.
rpc DoHttpRequest(/*...*/) // Not DoHTTPRequest!
```proto
message HttpRequest {/*...*/} // Not HTTPRequest!
enum HttpStatusCodes {/*...*/} // Not HTTPStatusCodes!
```
rpc DoHttpRequest(/*...*/) // Not DoHTTPRequest!
enum HttpStatusCodes {/*...*/} // Not HTTPStatusCodes!
```
#### Messages
* **Do** use ```CamelCase``` for message names.
* ```proto
- **Do** use ```CamelCase``` for message names.
```proto
message MyMessage {...}
```
#### Fields
* **Do** use ```lowercase_with_underscore``` for field names:
* ```proto
- **Do** use ```lowercase_with_underscore``` for field names:
```proto
string display_name = 1;
```
* **Do** use plural names for repeated fields:
* ```proto
- **Do** use plural names for repeated fields:
```proto
repeated rule rules = 2;
```
* **Do not** use postpositive adjectives in names.
* ```proto
- **Do not** use postpositive adjectives in names.
```proto
repeated Items collected_items = 3; // Not items_collected!
```
#### Enums
* **Do** use ```CamelCase``` for types names.
* ```proto
- **Do** use ```CamelCase``` for types names.
```proto
enum Types {/*...*/}
```
* **Do** use `UPPERCASE_WITH_UNDERSCORE` for enum names:
* ```proto
- **Do** use `UPPERCASE_WITH_UNDERSCORE` for enum names:
```proto
enum Types {INT_TYPE = 1;}
```
* **Do** have an enum entry for value ```0```.
* When a new field with an enum type is introduced to a proto, when reading
the older versions of the data, it will be defaulted to ```0``` value.
* **Do** name the ```0``` value either as ```<ENUMTYPE>_UNDEFINED``` or use a sane,
- **Do** have an enum entry for value ```0```.
- When a new field with an enum type is introduced to a proto, when reading
the older versions of the data, it will be defaulted to the ```0``` value.
- **Do** name the ```0``` value either as ```<ENUMTYPE>_UNDEFINED``` or use a sane,
well-known value that will be considered as default.
* ```proto
```proto
enum Types { TYPE_UNDEFINED = 0;}
```
@ -102,56 +123,71 @@ get ignored, and additive, and non-breaking changes are acceptable.
In addition to the standard proto versioning semantics, Istio tooling imposes its own restrictions, as CRD
to proto conversion system in Istio depends on names in certain situations.
The following rules captures the basic rules that should be followed when making changes to Istio config
The following rules captures the basic rules that should be followed when making changes to Istio config
protos.
* **Do not** change field numbers.
* Proto depends on field numbers to find fields.
* ```proto
- **Do not** change field numbers.
- Proto depends on field numbers to find fields.
```proto
// Field number has changed from 1 to 2!
// string field = 1; // Deleted
string field = 2;
```
* **Do not** rename fields.
* Our tooling automatically maps YAML fields to proto fields.
* ```proto
string field = 2;
```
- **Do not** rename fields.
- Our tooling automatically maps YAML fields to proto fields.
```proto
// Field name has changed!
// string old_field = 1;
string new_field = 1;
string new_field = 1;
```
- **Do not** change cardinality of fields.
```proto
// Field cardinality has changed!
// string should_have_been_plural = 1;
repeated string should_have_been_plural = 1;
```
* **Do not** change cardinality of fields.
* ```proto
// Field cardinality has changed!
// string should_have_been_plural = 1;
repeated string should_have_been_plural = 1;
```
* **Do not** rename top-level protos that map to CRD config types.
* Istio tooling depends on the name of the top-level protos to map CRDs to the matching proto
counterparts.
```proto
// Top-level proto name has changed!
// message Rule {
message PolicyRule {
// ...
}
```
* **Avoid** changing/renaming field types.
* If the field types changes, the new type **must** be structurally equivalent to the old.
```proto
// Field type changed from Boo to Zoo!
// Boo and Zoo must be structurally equivalent!
message Foo {
// Boo boo = 1;
Zoo boo = 2;
}
```
* **Do not** rename enum names, or change values.
* Istio tooling depends on names to convert enums from CRD form to proto.
* ```proto
- **Do not** rename top-level protos that map to CRD config types.
- Istio tooling depends on the name of the top-level protos to map CRDs to the matching proto counterparts.
```proto
// Top-level proto name has changed!
// message Rule {
message PolicyRule {
// ...
}
```
- **Avoid** changing/renaming field types.
- If the field types changes, the new type **must** be structurally equivalent to the old.
```proto
// Field type changed from Boo to Zoo!
// Boo and Zoo must be structurally equivalent!
message Foo {
// Boo boo = 1;
Zoo boo = 2;
}
```
- **Do not** rename enum names, or change values.
- Istio tooling depends on names to convert enums from CRD form to proto.
```proto
enum Types {
// Enum name has changed!
// Foo = 1;
@ -160,25 +196,111 @@ protos.
// Enum value has changed!
// Baz = 2;
Baz = 3;
}
```
}
```
- **Do not** remove fields.
- This is backwards compatible for protobuf, but not for CRDs which have strict validation preventing unknown fields.
- **Do not** make validation stricter than in previous versions.
- This applies to OpenAPI schema validation, validation webhooks, or any similar validation that would reject and API.
- Previously valid APIs must continue to remain valid in future upgrades; a change to validation is just as impactful as
removal of a field.
- For example, changing a `string` value to have a max length of X characters would break users with
configurations beyond X characters upon upgrade, and would not be permitted.
- Loosening validation is permitted. As a result, it is recommended to err on the side of stricter validation.
## Validation Guidelines
All types should have as strict validation specified on it as possible to rule out invalid states.
These are ultimately compiled to Kubernetes CustomResourceDefinitions, which use OpenAPI validation with some Kubernetes extras.
This is handled by our own custom [protoc-gen-crd](https://github.com/istio/tools/tree/master/cmd/protoc-gen-crd) which compiles our
protobuf definitions down to CRDs.
There are a few types of validations:
* Automatic ones, based on the protobuf type. For example, a UInt32Value automatically has a validation to check the number between `0` and `MaxUint32`
* Protobuf `field_behavior`. Currently only `[(google.api.field_behavior) = REQUIRED]` is implemented.
* Comment driven validations (see below).
Most validation is driven by comments on fields and messages.
All validations in [KubeBuilder](https://book.kubebuilder.io/reference/markers/crd-validation) are supported, as well as some extras:
- `+protoc-gen-crd:map-value-validation`: apply the validation to each *value* in a map.
Note it's not possible to apply validations to each key. You can, however, validate the entire map together with a CEL rule.
- `+protoc-gen-crd:list-value-validation`: apply the validation to each value in a list.
- `+protoc-gen-crd:duration-validation:none`: exclude the default requirement that a duration field is non-zero.
- `+protoc-gen-crd:validation:XIntOrString`: marks a field as accepting integers or strings.
- `+protoc-gen-crd:validation:IgnoreSubValidation`: if referencing a message in a field, and that message has some validation on it already, exclude the listed validations.
This is uncommon, but can be used when referencing a message in a certain context has different rules than others.
The most common validations are:
- Sizes: `MaxLength` (strings), `MaxItems` (lists), `MaxProperties` (maps)
- Regex: `Pattern`
- CEL: `XValidation`
### CEL
[CEL](https://cel.dev/) is a small language that allows us to write expressions to represent validation logic.
This comes with a lot of quirks!
Useful tools and references:
* [CEL playground](https://playcel.undistro.io/) allows an easy way to run CEL expressions against some types.
* [Kubernetes CEL docs](https://kubernetes.io/docs/reference/using-api/cel/).
* [CEL language definition](https://github.com/google/cel-spec/blob/master/doc/langdef.md).
The biggest challenge with CEL is the complexity limit imposed by Kubernetes.
This estimates the cost to run the function, and rejects it if it is too high.
This takes into account the cost of a function and the cost of *potential* inputs.
This makes it, typically, required to put maximum size bounds on items.
Kubernetes changes version-to-version on how it estimates cost (usually getting more lenient) and what functions are available.
We want to target the oldest version for compatibility purposes.
Our tests do not currently cover this (a prototype of doing so can be found [here](https://github.com/istio/api/pull/3275)).
A list of what features are in which versions can be found [here](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries).
Istio has some custom macros that are expanded at compile time, driven by the [celpp](https://github.com/howardjohn/celpp) package.
This extends CEL with these capabilities:
* **default**. Usage: `default(self.x, 'DEF')`.
* **oneof**. Usage: `oneof(self.x, self.y, self.z)`. This checks that 0 or 1 of these fields is set.
* **index**. Usage: `self.index({}, x, z, b)`. This does `self.x.z.b` and returns `{}` if any of these is not set.
Unlike typical Go usage, CEL does not have a concept of zero values for unset fields.
As a result, an optional field needs special care.
Do not write `self.fruit == 'apple'`, for instance, write `default(self.fruit, '') == 'apple'.
### Testing
As validation logic is really easy to get wrong, it's useful to write tests.
This is done by adding YAML files under `tests/testdata`.
Each type has a `valid` and `invalid` file to do positive and negative cases.
Aside from explicitly testing these, these also form the seed corpus for fuzzing when these are pulled into `istio/istio`.
This fuzz testing verifies the CRD validation has the same result as the webhook (Golang) validation code.
Currently, this mostly serves to ensure we do not make something overly strict.
In the future, it may show us that its safe to disable the webhook entirely, if CRD validation can cover the full validation surface.
## CRD Guidelines
### Style
* **Do** use the name pattern ```<area>.istio.io``` for API group names.
* **Do** use the version from the proto package as the API version.
* **Do** use the top-level proto Message name as the ```kind``` of the CRD.
### CRD Style
- **Do** use the name pattern ```<area>.istio.io``` for API group names.
- **Do** use the version from the proto package as the API version.
- **Do** use the top-level proto Message name as the ```kind``` of the CRD.
```yaml
# A custom resource that describes a Gateway resource
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
kind: Gateway
# ...
```
Matches to:
```proto
package istio.networking.v1alpha3;
message Gateway {
@ -190,11 +312,17 @@ message Gateway {
Istio APIs should use a simple versioning strategy based on
major versions and releases, such as `v1alpha`, `v2beta`, or
`v3`. Within each release, there should not be any breaking
change to released features, such as changing the type of
a field type, renaming a field, or changing a field number.
Breaking changes are allowed between different releases,
such as `v1alpha1` and `v1alpha2`.
`v3`. Due to current limitations in Istio's CRD versioning, namely
a lack of a conversion webhook, the schema of all versions of an API
must be strictly identical.
New APIs progress through feature stages according to our [policy](https://istio.io/latest/docs/releases/feature-stages/) before achieving stability, `v1`. When adding a new API, follow these steps:
- Add `// +cue-gen:<Replace with API Name>:releaseChannel:extended` tag to the proto message definition of the API.
- Update the stable validation policy to exclude the new API in the [base chart](https://github.com/istio/istio/blob/199f76a601fc4520b675169d4b53503edfaa34e3/manifests/charts/base/templates/validatingadmissionpolicy.yaml#L31) and [istio-discovery chart](https://github.com/istio/istio/blob/199f76a601fc4520b675169d4b53503edfaa34e3/manifests/charts/istio-control/istio-discovery/templates/validatingadmissionpolicy.yaml#L37) manifests.
Similarly, new API fields added to a stable `v1` API independently progress through feature stages based on our [policy](https://istio.io/latest/docs/releases/feature-stages/) before achieving stability. When adding a new API field to a stable `v1` API, follow these steps:
- Add `// +cue-gen:<Replace with API Name>:releaseChannel:extended` tag to the proto field definition.
- Update the stable validation policy to exclude the new field in the [base chart](https://github.com/istio/istio/blob/199f76a601fc4520b675169d4b53503edfaa34e3/manifests/charts/base/templates/validatingadmissionpolicy.yaml#L31) and [istio-discovery chart](https://github.com/istio/istio/blob/199f76a601fc4520b675169d4b53503edfaa34e3/manifests/charts/istio-control/istio-discovery/templates/validatingadmissionpolicy.yaml#L37) manifests.
Deprecating a feature in an API release is allowed by following
the applicable deprecation process. The reason to allow
@ -202,3 +330,14 @@ deprecation of individual features in a release is that it is
significantly cheaper and simpler for everyone involved. In
practice, it works out much better than deprecating an entire
API version.
## Exceptions
Many of the guidelines above are related to limiting backward incompatible changes.
These guidelines apply only between released versions of Istio (including patches
and minor releases). This means that if a commit is merged into the `master` branch,
breaking changes can still be made to it (such as removal, renaming, etc) up until
it has been officially released.
While violating the above guidelines is generally disallowed, exceptions may be made
on a case-by-case basis.

View File

@ -187,7 +187,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2017 Istio Authors
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

396
Makefile
View File

@ -1,335 +1,69 @@
all: generate
# WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
#
# The original version of this file is located in the https://github.com/istio/common-files repo.
# If you're looking at this file in a different repo and want to make a change, please go to the
# common-files repo, make the change there and check it in. Then come back to this repo and run
# "make update-common".
########################
# docker_gen
########################
# Copyright Istio Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
SHELL := /usr/bin/env bash
# allow optional per-repo overrides
-include Makefile.overrides.mk
# Set the environment variable BUILD_WITH_CONTAINER to use a container
# to build the repo. The only dependencies in this mode are to have make and
# docker. If you'd rather build with a local tool chain instead, you'll need to
# figure out all the tools you need in your environment to make that work.
export BUILD_WITH_CONTAINER ?= 0
ifeq ($(BUILD_WITH_CONTAINER),1)
# An export free of arguments in a Makefile places all variables in the Makefile into the
# environment. This is needed to allow overrides from Makefile.overrides.mk.
export
RUN = ./common/scripts/run.sh
MAKE_DOCKER = $(RUN) make --no-print-directory -e -f Makefile.core.mk
%:
@$(MAKE_DOCKER) $@
default:
@$(MAKE_DOCKER)
shell:
@$(RUN) /bin/bash
.PHONY: default shell
# Use a different generation mechanism when running from the
# image itself
ifdef CIRCLECI
repo_dir = .
docker_gen = /usr/bin/protoc -I/protobuf -I$(repo_dir)
out_path = $(OUT_PATH)
else
gen_img := gcr.io/istio-testing/protoc:2018-06-12
pwd := $(shell pwd)
mount_dir := /src
repo_dir := istio.io/api
repo_mount := $(mount_dir)/istio.io/api
docker_gen := docker run --rm -v $(pwd):$(repo_mount) -w $(mount_dir) $(gen_img) -I$(repo_dir)
out_path = .
# If we are not in build container, we need a workaround to get environment properly set
# Write to file, then include
$(shell mkdir -p out)
$(shell $(shell pwd)/common/scripts/setup_env.sh envfile > out/.env)
include out/.env
# An export free of arguments in a Makefile places all variables in the Makefile into the
# environment. This behavior may be surprising to many that use shell often, which simply
# displays the existing environment
export
export GOBIN ?= $(GOPATH)/bin
include Makefile.core.mk
endif
########################
# protoc_gen_gogo*
########################
gogo_plugin_prefix := --gogo_out=plugins=grpc,
gogofast_plugin_prefix := --gogofast_out=plugins=grpc,
gogoslick_plugin_prefix := --gogoslick_out=plugins=grpc,
########################
# protoc_gen_python
########################
protoc_gen_python_prefix := --python_out=,
protoc_gen_python_plugin := $(protoc_gen_python_prefix):$(repo_dir)/python/istio_api
comma := ,
empty:=
space := $(empty) $(empty)
importmaps := \
gogoproto/gogo.proto=github.com/gogo/protobuf/gogoproto \
google/protobuf/any.proto=github.com/gogo/protobuf/types \
google/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor \
google/protobuf/duration.proto=github.com/gogo/protobuf/types \
google/protobuf/struct.proto=github.com/gogo/protobuf/types \
google/protobuf/timestamp.proto=github.com/gogo/protobuf/types \
google/protobuf/wrappers.proto=github.com/gogo/protobuf/types \
google/rpc/status.proto=github.com/gogo/googleapis/google/rpc \
google/rpc/code.proto=github.com/gogo/googleapis/google/rpc \
google/rpc/error_details.proto=github.com/gogo/googleapis/google/rpc \
# generate mapping directive with M<proto>:<go pkg>, format for each proto file
mapping_with_spaces := $(foreach map,$(importmaps),M$(map),)
gogo_mapping := $(subst $(space),$(empty),$(mapping_with_spaces))
gogo_plugin := $(gogo_plugin_prefix)$(gogo_mapping):$(out_path)
gogofast_plugin := $(gogofast_plugin_prefix)$(gogo_mapping):$(out_path)
gogoslick_plugin := $(gogoslick_plugin_prefix)$(gogo_mapping):$(out_path)
########################
# protoc_gen_docs
########################
protoc_gen_docs_plugin := --docs_out=warnings=true,mode=html_fragment_with_front_matter:$(repo_dir)/
#####################
# Generation Rules
#####################
generate: \
generate-mcp-go \
generate-mcp-python \
generate-mesh-go \
generate-mesh-python \
generate-mixer-go \
generate-mixer-python \
generate-routing-go \
generate-routing-python \
generate-rbac-go \
generate-rbac-python \
generate-authn-go \
generate-authn-python \
generate-envoy-go \
generate-envoy-python
#####################
# mcp/...
#####################
config_mcp_path := mcp/v1alpha1
config_mcp_protos := $(shell find $(config_mcp_path) -type f -name '*.proto' | sort)
config_mcp_pb_gos := $(config_mcp_protos:.proto=.pb.go)
config_mcp_pb_pythons := $(config_mcp_protos:.proto=_pb2.py)
config_mcp_pb_doc := $(config_mcp_path)/istio.mcp.v1alpha1.pb.html
generate-mcp-go: $(config_mcp_pb_gos) $(config_mcp_pb_doc)
$(config_mcp_pb_gos) $(config_mcp_pb_doc): $(config_mcp_protos)
## Generate mcp/v1alpha1/*.pb.go + $(config_mcp_pb_doc)
@$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(config_mcp_path) $^
generate-mcp-python: $(config_mcp_pb_pythons)
$(config_mcp_pb_pythons): $(config_mcp_protos)
## Generate python/istio_api/mcp/v1alpha1/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
clean-mcp:
rm -f $(config_mcp_pb_gos)
rm -f $(config_mcp_pb_doc)
#####################
# mesh/...
#####################
mesh_path := mesh/v1alpha1
mesh_protos := $(shell find $(mesh_path) -type f -name '*.proto' | sort)
mesh_pb_gos := $(mesh_protos:.proto=.pb.go)
mesh_pb_pythons := $(mesh_protos:.proto=_pb2.py)
mesh_pb_doc := $(mesh_path)/istio.mesh.v1alpha1.pb.html
generate-mesh-go: $(mesh_pb_gos) $(mesh_pb_doc)
$(mesh_pb_gos) $(mesh_pb_doc): $(mesh_protos)
## Generate mesh/v1alpha1/*.pb.go + $(mesh_pb_doc)
@$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(mesh_path) $^
generate-mesh-python: $(mesh_pb_pythons)
$(mesh_pb_pythons): $(mesh_protos)
## Generate python/istio_api/mesh/v1alpha1/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
clean-mesh:
rm -f $(mesh_pb_gos)
rm -f $(mesh_pb_doc)
#####################
# mixer/...
#####################
mixer_v1_path := mixer/v1
mixer_v1_protos := $(shell find $(mixer_v1_path) -maxdepth 1 -type f -name '*.proto' | sort)
mixer_v1_pb_gos := $(mixer_v1_protos:.proto=.pb.go)
mixer_v1_pb_pythons := $(mixer_v1_protos:.proto=_pb2.py)
mixer_v1_pb_doc := $(mixer_v1_path)/istio.mixer.v1.pb.html
mixer_config_client_path := mixer/v1/config/client
mixer_config_client_protos := $(shell find $(mixer_config_client_path) -maxdepth 1 -type f -name '*.proto' | sort)
mixer_config_client_pb_gos := $(mixer_config_client_protos:.proto=.pb.go)
mixer_config_client_pb_pythons := $(mixer_config_client_protos:.proto=_pb2.py)
mixer_config_client_pb_doc := $(mixer_config_client_path)/istio.mixer.v1.config.client.pb.html
mixer_adapter_model_v1beta1_path := mixer/adapter/model/v1beta1
mixer_adapter_model_v1beta1_protos := $(shell find $(mixer_adapter_model_v1beta1_path) -maxdepth 1 -type f -name '*.proto' | sort)
mixer_adapter_model_v1beta1_pb_gos := $(mixer_adapter_model_v1beta1_protos:.proto=.pb.go)
mixer_adapter_model_v1beta1_pb_pythons := $(mixer_adapter_model_v1beta1_protos:.proto=_pb2.py)
mixer_adapter_model_v1beta1_pb_doc := $(mixer_adapter_model_v1beta1_path)/istio.mixer.adapter.model.v1beta1.pb.html
policy_v1beta1_path := policy/v1beta1
policy_v1beta1_protos := $(shell find $(policy_v1beta1_path) -maxdepth 1 -type f -name '*.proto' | sort)
policy_v1beta1_pb_gos := $(policy_v1beta1_protos:.proto=.pb.go)
policy_v1beta1_pb_pythons := $(policy_v1beta1_protos:.proto=_pb2.py)
policy_v1beta1_pb_doc := $(policy_v1beta1_path)/istio.policy.v1beta1.pb.html
generate-mixer-go: \
$(mixer_v1_pb_gos) $(mixer_v1_pb_doc) \
$(mixer_config_client_pb_gos) $(mixer_config_client_pb_doc) \
$(mixer_adapter_model_v1beta1_pb_gos) $(mixer_adapter_model_v1beta1_pb_doc) \
$(policy_v1beta1_pb_gos) $(policy_v1beta1_pb_doc)
$(mixer_v1_pb_gos) $(mixer_v1_pb_doc): $(mixer_v1_protos)
## Generate mixer/v1/*.pb.go + $(mixer_v1_pb_doc)
@$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(mixer_v1_path) $^
$(mixer_config_client_pb_gos) $(mixer_config_client_pb_doc): $(mixer_config_client_protos)
## Generate mixer/v1/config/client/*.pb.go + $(mixer_config_client_pb_doc)
@$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(mixer_config_client_path) $^
$(mixer_adapter_model_v1beta1_pb_gos) $(mixer_adapter_model_v1beta1_pb_doc) : $(mixer_adapter_model_v1beta1_protos)
## Generate mixer/adapter/model/v1beta1/*.pb.go + $(mixer_adapter_model_v1beta1_pb_doc)
@$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(mixer_adapter_model_v1beta1_path) $^
$(policy_v1beta1_pb_gos) $(policy_v1beta1_pb_doc) : $(policy_v1beta1_protos)
## Generate policy/v1beta1/*.pb.go + $(policy_v1beta1_pb_doc)
@$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(policy_v1beta1_path) $^
generate-mixer-python: \
$(mixer_v1_pb_pythons) \
$(mixer_config_client_pb_pythons) \
$(mixer_adapter_model_v1beta1_pb_pythons) \
$(policy_v1beta1_pb_pythons)
$(mixer_v1_pb_pythons): $(mixer_v1_protos)
## Generate python/istio_api/mixer/v1/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
$(mixer_config_client_pb_pythons): $(mixer_config_client_protos)
## Generate python/istio_api/mixer/v1/config/client/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
$(mixer_adapter_model_v1beta1_pb_pythons): $(mixer_adapter_model_v1beta1_protos)
## Generate python/istio_api/mixer/adapter/model/v1beta1/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
$(policy_v1beta1_pb_pythons): $(policy_v1beta1_protos)
## Generate python/istio_api/policy/v1beta1/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
clean-mixer:
rm -f $(mixer_v1_pb_gos) $(mixer_config_client_pb_gos) $(mixer_adapter_model_v1beta1_pb_gos) $(policy_v1beta1_pb_gos) policy/v1beta1/fixed_cfg.pb.go
rm -f $(mixer_v1_pb_doc) $(mixer_config_client_pb_doc) $(mixer_adapter_model_v1beta1_pb_doc) $(policy_v1beta1_pb_doc)
#####################
# routing/...
#####################
routing_v1alpha3_path := networking/v1alpha3
routing_v1alpha3_protos := $(shell find networking/v1alpha3 -type f -name '*.proto' | sort)
routing_v1alpha3_pb_gos := $(routing_v1alpha3_protos:.proto=.pb.go)
routing_v1alpha3_pb_pythons := $(routing_v1alpha3_protos:.proto=_pb2.py)
routing_v1alpha3_pb_doc := $(routing_v1alpha3_path)/istio.routing.v1alpha3.pb.html
generate-routing-go: $(routing_v1alpha3_pb_gos) $(routing_v1alpha3_pb_doc)
$(routing_v1alpha3_pb_gos) $(routing_v1alpha3_pb_doc): $(routing_v1alpha3_protos)
## Generate networking/v1alpha3/*.pb.go
@$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(routing_v1alpha3_path) $^
generate-routing-python: $(routing_v1alpha3_pb_pythons)
$(routing_v1alpha3_pb_pythons): $(routing_v1alpha3_protos)
## Generate python/istio_api/networking/v1alpha3/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
clean-routing:
rm -f $(routing_v1alpha3_pb_gos)
rm -f $(routing_v1alpha3_pb_doc)
#####################
# rbac/...
#####################
rbac_v1alpha1_path := rbac/v1alpha1
rbac_v1alpha1_protos := $(shell find $(rbac_v1alpha1_path) -type f -name '*.proto' | sort)
rbac_v1alpha1_pb_gos := $(rbac_v1alpha1_protos:.proto=.pb.go)
rbac_v1alpha1_pb_pythons := $(rbac_v1alpha1_protos:.proto=_pb2.py)
rbac_v1alpha1_pb_doc := $(rbac_v1alpha1_path)/istio.rbac.v1alpha1.pb.html
generate-rbac-go: $(rbac_v1alpha1_pb_gos) $(rbac_v1alpha1_pb_doc)
$(rbac_v1alpha1_pb_gos) $(rbac_v1alpha1_pb_doc): $(rbac_v1alpha1_protos)
## Generate rbac/v1alpha1/*.pb.go
@$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(rbac_v1alpha1_path) $^
generate-rbac-python: $(rbac_v1alpha1_protos)
$(rbac_v1alpha1_pb_pythons): $(rbac_v1alpha1_protos)
## Generate python/istio_api/rbac/v1alpha1/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
clean-rbac:
rm -f $(rbac_v1alpha1_pb_gos)
rm -f $(rbac_v1alpha1_pb_doc)
#####################
# authentication/...
#####################
authn_v1alpha1_path := authentication/v1alpha1
authn_v1alpha1_protos := $(shell find $(authn_v1alpha1_path) -type f -name '*.proto' | sort)
authn_v1alpha1_pb_gos := $(authn_v1alpha1_protos:.proto=.pb.go)
authn_v1alpha1_pb_pythons := $(authn_v1alpha1_protos:.proto=_pb2.py)
authn_v1alpha1_pb_doc := $(authn_v1alpha1_path)/istio.authentication.v1alpha1.pb.html
generate-authn-go: $(authn_v1alpha1_pb_gos) $(authn_v1alpha1_pb_doc)
$(authn_v1alpha1_pb_gos) $(authn_v1alpha1_pb_doc): $(authn_v1alpha1_protos)
## Generate authentication/v1alpha1/*.pb.go
@$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(authn_v1alpha1_path) $^
generate-authn-python: $(authn_v1alpha1_pb_pythons)
$(authn_v1alpha1_pb_pythons): $(authn_v1alpha1_protos)
## Generate python/istio_api/authentication/v1alpha1/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
clean-authn:
rm -f $(authn_v1alpha1_pb_gos)
rm -f $(authn_v1alpha1_pb_doc)
#####################
# envoy/...
#####################
envoy_path := envoy
envoy_protos := $(shell find $(envoy_path) -type f -name '*.proto' | sort)
envoy_pb_gos := $(envoy_protos:.proto=.pb.go)
envoy_pb_pythons := $(envoy_protos:.proto=_pb2.py)
generate-envoy-go: $(envoy_pb_gos) $(envoy_pb_doc)
# Envoy APIs is internal APIs, documents is not required.
$(envoy_pb_gos): $(envoy_protos)
## Generate envoy/*/*.pb.go
@$(docker_gen) $(gogofast_plugin) $^
generate-envoy-python: $(envoy_pb_pythons)
# Envoy APIs is internal APIs, documents is not required.
$(envoy_pb_pythons): $(envoy_protos)
## Generate envoy/*/*_pb2.py
@$(docker_gen) $(protoc_gen_python_plugin) $^
clean-envoy:
rm -f $(envoy_pb_gos)
#####################
# Cleanup
#####################
clean-python:
rm -rf python/istio_api/*
clean: clean-mcp \
clean-mesh \
clean-mixer \
clean-routing \
clean-rbac \
clean-authn \
clean-envoy \
clean-python

118
Makefile.core.mk Normal file
View File

@ -0,0 +1,118 @@
# Copyright Istio Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
SHELL := /bin/bash
all: gen
########################
# setup
########################
repo_dir := .
annotations_prep = annotations_prep
htmlproofer = htmlproofer
#####################
# Generation Rules
#####################
.PHONY: gen-proto
gen-proto:
./gen.sh
.PHONY: clean
clean:
./clean.sh
.PHONY: gen
gen: \
clean \
gen-proto \
generate-annotations \
generate-labels \
mirror-licenses \
tidy-go \
breaking
gen-check: gen check-clean-repo
breaking:
@./scripts/breaking.sh $(UPDATE_BRANCH)
#####################
# annotation/...
#####################
annotations_path := annotation
annotations_pb_go := $(annotations_path)/annotations.gen.go
annotations_pb_doc := $(annotations_path)/annotations.pb.html
annotations_yaml := $(annotations_path)/annotations.yaml
$(annotations_pb_go) $(annotations_pb_doc): $(annotations_yaml)
@$(annotations_prep) --input $(annotations_yaml) --output $(annotations_pb_go) --html_output $(annotations_pb_doc) --collection_type annotation
generate-annotations: $(annotations_pb_go) $(annotations_pb_doc)
clean-annotations:
@rm -fr $(annotations_pb_go) $(annotations_pb_doc)
#####################
# label/...
#####################
labels_path := label
labels_pb_go := $(labels_path)/labels.gen.go
labels_pb_doc := $(labels_path)/labels.pb.html
labels_yaml := $(labels_path)/labels.yaml
$(labels_pb_go) $(labels_pb_doc): $(labels_yaml)
@$(annotations_prep) --input $(labels_yaml) --output $(labels_pb_go) --html_output $(labels_pb_doc) --collection_type label
generate-labels: $(labels_pb_go) $(labels_pb_doc)
clean-labels:
@rm -fr $(labels_pb_go) $(labels_pb_doc)
#####################
# Misc
#####################
# lint-protos is different for istio/api. List all other lint-all targets and add local-lint-protos
local-lint-protos:
@buf lint
@./scripts/check-operator-proto.sh
@./scripts/check-imports.sh
lint: lint-dockerfiles lint-scripts lint-yaml lint-helm lint-copyright-banner lint-go lint-python lint-markdown lint-sass lint-typescript lint-licenses local-lint-protos
@$(htmlproofer) . --url-swap "istio.io:preliminary.istio.io" --assume-extension --check-html --check-external-hash --check-opengraph --timeframe 2d --storage-dir $(repo_dir)/.htmlproofer --url-ignore "/localhost/"
test: breaking
(pushd tests && go test -v ./...)
fmt: format-python
#####################
# CI System
#####################
presubmit: lint test
postsubmit: presubmit
#####################
# Common definitions
#####################
include common/Makefile.common.mk

21
Makefile.overrides.mk Normal file
View File

@ -0,0 +1,21 @@
# Copyright 2019 Istio Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# this repo is on the container plan by default
BUILD_WITH_CONTAINER ?= 1
# if enabled, will verify that schema definitions match between versions (ie. v1alpha3 & v1beta1).
# only works with apiextensions.k8s.io/v1 kubernetes api (not with v1beta1)
VERIFY_CRDS_SCHEMA ?= 0

27
OWNERS
View File

@ -1,27 +0,0 @@
# Please add your github ID alphabetically.
reviewers:
- andraxylia
- costinm
- diemtvu
- frankbu
- geeknoid
- hklai
- kyessenov
- mandarjog
- qiwzhang
- rshriram
- sebastienvas
- wattli
approvers:
- andraxylia
- costinm
- diemtvu
- frankbu
- geeknoid
- hklai
- kyessenov
- mandarjog
- qiwzhang
- rshriram
- sebastienvas
- wattli

View File

@ -4,7 +4,8 @@ This repository defines component-level APIs and common configuration formats fo
platform. These definitions are specified using the [protobuf](https://github.com/google/protobuf)
syntax.
This repository depends only on the [tools](https://github.com/istio/tools) repository for tools used during build. This repository *will not* depend on any other repositories. Except for tools, all other Istio repositories can take a dependency on the api repository.
This repository depends only on the [tools](https://github.com/istio/tools) repository for tools used during build. This repository *will not* depend on any
other repositories. Except for tools, all other Istio repositories can take a dependency on the api repository.
## API Guidelines
@ -12,6 +13,15 @@ When making changes to the protos in this repository, your changes **must** comp
## Updating
After the [protobuf](https://github.com/google/protobuf) definitions are updated, the corresponding `*pb.go` and `_pb2.py` files must be generated by running `scripts/generate-protos.sh` and submitted as part of the same PR as the updated definitions.
After the [protobuf](https://github.com/google/protobuf) definitions
are updated, the corresponding `*pb.go`, `_pb2.py`, `*.json` and
Kubernetes Custom Resource Definition files must be
generated by running `make gen` and submitted as
part of the same PR as the updated definitions. Also `make
gen` will update the proto.lock file with new changes.
If releasing a new tagged version, please update python/istio-api/setup.py version to reflect.
## Backwards Incompatible Changes
If a PR tries to make backwards incompatible changes, it will be blocked by `buf breaking`.
If there are legitimate reasons to make these breaking changes forever, the configuration in [`buf.yaml`](buf.yaml) can be changed.
If it is a one-off case, the PR can be force approved skipping the test.

7
SUPPORT.md Normal file
View File

@ -0,0 +1,7 @@
# Support
Here are some resources to help you understand and use Istio:
- For in-depth information about how to use Istio, visit [istio.io](https://istio.io)
- To ask questions and get assistance from our community, visit [GitHub Discussions](https://github.com/istio/istio/discussions)
- To learn how to participate in our overall community, visit [our community page](https://istio.io/latest/get-involved/)

View File

@ -1,15 +0,0 @@
workspace(name = "io_istio_api")
load("//:check_bazel_version.bzl", "check_version")
check_version()
git_repository(
name = "io_bazel_rules_go",
commit = "9cf23e2aab101f86e4f51d8c5e0f14c012c2161c", # Oct 12, 2017 (Add `build_external` option to `go_repository`)
remote = "https://github.com/bazelbuild/rules_go.git",
)
load("//:api_dependencies.bzl", "mixer_api_dependencies")
mixer_api_dependencies()

589
analysis/v1alpha1/message.pb.go generated Normal file
View File

@ -0,0 +1,589 @@
// Copyright 2019 Istio Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.6
// protoc (unknown)
// source: analysis/v1alpha1/message.proto
// $title: Analysis Messages
// $description: Describes the structure of messages generated by Istio analyzers.
// $location: https://istio.io/docs/reference/config/istio.analysis.v1alpha1.html
// $weight: 20
// Describes the structure of messages generated by Istio analyzers.
package v1alpha1
import (
_struct "github.com/golang/protobuf/ptypes/struct"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// The values here are chosen so that more severe messages get sorted higher,
// as well as leaving space in between to add more later
type AnalysisMessageBase_Level int32
const (
AnalysisMessageBase_UNKNOWN AnalysisMessageBase_Level = 0 // invalid, but included for proto compatibility for 0 values
AnalysisMessageBase_ERROR AnalysisMessageBase_Level = 3
AnalysisMessageBase_WARNING AnalysisMessageBase_Level = 8
AnalysisMessageBase_INFO AnalysisMessageBase_Level = 12
)
// Enum value maps for AnalysisMessageBase_Level.
var (
AnalysisMessageBase_Level_name = map[int32]string{
0: "UNKNOWN",
3: "ERROR",
8: "WARNING",
12: "INFO",
}
AnalysisMessageBase_Level_value = map[string]int32{
"UNKNOWN": 0,
"ERROR": 3,
"WARNING": 8,
"INFO": 12,
}
)
func (x AnalysisMessageBase_Level) Enum() *AnalysisMessageBase_Level {
p := new(AnalysisMessageBase_Level)
*p = x
return p
}
func (x AnalysisMessageBase_Level) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AnalysisMessageBase_Level) Descriptor() protoreflect.EnumDescriptor {
return file_analysis_v1alpha1_message_proto_enumTypes[0].Descriptor()
}
func (AnalysisMessageBase_Level) Type() protoreflect.EnumType {
return &file_analysis_v1alpha1_message_proto_enumTypes[0]
}
func (x AnalysisMessageBase_Level) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AnalysisMessageBase_Level.Descriptor instead.
func (AnalysisMessageBase_Level) EnumDescriptor() ([]byte, []int) {
return file_analysis_v1alpha1_message_proto_rawDescGZIP(), []int{0, 0}
}
// AnalysisMessageBase describes some common information that is needed for all
// messages. All information should be static with respect to the error code.
type AnalysisMessageBase struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type *AnalysisMessageBase_Type `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
// Represents how severe a message is. Required.
Level AnalysisMessageBase_Level `protobuf:"varint,2,opt,name=level,proto3,enum=istio.analysis.v1alpha1.AnalysisMessageBase_Level" json:"level,omitempty"`
// A url pointing to the Istio documentation for this specific error type.
// Should be of the form
// `^http(s)?://(preliminary\.)?istio.io/docs/reference/config/analysis/`
// Required.
DocumentationUrl string `protobuf:"bytes,3,opt,name=documentation_url,json=documentationUrl,proto3" json:"documentation_url,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AnalysisMessageBase) Reset() {
*x = AnalysisMessageBase{}
mi := &file_analysis_v1alpha1_message_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AnalysisMessageBase) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AnalysisMessageBase) ProtoMessage() {}
func (x *AnalysisMessageBase) ProtoReflect() protoreflect.Message {
mi := &file_analysis_v1alpha1_message_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AnalysisMessageBase.ProtoReflect.Descriptor instead.
func (*AnalysisMessageBase) Descriptor() ([]byte, []int) {
return file_analysis_v1alpha1_message_proto_rawDescGZIP(), []int{0}
}
func (x *AnalysisMessageBase) GetType() *AnalysisMessageBase_Type {
if x != nil {
return x.Type
}
return nil
}
func (x *AnalysisMessageBase) GetLevel() AnalysisMessageBase_Level {
if x != nil {
return x.Level
}
return AnalysisMessageBase_UNKNOWN
}
func (x *AnalysisMessageBase) GetDocumentationUrl() string {
if x != nil {
return x.DocumentationUrl
}
return ""
}
// AnalysisMessageWeakSchema is the set of information that's needed to define a
// weakly-typed schema. The purpose of this proto is to provide a mechanism for
// validating istio/istio/galley/pkg/config/analysis/msg/messages.yaml to make
// sure that we don't allow committing underspecified types.
type AnalysisMessageWeakSchema struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required
MessageBase *AnalysisMessageBase `protobuf:"bytes,1,opt,name=message_base,json=messageBase,proto3" json:"message_base,omitempty"`
// A human readable description of what the error means. Required.
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// A go-style template string (https://golang.org/pkg/fmt/#hdr-Printing)
// defining how to combine the args for a particular message into a log line.
// Required.
Template string `protobuf:"bytes,3,opt,name=template,proto3" json:"template,omitempty"`
// A description of the arguments for a particular message type
Args []*AnalysisMessageWeakSchema_ArgType `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AnalysisMessageWeakSchema) Reset() {
*x = AnalysisMessageWeakSchema{}
mi := &file_analysis_v1alpha1_message_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AnalysisMessageWeakSchema) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AnalysisMessageWeakSchema) ProtoMessage() {}
func (x *AnalysisMessageWeakSchema) ProtoReflect() protoreflect.Message {
mi := &file_analysis_v1alpha1_message_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AnalysisMessageWeakSchema.ProtoReflect.Descriptor instead.
func (*AnalysisMessageWeakSchema) Descriptor() ([]byte, []int) {
return file_analysis_v1alpha1_message_proto_rawDescGZIP(), []int{1}
}
func (x *AnalysisMessageWeakSchema) GetMessageBase() *AnalysisMessageBase {
if x != nil {
return x.MessageBase
}
return nil
}
func (x *AnalysisMessageWeakSchema) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *AnalysisMessageWeakSchema) GetTemplate() string {
if x != nil {
return x.Template
}
return ""
}
func (x *AnalysisMessageWeakSchema) GetArgs() []*AnalysisMessageWeakSchema_ArgType {
if x != nil {
return x.Args
}
return nil
}
// GenericAnalysisMessage is an instance of an AnalysisMessage defined by a
// schema, whose metaschema is AnalysisMessageWeakSchema. (Names are hard.) Code
// should be able to perform validation of arguments as needed by using the
// message type information to look at the AnalysisMessageWeakSchema and examine the
// list of args at runtime. Developers can also create stronger-typed versions
// of GenericAnalysisMessage for well-known and stable message types.
type GenericAnalysisMessage struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required
MessageBase *AnalysisMessageBase `protobuf:"bytes,1,opt,name=message_base,json=messageBase,proto3" json:"message_base,omitempty"`
// Any message-type specific arguments that need to get codified. Optional.
Args *_struct.Struct `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"`
// A list of strings specifying the resource identifiers that were the cause
// of message generation. A "path" here is a (NAMESPACE\/)?RESOURCETYPE/NAME
// tuple that uniquely identifies a particular resource. There doesn't seem to
// be a single concept for this, but this is intuitively taken from
// https://kubernetes.io/docs/reference/using-api/api-concepts/#standard-api-terminology
// At least one is required.
ResourcePaths []string `protobuf:"bytes,3,rep,name=resource_paths,json=resourcePaths,proto3" json:"resource_paths,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GenericAnalysisMessage) Reset() {
*x = GenericAnalysisMessage{}
mi := &file_analysis_v1alpha1_message_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GenericAnalysisMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GenericAnalysisMessage) ProtoMessage() {}
func (x *GenericAnalysisMessage) ProtoReflect() protoreflect.Message {
mi := &file_analysis_v1alpha1_message_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GenericAnalysisMessage.ProtoReflect.Descriptor instead.
func (*GenericAnalysisMessage) Descriptor() ([]byte, []int) {
return file_analysis_v1alpha1_message_proto_rawDescGZIP(), []int{2}
}
func (x *GenericAnalysisMessage) GetMessageBase() *AnalysisMessageBase {
if x != nil {
return x.MessageBase
}
return nil
}
func (x *GenericAnalysisMessage) GetArgs() *_struct.Struct {
if x != nil {
return x.Args
}
return nil
}
func (x *GenericAnalysisMessage) GetResourcePaths() []string {
if x != nil {
return x.ResourcePaths
}
return nil
}
// InternalErrorAnalysisMessage is a strongly-typed message representing some
// error in Istio code that prevented us from performing analysis at all.
type InternalErrorAnalysisMessage struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required
MessageBase *AnalysisMessageBase `protobuf:"bytes,1,opt,name=message_base,json=messageBase,proto3" json:"message_base,omitempty"`
// Any detail regarding specifics of the error. Should be human-readable.
Detail string `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *InternalErrorAnalysisMessage) Reset() {
*x = InternalErrorAnalysisMessage{}
mi := &file_analysis_v1alpha1_message_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *InternalErrorAnalysisMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InternalErrorAnalysisMessage) ProtoMessage() {}
func (x *InternalErrorAnalysisMessage) ProtoReflect() protoreflect.Message {
mi := &file_analysis_v1alpha1_message_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use InternalErrorAnalysisMessage.ProtoReflect.Descriptor instead.
func (*InternalErrorAnalysisMessage) Descriptor() ([]byte, []int) {
return file_analysis_v1alpha1_message_proto_rawDescGZIP(), []int{3}
}
func (x *InternalErrorAnalysisMessage) GetMessageBase() *AnalysisMessageBase {
if x != nil {
return x.MessageBase
}
return nil
}
func (x *InternalErrorAnalysisMessage) GetDetail() string {
if x != nil {
return x.Detail
}
return ""
}
// A unique identifier for the type of message. Name is intended to be
// human-readable, code is intended to be machine readable. There should be a
// one-to-one mapping between name and code. (i.e. do not re-use names or
// codes between message types.)
type AnalysisMessageBase_Type struct {
state protoimpl.MessageState `protogen:"open.v1"`
// A human-readable name for the message type. e.g. "InternalError",
// "PodMissingProxy". This should be the same for all messages of the same type.
// Required.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify
// the message type. (e.g. "IST0001" is mapped to the "InternalError" message
// type.) 0000-0100 are reserved. Required.
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AnalysisMessageBase_Type) Reset() {
*x = AnalysisMessageBase_Type{}
mi := &file_analysis_v1alpha1_message_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AnalysisMessageBase_Type) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AnalysisMessageBase_Type) ProtoMessage() {}
func (x *AnalysisMessageBase_Type) ProtoReflect() protoreflect.Message {
mi := &file_analysis_v1alpha1_message_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AnalysisMessageBase_Type.ProtoReflect.Descriptor instead.
func (*AnalysisMessageBase_Type) Descriptor() ([]byte, []int) {
return file_analysis_v1alpha1_message_proto_rawDescGZIP(), []int{0, 0}
}
func (x *AnalysisMessageBase_Type) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *AnalysisMessageBase_Type) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
type AnalysisMessageWeakSchema_ArgType struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Required. Should be a golang type, used in code generation.
// Ideally this will change to a less language-pinned type before this gets
// out of alpha, but for compatibility with current istio/istio code it's
// go_type for now.
GoType string `protobuf:"bytes,2,opt,name=go_type,json=goType,proto3" json:"go_type,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AnalysisMessageWeakSchema_ArgType) Reset() {
*x = AnalysisMessageWeakSchema_ArgType{}
mi := &file_analysis_v1alpha1_message_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AnalysisMessageWeakSchema_ArgType) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AnalysisMessageWeakSchema_ArgType) ProtoMessage() {}
func (x *AnalysisMessageWeakSchema_ArgType) ProtoReflect() protoreflect.Message {
mi := &file_analysis_v1alpha1_message_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AnalysisMessageWeakSchema_ArgType.ProtoReflect.Descriptor instead.
func (*AnalysisMessageWeakSchema_ArgType) Descriptor() ([]byte, []int) {
return file_analysis_v1alpha1_message_proto_rawDescGZIP(), []int{1, 0}
}
func (x *AnalysisMessageWeakSchema_ArgType) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *AnalysisMessageWeakSchema_ArgType) GetGoType() string {
if x != nil {
return x.GoType
}
return ""
}
var File_analysis_v1alpha1_message_proto protoreflect.FileDescriptor
const file_analysis_v1alpha1_message_proto_rawDesc = "" +
"\n" +
"\x1fanalysis/v1alpha1/message.proto\x12\x17istio.analysis.v1alpha1\x1a\x1cgoogle/protobuf/struct.proto\"\xbb\x02\n" +
"\x13AnalysisMessageBase\x12E\n" +
"\x04type\x18\x01 \x01(\v21.istio.analysis.v1alpha1.AnalysisMessageBase.TypeR\x04type\x12H\n" +
"\x05level\x18\x02 \x01(\x0e22.istio.analysis.v1alpha1.AnalysisMessageBase.LevelR\x05level\x12+\n" +
"\x11documentation_url\x18\x03 \x01(\tR\x10documentationUrl\x1a.\n" +
"\x04Type\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" +
"\x04code\x18\x02 \x01(\tR\x04code\"6\n" +
"\x05Level\x12\v\n" +
"\aUNKNOWN\x10\x00\x12\t\n" +
"\x05ERROR\x10\x03\x12\v\n" +
"\aWARNING\x10\b\x12\b\n" +
"\x04INFO\x10\f\"\xb2\x02\n" +
"\x19AnalysisMessageWeakSchema\x12O\n" +
"\fmessage_base\x18\x01 \x01(\v2,.istio.analysis.v1alpha1.AnalysisMessageBaseR\vmessageBase\x12 \n" +
"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x1a\n" +
"\btemplate\x18\x03 \x01(\tR\btemplate\x12N\n" +
"\x04args\x18\x04 \x03(\v2:.istio.analysis.v1alpha1.AnalysisMessageWeakSchema.ArgTypeR\x04args\x1a6\n" +
"\aArgType\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x17\n" +
"\ago_type\x18\x02 \x01(\tR\x06goType\"\xbd\x01\n" +
"\x16GenericAnalysisMessage\x12O\n" +
"\fmessage_base\x18\x01 \x01(\v2,.istio.analysis.v1alpha1.AnalysisMessageBaseR\vmessageBase\x12+\n" +
"\x04args\x18\x02 \x01(\v2\x17.google.protobuf.StructR\x04args\x12%\n" +
"\x0eresource_paths\x18\x03 \x03(\tR\rresourcePaths\"\x87\x01\n" +
"\x1cInternalErrorAnalysisMessage\x12O\n" +
"\fmessage_base\x18\x01 \x01(\v2,.istio.analysis.v1alpha1.AnalysisMessageBaseR\vmessageBase\x12\x16\n" +
"\x06detail\x18\x02 \x01(\tR\x06detailB Z\x1eistio.io/api/analysis/v1alpha1b\x06proto3"
var (
file_analysis_v1alpha1_message_proto_rawDescOnce sync.Once
file_analysis_v1alpha1_message_proto_rawDescData []byte
)
func file_analysis_v1alpha1_message_proto_rawDescGZIP() []byte {
file_analysis_v1alpha1_message_proto_rawDescOnce.Do(func() {
file_analysis_v1alpha1_message_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_analysis_v1alpha1_message_proto_rawDesc), len(file_analysis_v1alpha1_message_proto_rawDesc)))
})
return file_analysis_v1alpha1_message_proto_rawDescData
}
var file_analysis_v1alpha1_message_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_analysis_v1alpha1_message_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_analysis_v1alpha1_message_proto_goTypes = []any{
(AnalysisMessageBase_Level)(0), // 0: istio.analysis.v1alpha1.AnalysisMessageBase.Level
(*AnalysisMessageBase)(nil), // 1: istio.analysis.v1alpha1.AnalysisMessageBase
(*AnalysisMessageWeakSchema)(nil), // 2: istio.analysis.v1alpha1.AnalysisMessageWeakSchema
(*GenericAnalysisMessage)(nil), // 3: istio.analysis.v1alpha1.GenericAnalysisMessage
(*InternalErrorAnalysisMessage)(nil), // 4: istio.analysis.v1alpha1.InternalErrorAnalysisMessage
(*AnalysisMessageBase_Type)(nil), // 5: istio.analysis.v1alpha1.AnalysisMessageBase.Type
(*AnalysisMessageWeakSchema_ArgType)(nil), // 6: istio.analysis.v1alpha1.AnalysisMessageWeakSchema.ArgType
(*_struct.Struct)(nil), // 7: google.protobuf.Struct
}
var file_analysis_v1alpha1_message_proto_depIdxs = []int32{
5, // 0: istio.analysis.v1alpha1.AnalysisMessageBase.type:type_name -> istio.analysis.v1alpha1.AnalysisMessageBase.Type
0, // 1: istio.analysis.v1alpha1.AnalysisMessageBase.level:type_name -> istio.analysis.v1alpha1.AnalysisMessageBase.Level
1, // 2: istio.analysis.v1alpha1.AnalysisMessageWeakSchema.message_base:type_name -> istio.analysis.v1alpha1.AnalysisMessageBase
6, // 3: istio.analysis.v1alpha1.AnalysisMessageWeakSchema.args:type_name -> istio.analysis.v1alpha1.AnalysisMessageWeakSchema.ArgType
1, // 4: istio.analysis.v1alpha1.GenericAnalysisMessage.message_base:type_name -> istio.analysis.v1alpha1.AnalysisMessageBase
7, // 5: istio.analysis.v1alpha1.GenericAnalysisMessage.args:type_name -> google.protobuf.Struct
1, // 6: istio.analysis.v1alpha1.InternalErrorAnalysisMessage.message_base:type_name -> istio.analysis.v1alpha1.AnalysisMessageBase
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
}
func init() { file_analysis_v1alpha1_message_proto_init() }
func file_analysis_v1alpha1_message_proto_init() {
if File_analysis_v1alpha1_message_proto != nil {
return
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_analysis_v1alpha1_message_proto_rawDesc), len(file_analysis_v1alpha1_message_proto_rawDesc)),
NumEnums: 1,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_analysis_v1alpha1_message_proto_goTypes,
DependencyIndexes: file_analysis_v1alpha1_message_proto_depIdxs,
EnumInfos: file_analysis_v1alpha1_message_proto_enumTypes,
MessageInfos: file_analysis_v1alpha1_message_proto_msgTypes,
}.Build()
File_analysis_v1alpha1_message_proto = out.File
file_analysis_v1alpha1_message_proto_goTypes = nil
file_analysis_v1alpha1_message_proto_depIdxs = nil
}

309
analysis/v1alpha1/message.pb.html generated Normal file
View File

@ -0,0 +1,309 @@
---
title: Analysis Messages
description: Describes the structure of messages generated by Istio analyzers.
location: https://istio.io/docs/reference/config/istio.analysis.v1alpha1.html
layout: protoc-gen-docs
generator: protoc-gen-docs
weight: 20
number_of_entries: 7
---
<p>Describes the structure of messages generated by Istio analyzers.</p>
<h2 id="AnalysisMessageBase">AnalysisMessageBase</h2>
<section>
<p>AnalysisMessageBase describes some common information that is needed for all
messages. All information should be static with respect to the error code.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AnalysisMessageBase-type">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageBase-type">type</a></code></div>
<div class="type"><a href="#AnalysisMessageBase-Type">Type</a></div>
</div></td>
<td>
</td>
</tr>
<tr id="AnalysisMessageBase-level">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageBase-level">level</a></code></div>
<div class="type"><a href="#AnalysisMessageBase-Level">Level</a></div>
</div></td>
<td>
<p>Represents how severe a message is. Required.</p>
</td>
</tr>
<tr id="AnalysisMessageBase-documentation_url">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageBase-documentation_url">documentationUrl</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>A url pointing to the Istio documentation for this specific error type.
Should be of the form
<code>^http(s)?://(preliminary\.)?istio.io/docs/reference/config/analysis/</code>
Required.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="AnalysisMessageBase-Type">Type</h3>
<section>
<p>A unique identifier for the type of message. Name is intended to be
human-readable, code is intended to be machine readable. There should be a
one-to-one mapping between name and code. (i.e. do not re-use names or
codes between message types.)</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AnalysisMessageBase-Type-name">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageBase-Type-name">name</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>A human-readable name for the message type. e.g. &ldquo;InternalError&rdquo;,
&ldquo;PodMissingProxy&rdquo;. This should be the same for all messages of the same type.
Required.</p>
</td>
</tr>
<tr id="AnalysisMessageBase-Type-code">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageBase-Type-code">code</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>A 7 character code matching <code>^IST[0-9]{4}$</code> intended to uniquely identify
the message type. (e.g. &ldquo;IST0001&rdquo; is mapped to the &ldquo;InternalError&rdquo; message
type.) 0000-0100 are reserved. Required.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="AnalysisMessageBase-Level">Level</h3>
<section>
<p>The values here are chosen so that more severe messages get sorted higher,
as well as leaving space in between to add more later</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AnalysisMessageBase-Level-UNKNOWN">
<td><code><a href="#AnalysisMessageBase-Level-UNKNOWN">UNKNOWN</a></code></td>
<td>
<p>invalid, but included for proto compatibility for 0 values</p>
</td>
</tr>
<tr id="AnalysisMessageBase-Level-ERROR">
<td><code><a href="#AnalysisMessageBase-Level-ERROR">ERROR</a></code></td>
<td>
</td>
</tr>
<tr id="AnalysisMessageBase-Level-WARNING">
<td><code><a href="#AnalysisMessageBase-Level-WARNING">WARNING</a></code></td>
<td>
</td>
</tr>
<tr id="AnalysisMessageBase-Level-INFO">
<td><code><a href="#AnalysisMessageBase-Level-INFO">INFO</a></code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="AnalysisMessageWeakSchema">AnalysisMessageWeakSchema</h2>
<section>
<p>AnalysisMessageWeakSchema is the set of information that&rsquo;s needed to define a
weakly-typed schema. The purpose of this proto is to provide a mechanism for
validating istio/istio/galley/pkg/config/analysis/msg/messages.yaml to make
sure that we don&rsquo;t allow committing underspecified types.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AnalysisMessageWeakSchema-message_base">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageWeakSchema-message_base">messageBase</a></code></div>
<div class="type"><a href="#AnalysisMessageBase">AnalysisMessageBase</a></div>
</div></td>
<td>
<p>Required</p>
</td>
</tr>
<tr id="AnalysisMessageWeakSchema-description">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageWeakSchema-description">description</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>A human readable description of what the error means. Required.</p>
</td>
</tr>
<tr id="AnalysisMessageWeakSchema-template">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageWeakSchema-template">template</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>A go-style template string (<a href="https://golang.org/pkg/fmt/#hdr-Printing">https://golang.org/pkg/fmt/#hdr-Printing</a>)
defining how to combine the args for a particular message into a log line.
Required.</p>
</td>
</tr>
<tr id="AnalysisMessageWeakSchema-args">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageWeakSchema-args">args</a></code></div>
<div class="type"><a href="#AnalysisMessageWeakSchema-ArgType">ArgType[]</a></div>
</div></td>
<td>
<p>A description of the arguments for a particular message type</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="AnalysisMessageWeakSchema-ArgType">ArgType</h3>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AnalysisMessageWeakSchema-ArgType-name">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageWeakSchema-ArgType-name">name</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>Required</p>
</td>
</tr>
<tr id="AnalysisMessageWeakSchema-ArgType-go_type">
<td><div class="field"><div class="name"><code><a href="#AnalysisMessageWeakSchema-ArgType-go_type">goType</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>Should be a golang type, used in code generation.
Ideally this will change to a less language-pinned type before this gets
out of alpha, but for compatibility with current istio/istio code it&rsquo;s
go_type for now.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="GenericAnalysisMessage">GenericAnalysisMessage</h2>
<section>
<p>GenericAnalysisMessage is an instance of an AnalysisMessage defined by a
schema, whose metaschema is AnalysisMessageWeakSchema. (Names are hard.) Code
should be able to perform validation of arguments as needed by using the
message type information to look at the AnalysisMessageWeakSchema and examine the
list of args at runtime. Developers can also create stronger-typed versions
of GenericAnalysisMessage for well-known and stable message types.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="GenericAnalysisMessage-message_base">
<td><div class="field"><div class="name"><code><a href="#GenericAnalysisMessage-message_base">messageBase</a></code></div>
<div class="type"><a href="#AnalysisMessageBase">AnalysisMessageBase</a></div>
</div></td>
<td>
<p>Required</p>
</td>
</tr>
<tr id="GenericAnalysisMessage-args">
<td><div class="field"><div class="name"><code><a href="#GenericAnalysisMessage-args">args</a></code></div>
<div class="type"><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct">Struct</a></div>
</div></td>
<td>
<p>Any message-type specific arguments that need to get codified. Optional.</p>
</td>
</tr>
<tr id="GenericAnalysisMessage-resource_paths">
<td><div class="field"><div class="name"><code><a href="#GenericAnalysisMessage-resource_paths">resourcePaths</a></code></div>
<div class="type">string[]</div>
</div></td>
<td>
<p>A list of strings specifying the resource identifiers that were the cause
of message generation. A &ldquo;path&rdquo; here is a (NAMESPACE/)?RESOURCETYPE/NAME
tuple that uniquely identifies a particular resource. There doesn&rsquo;t seem to
be a single concept for this, but this is intuitively taken from
<a href="https://kubernetes.io/docs/reference/using-api/api-concepts/#standard-api-terminology">https://kubernetes.io/docs/reference/using-api/api-concepts/#standard-api-terminology</a>
At least one is required.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="InternalErrorAnalysisMessage">InternalErrorAnalysisMessage</h2>
<section>
<p>InternalErrorAnalysisMessage is a strongly-typed message representing some
error in Istio code that prevented us from performing analysis at all.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="InternalErrorAnalysisMessage-message_base">
<td><div class="field"><div class="name"><code><a href="#InternalErrorAnalysisMessage-message_base">messageBase</a></code></div>
<div class="type"><a href="#AnalysisMessageBase">AnalysisMessageBase</a></div>
</div></td>
<td>
<p>Required</p>
</td>
</tr>
<tr id="InternalErrorAnalysisMessage-detail">
<td><div class="field"><div class="name"><code><a href="#InternalErrorAnalysisMessage-detail">detail</a></code></div>
<div class="type">string</div>
</div></td>
<td>
<p>Any detail regarding specifics of the error. Should be human-readable.</p>
</td>
</tr>
</tbody>
</table>
</section>

View File

@ -0,0 +1,143 @@
// Copyright 2019 Istio Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
// $title: Analysis Messages
// $description: Describes the structure of messages generated by Istio analyzers.
// $location: https://istio.io/docs/reference/config/istio.analysis.v1alpha1.html
// $weight: 20
// Describes the structure of messages generated by Istio analyzers.
package istio.analysis.v1alpha1;
import "google/protobuf/struct.proto";
option go_package = "istio.io/api/analysis/v1alpha1";
// There are four messages described in this file. One of them is a struct
// common to the other three: AnalysisMessageBase. Using this, we can construct
// one of three different structures.
// One is the AnalysisMessageWeakSchema, a YAML only description of a message
// type intended to be used where strong API guarantees are not necessary.
// One is the GenericAnalysisMessage, which is the struct that we guarantee that
// you can deserialize any analysis message to. Istio internally uses generated
// golang types from messages.yaml, so in order to reduce friction in creating
// new analyzers we offer a path that doesn't require committing to two
// different repos and solidifying the interface.
// Finally, we can create a new proto message of a specific message type and
// commit it to istio/api when we need a strong guarantee for cross platform
// communication.
// AnalysisMessageBase describes some common information that is needed for all
// messages. All information should be static with respect to the error code.
message AnalysisMessageBase {
// A unique identifier for the type of message. Name is intended to be
// human-readable, code is intended to be machine readable. There should be a
// one-to-one mapping between name and code. (i.e. do not re-use names or
// codes between message types.)
message Type {
// A human-readable name for the message type. e.g. "InternalError",
// "PodMissingProxy". This should be the same for all messages of the same type.
// Required.
string name = 1;
// A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify
// the message type. (e.g. "IST0001" is mapped to the "InternalError" message
// type.) 0000-0100 are reserved. Required.
string code = 2;
}
Type type = 1;
// The values here are chosen so that more severe messages get sorted higher,
// as well as leaving space in between to add more later
enum Level {
UNKNOWN = 0; // invalid, but included for proto compatibility for 0 values
ERROR = 3;
WARNING = 8;
INFO = 12;
}
// Represents how severe a message is. Required.
Level level = 2;
// A url pointing to the Istio documentation for this specific error type.
// Should be of the form
// `^http(s)?://(preliminary\.)?istio.io/docs/reference/config/analysis/`
// Required.
string documentation_url = 3;
}
// AnalysisMessageWeakSchema is the set of information that's needed to define a
// weakly-typed schema. The purpose of this proto is to provide a mechanism for
// validating istio/istio/galley/pkg/config/analysis/msg/messages.yaml to make
// sure that we don't allow committing underspecified types.
message AnalysisMessageWeakSchema {
// Required
AnalysisMessageBase message_base = 1;
// A human readable description of what the error means. Required.
string description = 2;
// A go-style template string (https://golang.org/pkg/fmt/#hdr-Printing)
// defining how to combine the args for a particular message into a log line.
// Required.
string template = 3;
message ArgType {
// Required
string name = 1;
// Required. Should be a golang type, used in code generation.
// Ideally this will change to a less language-pinned type before this gets
// out of alpha, but for compatibility with current istio/istio code it's
// go_type for now.
string go_type = 2;
}
// A description of the arguments for a particular message type
repeated ArgType args = 4;
}
// GenericAnalysisMessage is an instance of an AnalysisMessage defined by a
// schema, whose metaschema is AnalysisMessageWeakSchema. (Names are hard.) Code
// should be able to perform validation of arguments as needed by using the
// message type information to look at the AnalysisMessageWeakSchema and examine the
// list of args at runtime. Developers can also create stronger-typed versions
// of GenericAnalysisMessage for well-known and stable message types.
message GenericAnalysisMessage {
// Required
AnalysisMessageBase message_base = 1;
// Any message-type specific arguments that need to get codified. Optional.
google.protobuf.Struct args = 2;
// A list of strings specifying the resource identifiers that were the cause
// of message generation. A "path" here is a (NAMESPACE\/)?RESOURCETYPE/NAME
// tuple that uniquely identifies a particular resource. There doesn't seem to
// be a single concept for this, but this is intuitively taken from
// https://kubernetes.io/docs/reference/using-api/api-concepts/#standard-api-terminology
// At least one is required.
repeated string resource_paths = 3;
}
// InternalErrorAnalysisMessage is a strongly-typed message representing some
// error in Istio code that prevented us from performing analysis at all.
message InternalErrorAnalysisMessage {
// Required
AnalysisMessageBase message_base = 1;
// Any detail regarding specifics of the error. Should be human-readable.
string detail = 2;
}

132
analysis/v1alpha1/message_deepcopy.gen.go generated Normal file
View File

@ -0,0 +1,132 @@
// Code generated by protoc-gen-deepcopy. DO NOT EDIT.
package v1alpha1
import (
proto "google.golang.org/protobuf/proto"
)
// DeepCopyInto supports using AnalysisMessageBase within kubernetes types, where deepcopy-gen is used.
func (in *AnalysisMessageBase) DeepCopyInto(out *AnalysisMessageBase) {
p := proto.Clone(in).(*AnalysisMessageBase)
*out = *p
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageBase. Required by controller-gen.
func (in *AnalysisMessageBase) DeepCopy() *AnalysisMessageBase {
if in == nil {
return nil
}
out := new(AnalysisMessageBase)
in.DeepCopyInto(out)
return out
}
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageBase. Required by controller-gen.
func (in *AnalysisMessageBase) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
// DeepCopyInto supports using AnalysisMessageBase_Type within kubernetes types, where deepcopy-gen is used.
func (in *AnalysisMessageBase_Type) DeepCopyInto(out *AnalysisMessageBase_Type) {
p := proto.Clone(in).(*AnalysisMessageBase_Type)
*out = *p
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageBase_Type. Required by controller-gen.
func (in *AnalysisMessageBase_Type) DeepCopy() *AnalysisMessageBase_Type {
if in == nil {
return nil
}
out := new(AnalysisMessageBase_Type)
in.DeepCopyInto(out)
return out
}
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageBase_Type. Required by controller-gen.
func (in *AnalysisMessageBase_Type) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
// DeepCopyInto supports using AnalysisMessageWeakSchema within kubernetes types, where deepcopy-gen is used.
func (in *AnalysisMessageWeakSchema) DeepCopyInto(out *AnalysisMessageWeakSchema) {
p := proto.Clone(in).(*AnalysisMessageWeakSchema)
*out = *p
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageWeakSchema. Required by controller-gen.
func (in *AnalysisMessageWeakSchema) DeepCopy() *AnalysisMessageWeakSchema {
if in == nil {
return nil
}
out := new(AnalysisMessageWeakSchema)
in.DeepCopyInto(out)
return out
}
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageWeakSchema. Required by controller-gen.
func (in *AnalysisMessageWeakSchema) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
// DeepCopyInto supports using AnalysisMessageWeakSchema_ArgType within kubernetes types, where deepcopy-gen is used.
func (in *AnalysisMessageWeakSchema_ArgType) DeepCopyInto(out *AnalysisMessageWeakSchema_ArgType) {
p := proto.Clone(in).(*AnalysisMessageWeakSchema_ArgType)
*out = *p
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageWeakSchema_ArgType. Required by controller-gen.
func (in *AnalysisMessageWeakSchema_ArgType) DeepCopy() *AnalysisMessageWeakSchema_ArgType {
if in == nil {
return nil
}
out := new(AnalysisMessageWeakSchema_ArgType)
in.DeepCopyInto(out)
return out
}
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisMessageWeakSchema_ArgType. Required by controller-gen.
func (in *AnalysisMessageWeakSchema_ArgType) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
// DeepCopyInto supports using GenericAnalysisMessage within kubernetes types, where deepcopy-gen is used.
func (in *GenericAnalysisMessage) DeepCopyInto(out *GenericAnalysisMessage) {
p := proto.Clone(in).(*GenericAnalysisMessage)
*out = *p
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericAnalysisMessage. Required by controller-gen.
func (in *GenericAnalysisMessage) DeepCopy() *GenericAnalysisMessage {
if in == nil {
return nil
}
out := new(GenericAnalysisMessage)
in.DeepCopyInto(out)
return out
}
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new GenericAnalysisMessage. Required by controller-gen.
func (in *GenericAnalysisMessage) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
// DeepCopyInto supports using InternalErrorAnalysisMessage within kubernetes types, where deepcopy-gen is used.
func (in *InternalErrorAnalysisMessage) DeepCopyInto(out *InternalErrorAnalysisMessage) {
p := proto.Clone(in).(*InternalErrorAnalysisMessage)
*out = *p
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalErrorAnalysisMessage. Required by controller-gen.
func (in *InternalErrorAnalysisMessage) DeepCopy() *InternalErrorAnalysisMessage {
if in == nil {
return nil
}
out := new(InternalErrorAnalysisMessage)
in.DeepCopyInto(out)
return out
}
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new InternalErrorAnalysisMessage. Required by controller-gen.
func (in *InternalErrorAnalysisMessage) DeepCopyInterface() interface{} {
return in.DeepCopy()
}

78
analysis/v1alpha1/message_json.gen.go generated Normal file
View File

@ -0,0 +1,78 @@
// Code generated by protoc-gen-jsonshim. DO NOT EDIT.
package v1alpha1
import (
bytes "bytes"
jsonpb "github.com/golang/protobuf/jsonpb"
)
// MarshalJSON is a custom marshaler for AnalysisMessageBase
func (this *AnalysisMessageBase) MarshalJSON() ([]byte, error) {
str, err := MessageMarshaler.MarshalToString(this)
return []byte(str), err
}
// UnmarshalJSON is a custom unmarshaler for AnalysisMessageBase
func (this *AnalysisMessageBase) UnmarshalJSON(b []byte) error {
return MessageUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
// MarshalJSON is a custom marshaler for AnalysisMessageBase_Type
func (this *AnalysisMessageBase_Type) MarshalJSON() ([]byte, error) {
str, err := MessageMarshaler.MarshalToString(this)
return []byte(str), err
}
// UnmarshalJSON is a custom unmarshaler for AnalysisMessageBase_Type
func (this *AnalysisMessageBase_Type) UnmarshalJSON(b []byte) error {
return MessageUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
// MarshalJSON is a custom marshaler for AnalysisMessageWeakSchema
func (this *AnalysisMessageWeakSchema) MarshalJSON() ([]byte, error) {
str, err := MessageMarshaler.MarshalToString(this)
return []byte(str), err
}
// UnmarshalJSON is a custom unmarshaler for AnalysisMessageWeakSchema
func (this *AnalysisMessageWeakSchema) UnmarshalJSON(b []byte) error {
return MessageUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
// MarshalJSON is a custom marshaler for AnalysisMessageWeakSchema_ArgType
func (this *AnalysisMessageWeakSchema_ArgType) MarshalJSON() ([]byte, error) {
str, err := MessageMarshaler.MarshalToString(this)
return []byte(str), err
}
// UnmarshalJSON is a custom unmarshaler for AnalysisMessageWeakSchema_ArgType
func (this *AnalysisMessageWeakSchema_ArgType) UnmarshalJSON(b []byte) error {
return MessageUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
// MarshalJSON is a custom marshaler for GenericAnalysisMessage
func (this *GenericAnalysisMessage) MarshalJSON() ([]byte, error) {
str, err := MessageMarshaler.MarshalToString(this)
return []byte(str), err
}
// UnmarshalJSON is a custom unmarshaler for GenericAnalysisMessage
func (this *GenericAnalysisMessage) UnmarshalJSON(b []byte) error {
return MessageUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
// MarshalJSON is a custom marshaler for InternalErrorAnalysisMessage
func (this *InternalErrorAnalysisMessage) MarshalJSON() ([]byte, error) {
str, err := MessageMarshaler.MarshalToString(this)
return []byte(str), err
}
// UnmarshalJSON is a custom unmarshaler for InternalErrorAnalysisMessage
func (this *InternalErrorAnalysisMessage) UnmarshalJSON(b []byte) error {
return MessageUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
var (
MessageMarshaler = &jsonpb.Marshaler{}
MessageUnmarshaler = &jsonpb.Unmarshaler{AllowUnknownFields: true}
)

1005
annotation/annotations.gen.go generated Normal file

File diff suppressed because it is too large Load Diff

1128
annotation/annotations.pb.html generated Normal file

File diff suppressed because it is too large Load Diff

605
annotation/annotations.yaml Normal file
View File

@ -0,0 +1,605 @@
# Copyright 2019 Istio Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
annotations:
- name: prometheus.istio.io/merge-metrics
featureStatus: Alpha
variableName: PrometheusMergeMetrics
description: Specifies if application Prometheus metric will be merged with Envoy metrics
for this workload.
deprecated: false
hidden: false
resources:
- Pod
- name: alpha.istio.io/kubernetes-serviceaccounts
featureStatus: Alpha
variableName: AlphaKubernetesServiceAccounts
description: Specifies the Kubernetes service accounts that are allowed to run this
service on the VMs.
deprecated: true
hidden: true
resources:
- Service
- name: alpha.istio.io/canonical-serviceaccounts
featureStatus: Alpha
variableName: AlphaCanonicalServiceAccounts
description: Specifies the non-Kubernetes service accounts that are allowed to
run this service.
deprecated: true
hidden: true
resources:
- Service
- name: networking.istio.io/exportTo
featureStatus: Alpha
description: Specifies the namespaces to which this service should be exported to.
A value of `*` indicates it is reachable within the mesh. `.` indicates it is
reachable within its namespace. '~' indicates it is hidden and exported to no namespaces. Additionally, a list of comma separated namespace names can be specified.
deprecated: false
hidden: false
resources:
- Service
- name: sidecar.istio.io/inject
featureStatus: Beta
description: Specifies whether or not an Envoy sidecar should be automatically
injected into the workload. This annotation has been deprecated in favor of the
`sidecar.istio.io/inject` label documented [here](/docs/reference/config/labels/#SidecarInject).
deprecated: true
hidden: false
resources:
- Pod
- name: sidecar.istio.io/status
featureStatus: Alpha
description: Generated by Envoy sidecar injection that indicates the status of
the operation. Includes a version hash of the executed template, as well as names of
injected resources.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/rewriteAppHTTPProbers
featureStatus: Alpha
description: Rewrite HTTP readiness and liveness probes to be redirected to
the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/discoveryAddress
featureStatus: Alpha
description: Specifies the XDS discovery address to be used by the Envoy
sidecar.
deprecated: true
hidden: false
resources:
- Pod
- name: sidecar.istio.io/proxyImage
featureStatus: Alpha
description: Specifies the Docker image to be used by the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/proxyImageType
featureStatus: Alpha
description: Specifies the Docker image type to be used by the Envoy sidecar. Istio publishes debug
and distroless image types for every release tag.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/proxyCPU
featureStatus: Alpha
description: Specifies the requested CPU setting for the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/proxyCPULimit
featureStatus: Alpha
description: Specifies the CPU limit for the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/proxyMemory
featureStatus: Alpha
description: Specifies the requested memory setting for the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/proxyMemoryLimit
description: Specifies the memory limit for the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/interceptionMode
featureStatus: Alpha
description: Specifies the mode used to redirect inbound connections to Envoy
(REDIRECT or TPROXY).
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/bootstrapOverride
featureStatus: Alpha
description: Specifies an alternative Envoy bootstrap configuration file.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/statsInclusionPrefixes
featureStatus: Alpha
description: Specifies the comma separated list of prefixes of the stats to be
emitted by Envoy.
deprecated: true
hidden: false
resources:
- Pod
- name: sidecar.istio.io/statsInclusionSuffixes
featureStatus: Alpha
description: Specifies the comma separated list of suffixes of the stats to be
emitted by Envoy.
deprecated: true
hidden: false
resources:
- Pod
- name: sidecar.istio.io/statsInclusionRegexps
featureStatus: Alpha
description: Specifies the comma separated list of regexes the stats should match
to be emitted by Envoy.
deprecated: true
hidden: false
resources:
- Pod
- name: sidecar.istio.io/statsHistogramBuckets
featureStatus: Alpha
description: Specifies the custom histogram buckets with a prefix matcher to separate the Istio mesh metrics from the Envoy stats, e.g. `{"istiocustom":[1,5,10,50,100,500,1000,5000,10000],"cluster.xds-grpc":[1,5,10,25,50,100,250,500,1000,2500,5000,10000]}`. Default buckets are `[0.5,1,5,10,25,50,100,250,500,1000,2500,5000,10000,30000,60000,300000,600000,1800000,3600000]`.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/userVolume
featureStatus: Alpha
description: Specifies one or more user volumes (as a JSON array) to be added to
the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/userVolumeMount
description: Specifies one or more user volume mounts (as a JSON array) to be added
to the Envoy sidecar.
deprecated: false
hidden: false
resources:
- Pod
- name: status.sidecar.istio.io/port
featureStatus: Alpha
description: Specifies the HTTP status Port for the Envoy sidecar. If zero, the
sidecar will not provide status.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/logLevel
featureStatus: Alpha
description: Specifies the log level for Envoy.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/componentLogLevel
featureStatus: Alpha
description: Specifies the component log level for Envoy.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/agentLogLevel
featureStatus: Alpha
description: Specifies the log output level for pilot-agent.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/nativeSidecar
featureStatus: Alpha
description: Specifies if the istio-proxy sidecar should be injected as a
native sidecar or not. Takes precedence over the ENABLE_NATIVE_SIDECARS
environment variable.
deprecated: false
hidden: false
resources:
- Pod
- name: readiness.status.sidecar.istio.io/initialDelaySeconds
featureStatus: Alpha
description: Specifies the initial delay (in seconds) for the Envoy sidecar readiness
probe.
deprecated: false
hidden: false
resources:
- Pod
- name: readiness.status.sidecar.istio.io/periodSeconds
featureStatus: Alpha
description: Specifies the period (in seconds) for the Envoy sidecar readiness probe.
deprecated: false
hidden: false
resources:
- Pod
- name: readiness.status.sidecar.istio.io/failureThreshold
featureStatus: Alpha
description: Specifies the failure threshold for the Envoy sidecar readiness probe.
deprecated: false
hidden: false
resources:
- Pod
- name: readiness.status.sidecar.istio.io/applicationPorts
featureStatus: Alpha
description: Specifies the list of ports exposed by the application container. Used
by the Envoy sidecar readiness probe to determine that Envoy is configured and ready
to receive traffic.
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.istio.io/nodeSelector
featureStatus: Stable
description: This annotation is a set of node-labels (key1=value,key2=value). If the
annotated Service is of type NodePort and is a multi-network gateway (see
topology.istio.io/network), the addresses for selected nodes will be used for
cross-network communication.
deprecated: false
hidden: false
resources:
- Service
- name: traffic.sidecar.istio.io/includeOutboundIPRanges
featureStatus: Alpha
description: A comma separated list of IP ranges in CIDR form to redirect to Envoy
(optional). The wildcard character '*' can be used to redirect all outbound traffic.
An empty list will disable all outbound redirection.
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.sidecar.istio.io/excludeOutboundIPRanges
featureStatus: Alpha
description: A comma separated list of IP ranges in CIDR form to be excluded from
redirection. Only applies when all outbound traffic (i.e. '*') is being redirected.
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.sidecar.istio.io/includeInboundPorts
description: A comma separated list of inbound ports for which traffic is to be
redirected to Envoy. The wildcard character '*' can be used to configure redirection
for all ports. An empty list will disable all inbound redirection.
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.sidecar.istio.io/excludeInboundPorts
featureStatus: Alpha
description: A comma separated list of inbound ports to be excluded from redirection
to Envoy. Only applies when all inbound traffic (i.e. '*') is being redirected.
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.sidecar.istio.io/excludeInterfaces
featureStatus: Alpha
description: A comma separated list of interfaces to be excluded from Istio traffic capture
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.sidecar.istio.io/includeOutboundPorts
featureStatus: Alpha
description: A comma separated list of outbound ports for which traffic is to be
redirected to Envoy, regardless of the destination IP.
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.sidecar.istio.io/excludeOutboundPorts
featureStatus: Alpha
description: A comma separated list of outbound ports to be excluded from redirection
to Envoy.
deprecated: false
hidden: false
resources:
- Pod
- name: traffic.sidecar.istio.io/kubevirtInterfaces
featureStatus: Alpha
description: A comma separated list of virtual interfaces whose inbound traffic
(from VM) will be treated as outbound. Deprecated in favor of `istio.io/redirect-virtual-interfaces`
deprecated: true
hidden: false
resources:
- Pod
- name: kubernetes.io/ingress.class
featureStatus: Stable
description: Annotation on an Ingress resources denoting the class of controllers responsible for it.
deprecated: false
hidden: false
resources:
- Ingress
- name: galley.istio.io/analyze-suppress
featureStatus: Alpha
description: A comma separated list of configuration analysis message codes
to suppress when Istio analyzers are run. For example, to suppress
reporting of IST0103 (PodMissingProxy) and IST0108 (UnknownAnnotation) on
a resource, apply the annotation
'galley.istio.io/analyze-suppress=IST0108,IST0103'. If the value is '*',
then all configuration analysis messages are suppressed.
deprecated: false
hidden: false
resources:
- Any
- name: proxy.istio.io/config
featureStatus: Beta
description: Overrides for the proxy configuration for this specific proxy. Available options
can be found at https://istio.io/docs/reference/config/istio.mesh.v1alpha1/#ProxyConfig.
deprecated: false
hidden: false
resources:
- Pod
- name: istio.io/dry-run
featureStatus: Alpha
description: Specifies whether or not the given resource is in dry-run mode. See
https://istio.io/latest/docs/tasks/security/authorization/authz-dry-run/ for more information.
deprecated: false
hidden: false
resources:
- AuthorizationPolicy
- name: istio.io/rev
featureStatus: Alpha
description: Specifies a control plane revision to which a given proxy is connected.
This annotation is added automatically, not set by a user. In contrary to the label istio.io/rev,
it represents the actual revision, not the requested revision.
deprecated: false
hidden: false
resources:
- Pod
- name: proxy.istio.io/overrides
featureStatus: Alpha
description: Used internally to indicate user-specified overrides in the proxy container of the pod during injection.
deprecated: false
hidden: true
resources:
- Pod
- name: inject.istio.io/templates
featureStatus: Alpha
description: The name of the inject template(s) to use, as a comma separate list. See
https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#custom-templates-experimental for more information.
deprecated: false
hidden: false
resources:
- Pod
- name: sidecar.istio.io/extraStatTags
featureStatus: Alpha
description: An additional list of tags to extract from the in-proxy Istio Wasm telemetry. Each additional tag needs to be present in this list.
deprecated: true
hidden: false
resources:
- Pod
- name: istio.io/autoRegistrationGroup
featureStatus: Alpha
description: On a WorkloadEntry stores the associated WorkloadGroup.
deprecated: false
hidden: true
resources:
- WorkloadEntry
- name: istio.io/workloadController
featureStatus: Alpha
description: On a WorkloadEntry should store the current/last pilot instance connected to the workload for XDS.
deprecated: false
hidden: true
resources:
- WorkloadEntry
- name: istio.io/connectedAt
featureStatus: Alpha
description: On a WorkloadEntry stores the time in nanoseconds when the associated workload connected to a Pilot instance.
deprecated: false
hidden: true
resources:
- WorkloadEntry
- name: istio.io/disconnectedAt
featureStatus: Alpha
description: On a WorkloadEntry stores the time in nanoseconds when the associated workload disconnected from a Pilot instance.
deprecated: false
hidden: true
resources:
- WorkloadEntry
- name: topology.istio.io/controlPlaneClusters
featureStatus: Alpha
description: A comma-separated list of clusters (or * for any) running istiod that should attempt leader election
for a remote cluster thats system namespace includes this annotation. Istiod will not attempt to lead unannotated
remote clusters.
deprecated: false
hidden: false
resources:
- Namespace
- name: gateway.istio.io/controller-version
featureStatus: Alpha
description: A version added to the Gateway by the controller specifying the "controller version".
deprecated: false
hidden: true
resources:
- Any
- name: ambient.istio.io/redirection
featureStatus: Beta
description: |-
Automatically configured by Istio to indicate a Pod was successfully enrolled in ambient mode.
This shows the actual state; to specify intent that a workload should be in ambient mode, see `istio.io/dataplane-mode`.
User should not manually modify this annotation.
deprecated: false
hidden: false
resources:
- Pod
- name: ambient.istio.io/waypoint-inbound-binding
featureStatus: Alpha
description: |
When set on a waypoint (either by its specific `Gateway`, or for the entire collection on the `GatewayClass`),
indicates how traffic should be sent to the waypoint. If unset, traffic will be sent to the waypoint as HBONE directly.
This takes the format: `<protocol>` or `<protocol>/<port>`.
deprecated: false
hidden: true
resources:
- GatewayClass
- Gateway
- name: gateway.istio.io/service-account
featureStatus: Alpha
description: |
Overrides the name of the generated `ServiceAccount` resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment)
deprecated: false
hidden: true
resources:
- Gateway
- name: gateway.istio.io/name-override
featureStatus: Alpha
description: |
Overrides the name of the generated `Deployment` and `Service` resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment)
deprecated: false
hidden: true
resources:
- Gateway
- name: networking.istio.io/service-type
featureStatus: Alpha
description: |
Overrides the type of the generated `Service` resource when using [Gateway auto-deployment](/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment)
deprecated: false
hidden: true
resources:
- Gateway
- name: networking.istio.io/traffic-distribution
featureStatus: Alpha
description: |
Controls how traffic is distributed across the set of available endpoints.
At this time, this annotation only impacts routing done by Ztunnel.
Accepted values:
* `PreferClose`: endpoints will be categorized by how "close" they are, consider network, region, zone, and subzone.
Traffic will be prioritized to the closest healthy endpoints.
For example, if I have a Service with `PreferClose` set, with endpoints in zones `us-west,us-west,us-east`. When
sending traffic from a client in zone `us-west`, all traffic will go to the two `us-west` backends.
If one those backends become unhealthy, all traffic will go to the remaining endpoint in `us-west`.
If that backend becomes unhealthy, traffic will sent to `us-east`.
deprecated: false
hidden: false
resources:
- Service
- ServiceEntry
- name: ambient.istio.io/bypass-inbound-capture
featureStatus: Alpha
description: |
When specified on a `Pod` enrolled in ambient mesh, only outbound traffic will be captured.
This is intended to be used when enrolling a workload that only receives traffic from out-of-the-mesh clients, such as third party ingress controllers.
deprecated: false
hidden: true
resources:
- Pod
- name: istio.io/reroute-virtual-interfaces
featureStatus: Alpha
description: |
A comma separated list of virtual interfaces whose inbound traffic will be unconditionally treated as outbound. This allows workloads using virtualized networking (kubeVirt, VMs, docker-in-docker, etc) to function correctly with mesh traffic capture.
Note: When using docker-in-docker container, the default bridge interface name is typically `docker0`. However, custom networks (often used with docker compose) are assigned a randomized interface name. To have a predictable name, you can configure the Docker option `com.docker.network.bridge.name` with a fixed value and use that name in the annotation.
deprecated: false
hidden: false
resources:
- Pod
- name: ambient.istio.io/dns-capture
featureStatus: Alpha
description: |
When specified on a `Pod` enrolled in ambient mesh, controls whether DNS traffic (TCP and UDP on port 53) will be captured and proxied in ambient.
Note that setting this to `false` will break some Istio features, such as ServiceEntries and egress waypoints, but may be desirable for workloads that interact poorly with DNS proxies.
deprecated: false
hidden: true
resources:
- Pod
- name: sidecar.istio.io/statsCompression
featureStatus: Alpha
description: |
Specifies the compression algorithm to use for stats emitted by the Envoy sidecar.
Supported values are `brotli`, `gzip`, and `zstd`.
deprecated: false
hidden: false
resources:
- Pod

View File

@ -1,636 +0,0 @@
---
title: Authentication Policy
description: Authentication policy for Istio services.
location: https://istio.io/docs/reference/config/istio.authentication.v1alpha1.html
layout: protoc-gen-docs
generator: protoc-gen-docs
number_of_entries: 11
---
<p>This package defines user-facing authentication policy.</p>
<h2 id="Jwt">Jwt</h2>
<section>
<p>JSON Web Token (JWT) token format for authentication as defined by
https://tools.ietf.org/html/rfc7519. See <a href="https://tools.ietf.org/html/rfc6749">OAuth
2.0</a> and <a href="http://openid.net/connect">OIDC
1.0</a> for how this is used in the whole
authentication flow.</p>
<p>For example:</p>
<p>A JWT for any requests:</p>
<pre><code class="language-yaml">issuer: https://example.com
audiences:
- bookstore_android.apps.googleusercontent.com
bookstore_web.apps.googleusercontent.com
jwksUri: https://example.com/.well-known/jwks.json
</code></pre>
<p>A JWT for all requests except request at path <code>/health_check</code> and path with
prefix <code>/status/</code>. This is useful to expose some paths for public access but
keep others JWT validated.</p>
<pre><code class="language-yaml">issuer: https://example.com
jwks_uri: https://example.com/.well-known/jwks.json
trigger_rules:
- excluded_paths:
- exact: /health_check
- prefix: /status/
</code></pre>
<p>A JWT only for requests at path <code>/admin</code>. This is useful to only require JWT
validation on a specific set of paths but keep others public accessible.</p>
<pre><code class="language-yaml">issuer: https://example.com
jwks_uri: https://example.com/.well-known/jwks.json
trigger_rules:
- included_paths:
- prefix: /admin
</code></pre>
<p>A JWT only for requests at path of prefix <code>/status/</code> but except the path of
<code>/status/version</code>. This means for any request path with prefix <code>/status/</code> except
<code>/status/version</code> will require a valid JWT to proceed.</p>
<pre><code class="language-yaml">issuer: https://example.com
jwks_uri: https://example.com/.well-known/jwks.json
trigger_rules:
- excluded_paths:
- exact: /status/version
included_paths:
- prefix: /status/
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Jwt-issuer">
<td><code>issuer</code></td>
<td><code>string</code></td>
<td>
<p>Identifies the issuer that issued the JWT. See
<a href="https://tools.ietf.org/html/rfc7519#section-4.1.1">issuer</a>
Usually a URL or an email address.</p>
<p>Example: https://securetoken.google.com
Example: 1234567-compute@developer.gserviceaccount.com</p>
</td>
</tr>
<tr id="Jwt-audiences">
<td><code>audiences</code></td>
<td><code>string[]</code></td>
<td>
<p>The list of JWT
<a href="https://tools.ietf.org/html/rfc7519#section-4.1.3">audiences</a>.
that are allowed to access. A JWT containing any of these
audiences will be accepted.</p>
<p>The service name will be accepted if audiences is empty.</p>
<p>Example:</p>
<pre><code class="language-yaml">audiences:
- bookstore_android.apps.googleusercontent.com
bookstore_web.apps.googleusercontent.com
</code></pre>
</td>
</tr>
<tr id="Jwt-jwks_uri">
<td><code>jwksUri</code></td>
<td><code>string</code></td>
<td>
<p>URL of the provider&rsquo;s public key set to validate signature of the
JWT. See <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata">OpenID
Discovery</a>.</p>
<p>Optional if the key set document can either (a) be retrieved from
<a href="https://openid.net/specs/openid-connect-discovery-1_0.html">OpenID
Discovery</a> of
the issuer or (b) inferred from the email domain of the issuer (e.g. a
Google service account).</p>
<p>Example: https://www.googleapis.com/oauth2/v1/certs</p>
</td>
</tr>
<tr id="Jwt-jwt_headers">
<td><code>jwtHeaders</code></td>
<td><code>string[]</code></td>
<td>
<p>JWT is sent in a request header. <code>header</code> represents the
header name.</p>
<p>For example, if <code>header=x-goog-iap-jwt-assertion</code>, the header
format will be x-goog-iap-jwt-assertion: <JWT>.</p>
</td>
</tr>
<tr id="Jwt-jwt_params">
<td><code>jwtParams</code></td>
<td><code>string[]</code></td>
<td>
<p>JWT is sent in a query parameter. <code>query</code> represents the
query parameter name.</p>
<p>For example, <code>query=jwt_token</code>.</p>
</td>
</tr>
<tr id="Jwt-trigger_rules">
<td><code>triggerRules</code></td>
<td><code><a href="#Jwt-TriggerRule">Jwt.TriggerRule[]</a></code></td>
<td>
<p>List of trigger rules to decide if this JWT should be used to validate the
request. The JWT validation happens if any one of the rules matched.
If the list is not empty and none of the rules matched, authentication will
skip the JWT validation.
Leave this empty to always trigger the JWT validation.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Jwt-TriggerRule">Jwt.TriggerRule</h2>
<section>
<p>Trigger rule to match against a request. The trigger rule is satisfied if
and only if both rules, excluded<em>paths and include</em>paths are satisfied.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Jwt-TriggerRule-excluded_paths">
<td><code>excludedPaths</code></td>
<td><code><a href="#StringMatch">StringMatch[]</a></code></td>
<td>
<p>List of paths to be excluded from the request. The rule is satisfied if
request path does not match to any of the path in this list.</p>
</td>
</tr>
<tr id="Jwt-TriggerRule-included_paths">
<td><code>includedPaths</code></td>
<td><code><a href="#StringMatch">StringMatch[]</a></code></td>
<td>
<p>List of paths that the request must include. If the list is not empty, the
rule is satisfied if request path matches at least one of the path in the list.
If the list is empty, the rule is ignored, in other words the rule is always satisfied.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="MutualTls">MutualTls</h2>
<section>
<p>TLS authentication params.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MutualTls-allow_tls">
<td><code>allowTls</code></td>
<td><code>bool</code></td>
<td>
<p>WILL BE DEPRECATED, if set, will translates to <code>TLS_PERMISSIVE</code> mode.
Set this flag to true to allow regular TLS (i.e without client x509
certificate). If request carries client certificate, identity will be
extracted and used (set to peer identity). Otherwise, peer identity will
be left unset.
When the flag is false (default), request must have client certificate.</p>
</td>
</tr>
<tr id="MutualTls-mode">
<td><code>mode</code></td>
<td><code><a href="#MutualTls-Mode">MutualTls.Mode</a></code></td>
<td>
<p>Defines the mode of mTLS authentication.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="MutualTls-Mode">MutualTls.Mode</h2>
<section>
<p>Defines the acceptable connection TLS mode.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MutualTls-Mode-STRICT">
<td><code>STRICT</code></td>
<td>
<p>Client cert must be presented, connection is in TLS.</p>
</td>
</tr>
<tr id="MutualTls-Mode-PERMISSIVE">
<td><code>PERMISSIVE</code></td>
<td>
<p>Connection can be either plaintext or TLS, and client cert can be omitted.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="OriginAuthenticationMethod">OriginAuthenticationMethod</h2>
<section>
<p>OriginAuthenticationMethod defines authentication method/params for origin
authentication. Origin could be end-user, device, delegate service etc.
Currently, only JWT is supported for origin authentication.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="OriginAuthenticationMethod-jwt">
<td><code>jwt</code></td>
<td><code><a href="#Jwt">Jwt</a></code></td>
<td>
<p>Jwt params for the method.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="PeerAuthenticationMethod">PeerAuthenticationMethod</h2>
<section>
<p>PeerAuthenticationMethod defines one particular type of authentication, e.g
mutual TLS, JWT etc, (no authentication is one type by itself) that can
be used for peer authentication.
The type can be progammatically determine by checking the type of the
&ldquo;params&rdquo; field.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="PeerAuthenticationMethod-mtls" class="oneof oneof-start">
<td><code>mtls</code></td>
<td><code><a href="#MutualTls">MutualTls (oneof)</a></code></td>
<td>
<p>Set if mTLS is used.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Policy">Policy</h2>
<section>
<p>Policy defines what authentication methods can be accepted on workload(s),
and if authenticated, which method/certificate will set the request principal
(i.e request.auth.principal attribute).</p>
<p>Authentication policy is composed of 2-part authentication:
- peer: verify caller service credentials. This part will set source.user
(peer identity).
- origin: verify the origin credentials. This part will set request.auth.user
(origin identity), as well as other attributes like request.auth.presenter,
request.auth.audiences and raw claims. Note that the identity could be
end-user, service account, device etc.</p>
<p>Last but not least, the principal binding rule defines which identity (peer
or origin) should be used as principal. By default, it uses peer.</p>
<p>Examples:</p>
<p>Policy to enable mTLS for all services in namespace frod</p>
<pre><code class="language-yaml">apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: mTLS_enable
namespace: frod
spec:
peers:
- mtls:
</code></pre>
<p>Policy to disable mTLS for &ldquo;productpage&rdquo; service</p>
<pre><code class="language-yaml">apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: mTLS_disable
namespace: frod
spec:
targets:
- name: productpage
</code></pre>
<p>Policy to require mTLS for peer authentication, and JWT for origin authentication
for productpage:9000 except the path &lsquo;/health_check&rsquo; . Principal is set from origin identity.</p>
<pre><code class="language-yaml">apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: mTLS_enable
namespace: frod
spec:
target:
- name: productpage
ports:
- number: 9000
peers:
- mtls:
origins:
- jwt:
issuer: &quot;https://securetoken.google.com&quot;
audiences:
- &quot;productpage&quot;
jwksUri: &quot;https://www.googleapis.com/oauth2/v1/certs&quot;
jwt_headers:
- &quot;x-goog-iap-jwt-assertion&quot;
trigger_rules:
- excluded_paths:
- exact: /health_check
principalBinding: USE_ORIGIN
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Policy-targets">
<td><code>targets</code></td>
<td><code><a href="#TargetSelector">TargetSelector[]</a></code></td>
<td>
<p>List rules to select workloads that the policy should be applied on.
If empty, policy will be used on all workloads in the same namespace.</p>
</td>
</tr>
<tr id="Policy-peers">
<td><code>peers</code></td>
<td><code><a href="#PeerAuthenticationMethod">PeerAuthenticationMethod[]</a></code></td>
<td>
<p>List of authentication methods that can be used for peer authentication.
They will be evaluated in order; the first validate one will be used to
set peer identity (source.user) and other peer attributes. If none of
these methods pass, request will be rejected with authentication failed error (401).
Leave the list empty if peer authentication is not required</p>
</td>
</tr>
<tr id="Policy-peer_is_optional">
<td><code>peerIsOptional</code></td>
<td><code>bool</code></td>
<td>
<p>Set this flag to true to accept request (for peer authentication perspective),
even when none of the peer authentication methods defined above satisfied.
Typically, this is used to delay the rejection decision to next layer (e.g
authorization).
This flag is ignored if no authentication defined for peer (peers field is empty).</p>
</td>
</tr>
<tr id="Policy-origins">
<td><code>origins</code></td>
<td><code><a href="#OriginAuthenticationMethod">OriginAuthenticationMethod[]</a></code></td>
<td>
<p>List of authentication methods that can be used for origin authentication.
Similar to peers, these will be evaluated in order; the first validate one
will be used to set origin identity and attributes (i.e request.auth.user,
request.auth.issuer etc). If none of these methods pass, request will be
rejected with authentication failed error (401).
A method may be skipped, depends on its trigger rule. If all of these methods
are skipped, origin authentication will be ignored, as if it is not defined.
Leave the list empty if origin authentication is not required.</p>
</td>
</tr>
<tr id="Policy-origin_is_optional">
<td><code>originIsOptional</code></td>
<td><code>bool</code></td>
<td>
<p>Set this flag to true to accept request (for origin authentication perspective),
even when none of the origin authentication methods defined above satisfied.
Typically, this is used to delay the rejection decision to next layer (e.g
authorization).
This flag is ignored if no authentication defined for origin (origins field is empty).</p>
</td>
</tr>
<tr id="Policy-principal_binding">
<td><code>principalBinding</code></td>
<td><code><a href="#PrincipalBinding">PrincipalBinding</a></code></td>
<td>
<p>Define whether peer or origin identity should be use for principal. Default
value is USE_PEER.
If peer (or origin) identity is not available, either because of peer/origin
authentication is not defined, or failed, principal will be left unset.
In other words, binding rule does not affect the decision to accept or
reject request.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="PortSelector">PortSelector</h2>
<section>
<p>PortSelector specifies the name or number of a port to be used for
matching targets for authentication policy. This is copied from
networking API to avoid dependency.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="PortSelector-number" class="oneof oneof-start">
<td><code>number</code></td>
<td><code>uint32 (oneof)</code></td>
<td>
<p>Valid port number</p>
</td>
</tr>
<tr id="PortSelector-name" class="oneof">
<td><code>name</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>Port name</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="PrincipalBinding">PrincipalBinding</h2>
<section>
<p>Associates authentication with request principal.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="PrincipalBinding-USE_PEER">
<td><code>USE_PEER</code></td>
<td>
<p>Principal will be set to the identity from peer authentication.</p>
</td>
</tr>
<tr id="PrincipalBinding-USE_ORIGIN">
<td><code>USE_ORIGIN</code></td>
<td>
<p>Principal will be set to the identity from origin authentication.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="StringMatch">StringMatch</h2>
<section>
<p>Describes how to match a given string. Match is case-sensitive.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="StringMatch-exact" class="oneof oneof-start">
<td><code>exact</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>exact string match.</p>
</td>
</tr>
<tr id="StringMatch-prefix" class="oneof">
<td><code>prefix</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>prefix-based match.</p>
</td>
</tr>
<tr id="StringMatch-suffix" class="oneof">
<td><code>suffix</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>suffix-based match.</p>
</td>
</tr>
<tr id="StringMatch-regex" class="oneof">
<td><code>regex</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>ECMAscript style regex-based match as defined by <a href="http://en.cppreference.com/w/cpp/regex/ecmascript">EDCA-262</a>.
Example: &ldquo;^/pets/(.*?)?&rdquo;</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="TargetSelector">TargetSelector</h2>
<section>
<p>TargetSelector defines a matching rule to a workload. A workload is selected
if it is associated with the service name and service port(s) specified in the selector rule.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="TargetSelector-name">
<td><code>name</code></td>
<td><code>string</code></td>
<td>
<p>REQUIRED. The name must be a short name from the service registry. The
fully qualified domain name will be resolved in a platform specific manner.</p>
</td>
</tr>
<tr id="TargetSelector-ports">
<td><code>ports</code></td>
<td><code><a href="#PortSelector">PortSelector[]</a></code></td>
<td>
<p>Specifies the ports. Note that this is the port(s) exposed by the service, not workload ports.
For example, if a service is defined as below, then <code>8000</code> should be used, not <code>9000</code>.</p>
<pre><code>kind: Service
metadata:
...
spec:
ports:
- name: http
port: 8000
targetPort: 9000
selector:
app: backend
</code></pre>
<p>Leave empty to match all ports that are exposed.</p>
</td>
</tr>
</tbody>
</table>
</section>

File diff suppressed because it is too large Load Diff

View File

@ -1,391 +0,0 @@
// Copyright 2018 Istio Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
// $title: Authentication Policy
// $description: Authentication policy for Istio services.
// $location: https://istio.io/docs/reference/config/istio.authentication.v1alpha1.html
// This package defines user-facing authentication policy.
package istio.authentication.v1alpha1;
option go_package = "istio.io/api/authentication/v1alpha1";
// Describes how to match a given string. Match is case-sensitive.
message StringMatch {
oneof match_type {
// exact string match.
string exact = 1;
// prefix-based match.
string prefix = 2;
// suffix-based match.
string suffix = 3;
// ECMAscript style regex-based match as defined by [EDCA-262](
// http://en.cppreference.com/w/cpp/regex/ecmascript).
// Example: "^/pets/(.*?)?"
string regex = 4;
}
}
// TLS authentication params.
message MutualTls {
// Defines the acceptable connection TLS mode.
enum Mode {
// Client cert must be presented, connection is in TLS.
STRICT = 0;
// Connection can be either plaintext or TLS, and client cert can be omitted.
PERMISSIVE = 1;
};
// WILL BE DEPRECATED, if set, will translates to `TLS_PERMISSIVE` mode.
// Set this flag to true to allow regular TLS (i.e without client x509
// certificate). If request carries client certificate, identity will be
// extracted and used (set to peer identity). Otherwise, peer identity will
// be left unset.
// When the flag is false (default), request must have client certificate.
bool allow_tls = 1;
// Defines the mode of mTLS authentication.
Mode mode = 2;
}
// JSON Web Token (JWT) token format for authentication as defined by
// https://tools.ietf.org/html/rfc7519. See [OAuth
// 2.0](https://tools.ietf.org/html/rfc6749) and [OIDC
// 1.0](http://openid.net/connect) for how this is used in the whole
// authentication flow.
//
// For example:
//
// A JWT for any requests:
//
// ```yaml
// issuer: https://example.com
// audiences:
// - bookstore_android.apps.googleusercontent.com
// bookstore_web.apps.googleusercontent.com
// jwksUri: https://example.com/.well-known/jwks.json
// ```
//
// A JWT for all requests except request at path `/health_check` and path with
// prefix `/status/`. This is useful to expose some paths for public access but
// keep others JWT validated.
//
// ```yaml
// issuer: https://example.com
// jwks_uri: https://example.com/.well-known/jwks.json
// trigger_rules:
// - excluded_paths:
// - exact: /health_check
// - prefix: /status/
// ```
//
// A JWT only for requests at path `/admin`. This is useful to only require JWT
// validation on a specific set of paths but keep others public accessible.
//
// ```yaml
// issuer: https://example.com
// jwks_uri: https://example.com/.well-known/jwks.json
// trigger_rules:
// - included_paths:
// - prefix: /admin
// ```
//
// A JWT only for requests at path of prefix `/status/` but except the path of
// `/status/version`. This means for any request path with prefix `/status/` except
// `/status/version` will require a valid JWT to proceed.
//
// ```yaml
// issuer: https://example.com
// jwks_uri: https://example.com/.well-known/jwks.json
// trigger_rules:
// - excluded_paths:
// - exact: /status/version
// included_paths:
// - prefix: /status/
// ```
message Jwt {
// Identifies the issuer that issued the JWT. See
// [issuer](https://tools.ietf.org/html/rfc7519#section-4.1.1)
// Usually a URL or an email address.
//
// Example: https://securetoken.google.com
// Example: 1234567-compute@developer.gserviceaccount.com
string issuer = 1;
// The list of JWT
// [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
// that are allowed to access. A JWT containing any of these
// audiences will be accepted.
//
// The service name will be accepted if audiences is empty.
//
// Example:
//
// ```yaml
// audiences:
// - bookstore_android.apps.googleusercontent.com
// bookstore_web.apps.googleusercontent.com
// ```
repeated string audiences = 2;
// URL of the provider's public key set to validate signature of the
// JWT. See [OpenID
// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
//
// Optional if the key set document can either (a) be retrieved from
// [OpenID
// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) of
// the issuer or (b) inferred from the email domain of the issuer (e.g. a
// Google service account).
//
// Example: https://www.googleapis.com/oauth2/v1/certs
string jwks_uri = 3;
// Two fields below define where to extract the JWT from an HTTP request.
//
// If no explicit location is specified the following default
// locations are tried in order:
//
// 1) The Authorization header using the Bearer schema,
// e.g. Authorization: Bearer <token>. (see
// [Authorization Request Header
// Field](https://tools.ietf.org/html/rfc6750#section-2.1))
//
// 2) `access_token` query parameter (see
// [URI Query Parameter](https://tools.ietf.org/html/rfc6750#section-2.3))
// JWT is sent in a request header. `header` represents the
// header name.
//
// For example, if `header=x-goog-iap-jwt-assertion`, the header
// format will be x-goog-iap-jwt-assertion: <JWT>.
repeated string jwt_headers = 6;
// JWT is sent in a query parameter. `query` represents the
// query parameter name.
//
// For example, `query=jwt_token`.
repeated string jwt_params = 7;
// Trigger rule to match against a request. The trigger rule is satisfied if
// and only if both rules, excluded_paths and include_paths are satisfied.
message TriggerRule {
// List of paths to be excluded from the request. The rule is satisfied if
// request path does not match to any of the path in this list.
repeated StringMatch excluded_paths = 1;
// List of paths that the request must include. If the list is not empty, the
// rule is satisfied if request path matches at least one of the path in the list.
// If the list is empty, the rule is ignored, in other words the rule is always satisfied.
repeated StringMatch included_paths = 2;
}
// List of trigger rules to decide if this JWT should be used to validate the
// request. The JWT validation happens if any one of the rules matched.
// If the list is not empty and none of the rules matched, authentication will
// skip the JWT validation.
// Leave this empty to always trigger the JWT validation.
repeated TriggerRule trigger_rules = 9;
}
// PeerAuthenticationMethod defines one particular type of authentication, e.g
// mutual TLS, JWT etc, (no authentication is one type by itself) that can
// be used for peer authentication.
// The type can be progammatically determine by checking the type of the
// "params" field.
message PeerAuthenticationMethod {
oneof params {
// Set if mTLS is used.
MutualTls mtls = 1;
// $hide_from_docs
// Set if JWT is used. This option is not yet available.
Jwt jwt = 2;
}
}
// OriginAuthenticationMethod defines authentication method/params for origin
// authentication. Origin could be end-user, device, delegate service etc.
// Currently, only JWT is supported for origin authentication.
message OriginAuthenticationMethod {
// Jwt params for the method.
Jwt jwt = 1;
}
// Associates authentication with request principal.
enum PrincipalBinding {
// Principal will be set to the identity from peer authentication.
USE_PEER = 0;
// Principal will be set to the identity from origin authentication.
USE_ORIGIN = 1;
}
// Policy defines what authentication methods can be accepted on workload(s),
// and if authenticated, which method/certificate will set the request principal
// (i.e request.auth.principal attribute).
//
// Authentication policy is composed of 2-part authentication:
// - peer: verify caller service credentials. This part will set source.user
// (peer identity).
// - origin: verify the origin credentials. This part will set request.auth.user
// (origin identity), as well as other attributes like request.auth.presenter,
// request.auth.audiences and raw claims. Note that the identity could be
// end-user, service account, device etc.
//
// Last but not least, the principal binding rule defines which identity (peer
// or origin) should be used as principal. By default, it uses peer.
//
// Examples:
//
// Policy to enable mTLS for all services in namespace frod
//
// ```yaml
// apiVersion: authentication.istio.io/v1alpha1
// kind: Policy
// metadata:
// name: mTLS_enable
// namespace: frod
// spec:
// peers:
// - mtls:
// ```
// Policy to disable mTLS for "productpage" service
//
// ```yaml
// apiVersion: authentication.istio.io/v1alpha1
// kind: Policy
// metadata:
// name: mTLS_disable
// namespace: frod
// spec:
// targets:
// - name: productpage
// ```
// Policy to require mTLS for peer authentication, and JWT for origin authentication
// for productpage:9000 except the path '/health_check' . Principal is set from origin identity.
//
// ```yaml
// apiVersion: authentication.istio.io/v1alpha1
// kind: Policy
// metadata:
// name: mTLS_enable
// namespace: frod
// spec:
// target:
// - name: productpage
// ports:
// - number: 9000
// peers:
// - mtls:
// origins:
// - jwt:
// issuer: "https://securetoken.google.com"
// audiences:
// - "productpage"
// jwksUri: "https://www.googleapis.com/oauth2/v1/certs"
// jwt_headers:
// - "x-goog-iap-jwt-assertion"
// trigger_rules:
// - excluded_paths:
// - exact: /health_check
// principalBinding: USE_ORIGIN
// ```
message Policy {
// List rules to select workloads that the policy should be applied on.
// If empty, policy will be used on all workloads in the same namespace.
repeated TargetSelector targets = 1;
// List of authentication methods that can be used for peer authentication.
// They will be evaluated in order; the first validate one will be used to
// set peer identity (source.user) and other peer attributes. If none of
// these methods pass, request will be rejected with authentication failed error (401).
// Leave the list empty if peer authentication is not required
repeated PeerAuthenticationMethod peers = 2;
// Set this flag to true to accept request (for peer authentication perspective),
// even when none of the peer authentication methods defined above satisfied.
// Typically, this is used to delay the rejection decision to next layer (e.g
// authorization).
// This flag is ignored if no authentication defined for peer (peers field is empty).
bool peer_is_optional = 3;
// List of authentication methods that can be used for origin authentication.
// Similar to peers, these will be evaluated in order; the first validate one
// will be used to set origin identity and attributes (i.e request.auth.user,
// request.auth.issuer etc). If none of these methods pass, request will be
// rejected with authentication failed error (401).
// A method may be skipped, depends on its trigger rule. If all of these methods
// are skipped, origin authentication will be ignored, as if it is not defined.
// Leave the list empty if origin authentication is not required.
repeated OriginAuthenticationMethod origins = 4;
// Set this flag to true to accept request (for origin authentication perspective),
// even when none of the origin authentication methods defined above satisfied.
// Typically, this is used to delay the rejection decision to next layer (e.g
// authorization).
// This flag is ignored if no authentication defined for origin (origins field is empty).
bool origin_is_optional = 5;
// Define whether peer or origin identity should be use for principal. Default
// value is USE_PEER.
// If peer (or origin) identity is not available, either because of peer/origin
// authentication is not defined, or failed, principal will be left unset.
// In other words, binding rule does not affect the decision to accept or
// reject request.
PrincipalBinding principal_binding = 6;
}
// TargetSelector defines a matching rule to a workload. A workload is selected
// if it is associated with the service name and service port(s) specified in the selector rule.
message TargetSelector {
// REQUIRED. The name must be a short name from the service registry. The
// fully qualified domain name will be resolved in a platform specific manner.
string name = 1;
// Specifies the ports. Note that this is the port(s) exposed by the service, not workload ports.
// For example, if a service is defined as below, then `8000` should be used, not `9000`.
// ```
// kind: Service
// metadata:
// ...
// spec:
// ports:
// - name: http
// port: 8000
// targetPort: 9000
// selector:
// app: backend
// ```
//Leave empty to match all ports that are exposed.
repeated PortSelector ports = 2;
}
// PortSelector specifies the name or number of a port to be used for
// matching targets for authentication policy. This is copied from
// networking API to avoid dependency.
message PortSelector {
oneof port {
// Valid port number
uint32 number = 1;
// Port name
string name = 2;
}
}

8
buf.gen-golang.yaml Normal file
View File

@ -0,0 +1,8 @@
# buf.gen.yaml sets up the generation configuration for all of our plugins.
# Note: buf does not allow multi roots that are within each other; as a result, the common-protos folders are
# symlinked into the top level directory.
version: v1
plugins:
- name: go
out: .
opt: paths=source_relative

14
buf.gen-noncrd.yaml Normal file
View File

@ -0,0 +1,14 @@
version: v1
plugins:
- name: go
out: .
opt: paths=source_relative
- name: go-grpc
out: .
opt: paths=source_relative
- name: docs
out: .
opt: warnings=false,dictionary=./dictionaries/en-US,custom_word_list=./dictionaries/custom.txt,per_file=true,mode=html_fragment_with_front_matter
- name: golang-jsonshim
out: .
opt: paths=source_relative

26
buf.gen.yaml generated Normal file
View File

@ -0,0 +1,26 @@
# buf.gen.yaml sets up the generation configuration for all of our plugins.
# Note: buf does not allow multi roots that are within each other; as a result, the common-protos folders are
# symlinked into the top level directory.
version: v1
plugins:
- name: go
out: .
opt: paths=source_relative
- name: go-grpc
out: .
opt: paths=source_relative
- name: golang-deepcopy
out: .
opt: paths=source_relative
- name: crd
out: .
strategy: all
- name: golang-jsonshim
out: .
opt: paths=source_relative
- name: alias
out: .
opt: paths=source_relative
- name: docs
out: .
opt: warnings=false,dictionary=./dictionaries/en-US,custom_word_list=./dictionaries/custom.txt,per_file=true,mode=html_fragment_with_front_matter

14
buf.yaml Normal file
View File

@ -0,0 +1,14 @@
version: v1
build:
excludes:
- common-protos
breaking:
use:
- WIRE_JSON
lint:
use:
- BASIC
except:
- FIELD_LOWER_SNAKE_CASE
- PACKAGE_DIRECTORY_MATCH
allow_comment_ignores: true

View File

@ -1,27 +1,24 @@
#!/bin/bash
# Copyright 2017 Istio Authors
# Copyright Istio Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eu
########################################
# Postsubmit script triggered by Prow. #
########################################
PATTERNS="_deepcopy.gen.go .gen.json .pb.go .pb.html _json.gen.go customresourcedefinitions.gen.yaml"
shopt -s globstar
# Exit immediately for non zero status
set -e
# Check unset variables
set -u
# Print commands
set -x
for p in $PATTERNS; do
rm -f ./**/*"${p}"
done

View File

@ -0,0 +1 @@
d309fa11788426a813280dc0ab06e160893d0dad

View File

@ -1,4 +1,4 @@
// Copyright 2018 Istio Authors
// Copyright (c) 2015, Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -14,15 +14,18 @@
syntax = "proto3";
package istio.mixer.adapter.model.v1beta1;
package google.api;
option go_package="istio.io/api/mixer/adapter/model/v1beta1";
import "google/api/http.proto";
import "google/protobuf/descriptor.proto";
import "gogoproto/gogo.proto";
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
option java_multiple_files = true;
option java_outer_classname = "AnnotationsProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
option (gogoproto.goproto_getters_all) = false;
option (gogoproto.equal_all) = false;
option (gogoproto.gostring_all) = false;
// Expresses the result of a report call.
message ReportResult {}
extend google.protobuf.MethodOptions {
// See `HttpRule`.
HttpRule http = 72295728;
}

View File

@ -0,0 +1,184 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "AuthProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// `Authentication` defines the authentication configuration for an API.
//
// Example for an API targeted for external use:
//
// name: calendar.googleapis.com
// authentication:
// providers:
// - id: google_calendar_auth
// jwks_uri: https://www.googleapis.com/oauth2/v1/certs
// issuer: https://securetoken.google.com
// rules:
// - selector: "*"
// requirements:
// provider_id: google_calendar_auth
message Authentication {
// A list of authentication rules that apply to individual API methods.
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated AuthenticationRule rules = 3;
// Defines a set of authentication providers that a service supports.
repeated AuthProvider providers = 4;
}
// Authentication rules for the service.
//
// By default, if a method has any authentication requirements, every request
// must include a valid credential matching one of the requirements.
// It's an error to include more than one kind of credential in a single
// request.
//
// If a method doesn't have any auth requirements, request credentials will be
// ignored.
message AuthenticationRule {
// Selects the methods to which this rule applies.
//
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
// The requirements for OAuth credentials.
OAuthRequirements oauth = 2;
// If true, the service accepts API keys without any other credential.
bool allow_without_credential = 5;
// Requirements for additional authentication providers.
repeated AuthRequirement requirements = 7;
}
// Configuration for an authentication provider, including support for
// [JSON Web Token
// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
message AuthProvider {
// The unique identifier of the auth provider. It will be referred to by
// `AuthRequirement.provider_id`.
//
// Example: "bookstore_auth".
string id = 1;
// Identifies the principal that issued the JWT. See
// https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
// Usually a URL or an email address.
//
// Example: https://securetoken.google.com
// Example: 1234567-compute@developer.gserviceaccount.com
string issuer = 2;
// URL of the provider's public key set to validate signature of the JWT. See
// [OpenID
// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
// Optional if the key set document:
// - can be retrieved from
// [OpenID
// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
// the issuer.
// - can be inferred from the email domain of the issuer (e.g. a Google
// service account).
//
// Example: https://www.googleapis.com/oauth2/v1/certs
string jwks_uri = 3;
// The list of JWT
// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
// that are allowed to access. A JWT containing any of these audiences will
// be accepted. When this setting is absent, only JWTs with audience
// "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]"
// will be accepted. For example, if no audiences are in the setting,
// LibraryService API will only accept JWTs with the following audience
// "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
//
// Example:
//
// audiences: bookstore_android.apps.googleusercontent.com,
// bookstore_web.apps.googleusercontent.com
string audiences = 4;
// Redirect URL if JWT token is required but not present or is expired.
// Implement authorizationUrl of securityDefinitions in OpenAPI spec.
string authorization_url = 5;
}
// OAuth scopes are a way to define data and permissions on data. For example,
// there are scopes defined for "Read-only access to Google Calendar" and
// "Access to Cloud Platform". Users can consent to a scope for an application,
// giving it permission to access that data on their behalf.
//
// OAuth scope specifications should be fairly coarse grained; a user will need
// to see and understand the text description of what your scope means.
//
// In most cases: use one or at most two OAuth scopes for an entire family of
// products. If your product has multiple APIs, you should probably be sharing
// the OAuth scope across all of those APIs.
//
// When you need finer grained OAuth consent screens: talk with your product
// management about how developers will use them in practice.
//
// Please note that even though each of the canonical scopes is enough for a
// request to be accepted and passed to the backend, a request can still fail
// due to the backend requiring additional scopes or permissions.
message OAuthRequirements {
// The list of publicly documented OAuth scopes that are allowed access. An
// OAuth token containing any of these scopes will be accepted.
//
// Example:
//
// canonical_scopes: https://www.googleapis.com/auth/calendar,
// https://www.googleapis.com/auth/calendar.read
string canonical_scopes = 1;
}
// User-defined authentication requirements, including support for
// [JSON Web Token
// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
message AuthRequirement {
// [id][google.api.AuthProvider.id] from authentication provider.
//
// Example:
//
// provider_id: bookstore_auth
string provider_id = 1;
// NOTE: This will be deprecated soon, once AuthProvider.audiences is
// implemented and accepted in all the runtime components.
//
// The list of JWT
// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
// that are allowed to access. A JWT containing any of these audiences will
// be accepted. When this setting is absent, only JWTs with audience
// "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]"
// will be accepted. For example, if no audiences are in the setting,
// LibraryService API will only accept JWTs with the following audience
// "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
//
// Example:
//
// audiences: bookstore_android.apps.googleusercontent.com,
// bookstore_web.apps.googleusercontent.com
string audiences = 2;
}

View File

@ -0,0 +1,127 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "BackendProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// `Backend` defines the backend configuration for a service.
message Backend {
// A list of API backend rules that apply to individual API methods.
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated BackendRule rules = 1;
}
// A backend rule provides configuration for an individual API element.
message BackendRule {
// Path Translation specifies how to combine the backend address with the
// request path in order to produce the appropriate forwarding URL for the
// request.
//
// Path Translation is applicable only to HTTP-based backends. Backends which
// do not accept requests over HTTP/HTTPS should leave `path_translation`
// unspecified.
enum PathTranslation {
PATH_TRANSLATION_UNSPECIFIED = 0;
// Use the backend address as-is, with no modification to the path. If the
// URL pattern contains variables, the variable names and values will be
// appended to the query string. If a query string parameter and a URL
// pattern variable have the same name, this may result in duplicate keys in
// the query string.
//
// # Examples
//
// Given the following operation config:
//
// Method path: /api/company/{cid}/user/{uid}
// Backend address: https://example.cloudfunctions.net/getUser
//
// Requests to the following request paths will call the backend at the
// translated path:
//
// Request path: /api/company/widgetworks/user/johndoe
// Translated:
// https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe
//
// Request path: /api/company/widgetworks/user/johndoe?timezone=EST
// Translated:
// https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe
CONSTANT_ADDRESS = 1;
// The request path will be appended to the backend address.
//
// # Examples
//
// Given the following operation config:
//
// Method path: /api/company/{cid}/user/{uid}
// Backend address: https://example.appspot.com
//
// Requests to the following request paths will call the backend at the
// translated path:
//
// Request path: /api/company/widgetworks/user/johndoe
// Translated:
// https://example.appspot.com/api/company/widgetworks/user/johndoe
//
// Request path: /api/company/widgetworks/user/johndoe?timezone=EST
// Translated:
// https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST
APPEND_PATH_TO_ADDRESS = 2;
}
// Selects the methods to which this rule applies.
//
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
// The address of the API backend.
string address = 2;
// The number of seconds to wait for a response from a request. The default
// deadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.
double deadline = 3;
// Minimum deadline in seconds needed for this method. Calls having deadline
// value lower than this will be rejected.
double min_deadline = 4;
// The number of seconds to wait for the completion of a long running
// operation. The default is no deadline.
double operation_deadline = 5;
PathTranslation path_translation = 6;
// Authentication settings used by the backend.
//
// These are typically used to provide service management functionality to
// a backend served on a publicly-routable URL. The `authentication`
// details should match the authentication behavior used by the backend.
//
// For example, specifying `jwt_audience` implies that the backend expects
// authentication via a JWT.
oneof authentication {
// The JWT audience is used when generating a JWT id token for the backend.
string jwt_audience = 7;
}
}

View File

@ -0,0 +1,67 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/api/metric.proto";
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "BillingProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Billing related configuration of the service.
//
// The following example shows how to configure monitored resources and metrics
// for billing:
//
// monitored_resources:
// - type: library.googleapis.com/branch
// labels:
// - key: /city
// description: The city where the library branch is located in.
// - key: /name
// description: The name of the branch.
// metrics:
// - name: library.googleapis.com/book/borrowed_count
// metric_kind: DELTA
// value_type: INT64
// billing:
// consumer_destinations:
// - monitored_resource: library.googleapis.com/branch
// metrics:
// - library.googleapis.com/book/borrowed_count
message Billing {
// Configuration of a specific billing destination (Currently only support
// bill against consumer project).
message BillingDestination {
// The monitored resource type. The type must be defined in
// [Service.monitored_resources][google.api.Service.monitored_resources] section.
string monitored_resource = 1;
// Names of the metrics to report to this billing destination.
// Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
repeated string metrics = 2;
}
// Billing configurations for sending metrics to the consumer project.
// There can be multiple consumer destinations per service, each one must have
// a different monitored resource type. A metric can be used in at most
// one consumer destination.
repeated BillingDestination consumer_destinations = 8;
}

View File

@ -0,0 +1,100 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/protobuf/descriptor.proto";
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
option java_multiple_files = true;
option java_outer_classname = "ClientProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
extend google.protobuf.MethodOptions {
// A definition of a client library method signature.
//
// In client libraries, each proto RPC corresponds to one or more methods
// which the end user is able to call, and calls the underlying RPC.
// Normally, this method receives a single argument (a struct or instance
// corresponding to the RPC request object). Defining this field will
// add one or more overloads providing flattened or simpler method signatures
// in some languages.
//
// The fields on the method signature are provided as a comma-separated
// string.
//
// For example, the proto RPC and annotation:
//
// rpc CreateSubscription(CreateSubscriptionRequest)
// returns (Subscription) {
// option (google.api.method_signature) = "name,topic";
// }
//
// Would add the following Java overload (in addition to the method accepting
// the request object):
//
// public final Subscription createSubscription(String name, String topic)
//
// The following backwards-compatibility guidelines apply:
//
// * Adding this annotation to an unannotated method is backwards
// compatible.
// * Adding this annotation to a method which already has existing
// method signature annotations is backwards compatible if and only if
// the new method signature annotation is last in the sequence.
// * Modifying or removing an existing method signature annotation is
// a breaking change.
// * Re-ordering existing method signature annotations is a breaking
// change.
repeated string method_signature = 1051;
}
extend google.protobuf.ServiceOptions {
// The hostname for this service.
// This should be specified with no prefix or protocol.
//
// Example:
//
// service Foo {
// option (google.api.default_host) = "foo.googleapi.com";
// ...
// }
string default_host = 1049;
// OAuth scopes needed for the client.
//
// Example:
//
// service Foo {
// option (google.api.oauth_scopes) = \
// "https://www.googleapis.com/auth/cloud-platform";
// ...
// }
//
// If there is more than one scope, use a comma-separated string:
//
// Example:
//
// service Foo {
// option (google.api.oauth_scopes) = \
// "https://www.googleapis.com/auth/cloud-platform,"
// "https://www.googleapis.com/auth/monitoring";
// ...
// }
string oauth_scopes = 1050;
}

View File

@ -0,0 +1,85 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/configchange;configchange";
option java_multiple_files = true;
option java_outer_classname = "ConfigChangeProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Output generated from semantically comparing two versions of a service
// configuration.
//
// Includes detailed information about a field that have changed with
// applicable advice about potential consequences for the change, such as
// backwards-incompatibility.
message ConfigChange {
// Object hierarchy path to the change, with levels separated by a '.'
// character. For repeated fields, an applicable unique identifier field is
// used for the index (usually selector, name, or id). For maps, the term
// 'key' is used. If the field has no unique identifier, the numeric index
// is used.
// Examples:
// - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction
// - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
// - logging.producer_destinations[0]
string element = 1;
// Value of the changed object in the old Service configuration,
// in JSON format. This field will not be populated if ChangeType == ADDED.
string old_value = 2;
// Value of the changed object in the new Service configuration,
// in JSON format. This field will not be populated if ChangeType == REMOVED.
string new_value = 3;
// The type for this change, either ADDED, REMOVED, or MODIFIED.
ChangeType change_type = 4;
// Collection of advice provided for this change, useful for determining the
// possible impact of this change.
repeated Advice advices = 5;
}
// Generated advice about this change, used for providing more
// information about how a change will affect the existing service.
message Advice {
// Useful description for why this advice was applied and what actions should
// be taken to mitigate any implied risks.
string description = 2;
}
// Classifies set of possible modifications to an object in the service
// configuration.
enum ChangeType {
// No value was provided.
CHANGE_TYPE_UNSPECIFIED = 0;
// The changed object exists in the 'new' service configuration, but not
// in the 'old' service configuration.
ADDED = 1;
// The changed object exists in the 'old' service configuration, but not
// in the 'new' service configuration.
REMOVED = 2;
// The changed object exists in both service configurations, but its value
// is different.
MODIFIED = 3;
}

View File

@ -0,0 +1,82 @@
// Copyright 2016 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "ConsumerProto";
option java_package = "com.google.api";
// A descriptor for defining project properties for a service. One service may
// have many consumer projects, and the service may want to behave differently
// depending on some properties on the project. For example, a project may be
// associated with a school, or a business, or a government agency, a business
// type property on the project may affect how a service responds to the client.
// This descriptor defines which properties are allowed to be set on a project.
//
// Example:
//
// project_properties:
// properties:
// - name: NO_WATERMARK
// type: BOOL
// description: Allows usage of the API without watermarks.
// - name: EXTENDED_TILE_CACHE_PERIOD
// type: INT64
message ProjectProperties {
// List of per consumer project-specific properties.
repeated Property properties = 1;
}
// Defines project properties.
//
// API services can define properties that can be assigned to consumer projects
// so that backends can perform response customization without having to make
// additional calls or maintain additional storage. For example, Maps API
// defines properties that controls map tile cache period, or whether to embed a
// watermark in a result.
//
// These values can be set via API producer console. Only API providers can
// define and set these properties.
message Property {
// Supported data type of the property values
enum PropertyType {
// The type is unspecified, and will result in an error.
UNSPECIFIED = 0;
// The type is `int64`.
INT64 = 1;
// The type is `bool`.
BOOL = 2;
// The type is `string`.
STRING = 3;
// The type is 'double'.
DOUBLE = 4;
}
// The name of the property (a.k.a key).
string name = 1;
// The type of this property.
PropertyType type = 2;
// The description of the property
string description = 3;
}

View File

@ -0,0 +1,90 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "ContextProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// `Context` defines which contexts an API requests.
//
// Example:
//
// context:
// rules:
// - selector: "*"
// requested:
// - google.rpc.context.ProjectContext
// - google.rpc.context.OriginContext
//
// The above specifies that all methods in the API request
// `google.rpc.context.ProjectContext` and
// `google.rpc.context.OriginContext`.
//
// Available context types are defined in package
// `google.rpc.context`.
//
// This also provides mechanism to whitelist any protobuf message extension that
// can be sent in grpc metadata using x-goog-ext-<extension_id>-bin and
// x-goog-ext-<extension_id>-jspb format. For example, list any service
// specific protobuf types that can appear in grpc metadata as follows in your
// yaml file:
//
// Example:
//
// context:
// rules:
// - selector: "google.example.library.v1.LibraryService.CreateBook"
// allowed_request_extensions:
// - google.foo.v1.NewExtension
// allowed_response_extensions:
// - google.foo.v1.NewExtension
//
// You can also specify extension ID instead of fully qualified extension name
// here.
message Context {
// A list of RPC context rules that apply to individual API methods.
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated ContextRule rules = 1;
}
// A context rule provides information about the context for an individual API
// element.
message ContextRule {
// Selects the methods to which this rule applies.
//
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
// A list of full type names of requested contexts.
repeated string requested = 2;
// A list of full type names of provided contexts.
repeated string provided = 3;
// A list of full type names or extension IDs of extensions allowed in grpc
// side channel from client to backend.
repeated string allowed_request_extensions = 4;
// A list of full type names or extension IDs of extensions allowed in grpc
// side channel from backend to client.
repeated string allowed_response_extensions = 5;
}

View File

@ -0,0 +1,33 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "ControlProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Selects and configures the service controller used by the service. The
// service controller handles features like abuse, quota, billing, logging,
// monitoring, etc.
message Control {
// The service control environment to use. If empty, no control plane
// feature (like quota and billing) will be enabled.
string environment = 1;
}

View File

@ -0,0 +1,212 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/api/distribution;distribution";
option java_multiple_files = true;
option java_outer_classname = "DistributionProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// `Distribution` contains summary statistics for a population of values. It
// optionally contains a histogram representing the distribution of those values
// across a set of buckets.
//
// The summary statistics are the count, mean, sum of the squared deviation from
// the mean, the minimum, and the maximum of the set of population of values.
// The histogram is based on a sequence of buckets and gives a count of values
// that fall into each bucket. The boundaries of the buckets are given either
// explicitly or by formulas for buckets of fixed or exponentially increasing
// widths.
//
// Although it is not forbidden, it is generally a bad idea to include
// non-finite values (infinities or NaNs) in the population of values, as this
// will render the `mean` and `sum_of_squared_deviation` fields meaningless.
message Distribution {
// The range of the population values.
message Range {
// The minimum of the population values.
double min = 1;
// The maximum of the population values.
double max = 2;
}
// `BucketOptions` describes the bucket boundaries used to create a histogram
// for the distribution. The buckets can be in a linear sequence, an
// exponential sequence, or each bucket can be specified explicitly.
// `BucketOptions` does not include the number of values in each bucket.
//
// A bucket has an inclusive lower bound and exclusive upper bound for the
// values that are counted for that bucket. The upper bound of a bucket must
// be strictly greater than the lower bound. The sequence of N buckets for a
// distribution consists of an underflow bucket (number 0), zero or more
// finite buckets (number 1 through N - 2) and an overflow bucket (number N -
// 1). The buckets are contiguous: the lower bound of bucket i (i > 0) is the
// same as the upper bound of bucket i - 1. The buckets span the whole range
// of finite values: lower bound of the underflow bucket is -infinity and the
// upper bound of the overflow bucket is +infinity. The finite buckets are
// so-called because both bounds are finite.
message BucketOptions {
// Specifies a linear sequence of buckets that all have the same width
// (except overflow and underflow). Each bucket represents a constant
// absolute uncertainty on the specific value in the bucket.
//
// There are `num_finite_buckets + 2` (= N) buckets. Bucket `i` has the
// following boundaries:
//
// Upper bound (0 <= i < N-1): offset + (width * i).
// Lower bound (1 <= i < N): offset + (width * (i - 1)).
message Linear {
// Must be greater than 0.
int32 num_finite_buckets = 1;
// Must be greater than 0.
double width = 2;
// Lower bound of the first bucket.
double offset = 3;
}
// Specifies an exponential sequence of buckets that have a width that is
// proportional to the value of the lower bound. Each bucket represents a
// constant relative uncertainty on a specific value in the bucket.
//
// There are `num_finite_buckets + 2` (= N) buckets. Bucket `i` has the
// following boundaries:
//
// Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).
// Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).
message Exponential {
// Must be greater than 0.
int32 num_finite_buckets = 1;
// Must be greater than 1.
double growth_factor = 2;
// Must be greater than 0.
double scale = 3;
}
// Specifies a set of buckets with arbitrary widths.
//
// There are `size(bounds) + 1` (= N) buckets. Bucket `i` has the following
// boundaries:
//
// Upper bound (0 <= i < N-1): bounds[i]
// Lower bound (1 <= i < N); bounds[i - 1]
//
// The `bounds` field must contain at least one element. If `bounds` has
// only one element, then there are no finite buckets, and that single
// element is the common boundary of the overflow and underflow buckets.
message Explicit {
// The values must be monotonically increasing.
repeated double bounds = 1;
}
// Exactly one of these three fields must be set.
oneof options {
// The linear bucket.
Linear linear_buckets = 1;
// The exponential buckets.
Exponential exponential_buckets = 2;
// The explicit buckets.
Explicit explicit_buckets = 3;
}
}
// Exemplars are example points that may be used to annotate aggregated
// distribution values. They are metadata that gives information about a
// particular value added to a Distribution bucket, such as a trace ID that
// was active when a value was added. They may contain further information,
// such as a example values and timestamps, origin, etc.
message Exemplar {
// Value of the exemplar point. This value determines to which bucket the
// exemplar belongs.
double value = 1;
// The observation (sampling) time of the above value.
google.protobuf.Timestamp timestamp = 2;
// Contextual information about the example value. Examples are:
//
// Trace: type.googleapis.com/google.monitoring.v3.SpanContext
//
// Literal string: type.googleapis.com/google.protobuf.StringValue
//
// Labels dropped during aggregation:
// type.googleapis.com/google.monitoring.v3.DroppedLabels
//
// There may be only a single attachment of any given message type in a
// single exemplar, and this is enforced by the system.
repeated google.protobuf.Any attachments = 3;
}
// The number of values in the population. Must be non-negative. This value
// must equal the sum of the values in `bucket_counts` if a histogram is
// provided.
int64 count = 1;
// The arithmetic mean of the values in the population. If `count` is zero
// then this field must be zero.
double mean = 2;
// The sum of squared deviations from the mean of the values in the
// population. For values x_i this is:
//
// Sum[i=1..n]((x_i - mean)^2)
//
// Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition
// describes Welford's method for accumulating this sum in one pass.
//
// If `count` is zero then this field must be zero.
double sum_of_squared_deviation = 3;
// If specified, contains the range of the population values. The field
// must not be present if the `count` is zero.
Range range = 4;
// Defines the histogram bucket boundaries. If the distribution does not
// contain a histogram, then omit this field.
BucketOptions bucket_options = 6;
// The number of values in each bucket of the histogram, as described in
// `bucket_options`. If the distribution does not have a histogram, then omit
// this field. If there is a histogram, then the sum of the values in
// `bucket_counts` must equal the value in the `count` field of the
// distribution.
//
// If present, `bucket_counts` should contain N values, where N is the number
// of buckets specified in `bucket_options`. If you supply fewer than N
// values, the remaining values are assumed to be 0.
//
// The order of the values in `bucket_counts` follows the bucket numbering
// schemes described for the three bucket types. The first value must be the
// count for the underflow bucket (number 0). The next N-2 values are the
// counts for the finite buckets (number 1 through N-2). The N'th value in
// `bucket_counts` is the count for the overflow bucket (number N-1).
repeated int64 bucket_counts = 7;
// Must be in increasing order of `value` field.
repeated Exemplar exemplars = 10;
}

View File

@ -0,0 +1,157 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "DocumentationProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// `Documentation` provides the information for describing a service.
//
// Example:
// <pre><code>documentation:
// summary: >
// The Google Calendar API gives access
// to most calendar features.
// pages:
// - name: Overview
// content: &#40;== include google/foo/overview.md ==&#41;
// - name: Tutorial
// content: &#40;== include google/foo/tutorial.md ==&#41;
// subpages;
// - name: Java
// content: &#40;== include google/foo/tutorial_java.md ==&#41;
// rules:
// - selector: google.calendar.Calendar.Get
// description: >
// ...
// - selector: google.calendar.Calendar.Put
// description: >
// ...
// </code></pre>
// Documentation is provided in markdown syntax. In addition to
// standard markdown features, definition lists, tables and fenced
// code blocks are supported. Section headers can be provided and are
// interpreted relative to the section nesting of the context where
// a documentation fragment is embedded.
//
// Documentation from the IDL is merged with documentation defined
// via the config at normalization time, where documentation provided
// by config rules overrides IDL provided.
//
// A number of constructs specific to the API platform are supported
// in documentation text.
//
// In order to reference a proto element, the following
// notation can be used:
// <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
// To override the display text used for the link, this can be used:
// <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
// Text can be excluded from doc using the following notation:
// <pre><code>&#40;-- internal comment --&#41;</code></pre>
//
// A few directives are available in documentation. Note that
// directives must appear on a single line to be properly
// identified. The `include` directive includes a markdown file from
// an external source:
// <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
// The `resource_for` directive marks a message to be the resource of
// a collection in REST view. If it is not specified, tools attempt
// to infer the resource from the operations in a collection:
// <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
// The directive `suppress_warning` does not directly affect documentation
// and is documented together with service config validation.
message Documentation {
// A short summary of what the service does. Can only be provided by
// plain text.
string summary = 1;
// The top level pages for the documentation set.
repeated Page pages = 5;
// A list of documentation rules that apply to individual API elements.
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated DocumentationRule rules = 3;
// The URL to the root of documentation.
string documentation_root_url = 4;
// Declares a single overview page. For example:
// <pre><code>documentation:
// summary: ...
// overview: &#40;== include overview.md ==&#41;
// </code></pre>
// This is a shortcut for the following declaration (using pages style):
// <pre><code>documentation:
// summary: ...
// pages:
// - name: Overview
// content: &#40;== include overview.md ==&#41;
// </code></pre>
// Note: you cannot specify both `overview` field and `pages` field.
string overview = 2;
}
// A documentation rule provides information about individual API elements.
message DocumentationRule {
// The selector is a comma-separated list of patterns. Each pattern is a
// qualified name of the element which may end in "*", indicating a wildcard.
// Wildcards are only allowed at the end and for a whole component of the
// qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
// wildcard will match one or more components. To specify a default for all
// applicable elements, the whole pattern "*" is used.
string selector = 1;
// Description of the selected API(s).
string description = 2;
// Deprecation description of the selected element(s). It can be provided if
// an element is marked as `deprecated`.
string deprecation_description = 3;
}
// Represents a documentation page. A page can contain subpages to represent
// nested documentation set structure.
message Page {
// The name of the page. It will be used as an identity of the page to
// generate URI of the page, text of the link to this page in navigation,
// etc. The full page name (start from the root page name to this page
// concatenated with `.`) can be used as reference to the page in your
// documentation. For example:
// <pre><code>pages:
// - name: Tutorial
// content: &#40;== include tutorial.md ==&#41;
// subpages:
// - name: Java
// content: &#40;== include tutorial_java.md ==&#41;
// </code></pre>
// You can reference `Java` page using Markdown reference link syntax:
// `[Java][Tutorial.Java]`.
string name = 1;
// The Markdown content of the page. You can use <code>&#40;== include {path}
// ==&#41;</code> to include content from a Markdown file.
string content = 2;
// Subpages of this page. The order of subpages specified here will be
// honored in the generated docset.
repeated Page subpages = 3;
}

View File

@ -0,0 +1,70 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "EndpointProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// `Endpoint` describes a network endpoint that serves a set of APIs.
// A service may expose any number of endpoints, and all endpoints share the
// same service configuration, such as quota configuration and monitoring
// configuration.
//
// Example service configuration:
//
// name: library-example.googleapis.com
// endpoints:
// # Below entry makes 'google.example.library.v1.Library'
// # API be served from endpoint address library-example.googleapis.com.
// # It also allows HTTP OPTIONS calls to be passed to the backend, for
// # it to decide whether the subsequent cross-origin request is
// # allowed to proceed.
// - name: library-example.googleapis.com
// allow_cors: true
message Endpoint {
// The canonical name of this endpoint.
string name = 1;
// DEPRECATED: This field is no longer supported. Instead of using aliases,
// please specify multiple [google.api.Endpoint][google.api.Endpoint] for each of the intended
// aliases.
//
// Additional names that this endpoint will be hosted on.
repeated string aliases = 2 [deprecated = true];
// The list of features enabled on this endpoint.
repeated string features = 4;
// The specification of an Internet routable address of API frontend that will
// handle requests to this [API
// Endpoint](https://cloud.google.com/apis/design/glossary). It should be
// either a valid IPv4 address or a fully-qualified domain name. For example,
// "8.8.8.8" or "myservice.appspot.com".
string target = 101;
// Allowing
// [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
// cross-domain traffic, would allow the backends served from this endpoint to
// receive and respond to HTTP OPTIONS requests. The response will be used by
// the browser to determine whether the subsequent cross-origin request is
// allowed to proceed.
bool allow_cors = 5;
}

View File

@ -0,0 +1,44 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1alpha1;
import "google/api/expr/v1alpha1/conformance_service.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
option java_multiple_files = true;
option java_outer_classname = "CelServiceProto";
option java_package = "com.google.api.expr.v1alpha1";
// Access a CEL implementation from another process or machine.
// A CEL implementation is decomposed as a parser, a static checker,
// and an evaluator. Every CEL implementation is expected to provide
// a server for this API. The API will be used for conformance testing,
// utilities, and execution as a service.
service CelService {
// Transforms CEL source text into a parsed representation.
rpc Parse(ParseRequest) returns (ParseResponse) {}
// Runs static checks on a parsed CEL representation and return
// an annotated representation, or a set of issues.
rpc Check(CheckRequest) returns (CheckResponse) {}
// Evaluates a parsed or annotation CEL representation given
// values of external bindings.
rpc Eval(EvalRequest) returns (EvalResponse) {}
}

View File

@ -0,0 +1,336 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1alpha1;
import "google/api/expr/v1alpha1/syntax.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/struct.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
option java_multiple_files = true;
option java_outer_classname = "DeclProto";
option java_package = "com.google.api.expr.v1alpha1";
// Protos for representing CEL declarations and typed checked expressions.
// A CEL expression which has been successfully type checked.
message CheckedExpr {
// A map from expression ids to resolved references.
//
// The following entries are in this table:
//
// - An Ident or Select expression is represented here if it resolves to a
// declaration. For instance, if `a.b.c` is represented by
// `select(select(id(a), b), c)`, and `a.b` resolves to a declaration,
// while `c` is a field selection, then the reference is attached to the
// nested select expression (but not to the id or or the outer select).
// In turn, if `a` resolves to a declaration and `b.c` are field selections,
// the reference is attached to the ident expression.
// - Every Call expression has an entry here, identifying the function being
// called.
// - Every CreateStruct expression for a message has an entry, identifying
// the message.
map<int64, Reference> reference_map = 2;
// A map from expression ids to types.
//
// Every expression node which has a type different than DYN has a mapping
// here. If an expression has type DYN, it is omitted from this map to save
// space.
map<int64, Type> type_map = 3;
// The source info derived from input that generated the parsed `expr` and
// any optimizations made during the type-checking pass.
SourceInfo source_info = 5;
// The checked expression. Semantically equivalent to the parsed `expr`, but
// may have structural differences.
Expr expr = 4;
}
// Represents a CEL type.
message Type {
// List type with typed elements, e.g. `list<example.proto.MyMessage>`.
message ListType {
// The element type.
Type elem_type = 1;
}
// Map type with parameterized key and value types, e.g. `map<string, int>`.
message MapType {
// The type of the key.
Type key_type = 1;
// The type of the value.
Type value_type = 2;
}
// Function type with result and arg types.
message FunctionType {
// Result type of the function.
Type result_type = 1;
// Argument types of the function.
repeated Type arg_types = 2;
}
// Application defined abstract type.
message AbstractType {
// The fully qualified name of this abstract type.
string name = 1;
// Parameter types for this abstract type.
repeated Type parameter_types = 2;
}
// CEL primitive types.
enum PrimitiveType {
// Unspecified type.
PRIMITIVE_TYPE_UNSPECIFIED = 0;
// Boolean type.
BOOL = 1;
// Int64 type.
//
// Proto-based integer values are widened to int64.
INT64 = 2;
// Uint64 type.
//
// Proto-based unsigned integer values are widened to uint64.
UINT64 = 3;
// Double type.
//
// Proto-based float values are widened to double values.
DOUBLE = 4;
// String type.
STRING = 5;
// Bytes type.
BYTES = 6;
}
// Well-known protobuf types treated with first-class support in CEL.
enum WellKnownType {
// Unspecified type.
WELL_KNOWN_TYPE_UNSPECIFIED = 0;
// Well-known protobuf.Any type.
//
// Any types are a polymorphic message type. During type-checking they are
// treated like `DYN` types, but at runtime they are resolved to a specific
// message type specified at evaluation time.
ANY = 1;
// Well-known protobuf.Timestamp type, internally referenced as `timestamp`.
TIMESTAMP = 2;
// Well-known protobuf.Duration type, internally referenced as `duration`.
DURATION = 3;
}
// The kind of type.
oneof type_kind {
// Dynamic type.
google.protobuf.Empty dyn = 1;
// Null value.
google.protobuf.NullValue null = 2;
// Primitive types: `true`, `1u`, `-2.0`, `'string'`, `b'bytes'`.
PrimitiveType primitive = 3;
// Wrapper of a primitive type, e.g. `google.protobuf.Int64Value`.
PrimitiveType wrapper = 4;
// Well-known protobuf type such as `google.protobuf.Timestamp`.
WellKnownType well_known = 5;
// Parameterized list with elements of `list_type`, e.g. `list<timestamp>`.
ListType list_type = 6;
// Parameterized map with typed keys and values.
MapType map_type = 7;
// Function type.
FunctionType function = 8;
// Protocol buffer message type.
//
// The `message_type` string specifies the qualified message type name. For
// example, `google.plus.Profile`.
string message_type = 9;
// Type param type.
//
// The `type_param` string specifies the type parameter name, e.g. `list<E>`
// would be a `list_type` whose element type was a `type_param` type
// named `E`.
string type_param = 10;
// Type type.
//
// The `type` value specifies the target type. e.g. int is type with a
// target type of `Primitive.INT`.
Type type = 11;
// Error type.
//
// During type-checking if an expression is an error, its type is propagated
// as the `ERROR` type. This permits the type-checker to discover other
// errors present in the expression.
google.protobuf.Empty error = 12;
// Abstract, application defined type.
AbstractType abstract_type = 14;
}
}
// Represents a declaration of a named value or function.
//
// A declaration is part of the contract between the expression, the agent
// evaluating that expression, and the caller requesting evaluation.
message Decl {
// Identifier declaration which specifies its type and optional `Expr` value.
//
// An identifier without a value is a declaration that must be provided at
// evaluation time. An identifier with a value should resolve to a constant,
// but may be used in conjunction with other identifiers bound at evaluation
// time.
message IdentDecl {
// Required. The type of the identifier.
Type type = 1;
// The constant value of the identifier. If not specified, the identifier
// must be supplied at evaluation time.
Constant value = 2;
// Documentation string for the identifier.
string doc = 3;
}
// Function declaration specifies one or more overloads which indicate the
// function's parameter types and return type, and may optionally specify a
// function definition in terms of CEL expressions.
//
// Functions have no observable side-effects (there may be side-effects like
// logging which are not observable from CEL).
message FunctionDecl {
// An overload indicates a function's parameter types and return type, and
// may optionally include a function body described in terms of
// [Expr][google.api.expr.v1alpha1.Expr] values.
//
// Functions overloads are declared in either a function or method
// call-style. For methods, the `params[0]` is the expected type of the
// target receiver.
//
// Overloads must have non-overlapping argument types after erasure of all
// parameterized type variables (similar as type erasure in Java).
message Overload {
// Required. Globally unique overload name of the function which reflects
// the function name and argument types.
//
// This will be used by a [Reference][google.api.expr.v1alpha1.Reference]
// to indicate the `overload_id` that was resolved for the function
// `name`.
string overload_id = 1;
// List of function parameter [Type][google.api.expr.v1alpha1.Type]
// values.
//
// Param types are disjoint after generic type parameters have been
// replaced with the type `DYN`. Since the `DYN` type is compatible with
// any other type, this means that if `A` is a type parameter, the
// function types `int<A>` and `int<int>` are not disjoint. Likewise,
// `map<string, string>` is not disjoint from `map<K, V>`.
//
// When the `result_type` of a function is a generic type param, the
// type param name also appears as the `type` of on at least one params.
repeated Type params = 2;
// The type param names associated with the function declaration.
//
// For example, `function ex<K,V>(K key, map<K, V> map) : V` would yield
// the type params of `K, V`.
repeated string type_params = 3;
// Required. The result type of the function. For example, the operator
// `string.isEmpty()` would have `result_type` of `kind: BOOL`.
Type result_type = 4;
// Whether the function is to be used in a method call-style `x.f(...)`
// of a function call-style `f(x, ...)`.
//
// For methods, the first parameter declaration, `params[0]` is the
// expected type of the target receiver.
bool is_instance_function = 5;
// Documentation string for the overload.
string doc = 6;
}
// Required. List of function overloads, must contain at least one overload.
repeated Overload overloads = 1;
}
// The fully qualified name of the declaration.
//
// Declarations are organized in containers and this represents the full path
// to the declaration in its container, as in `google.api.expr.Decl`.
//
// Declarations used as
// [FunctionDecl.Overload][google.api.expr.v1alpha1.Decl.FunctionDecl.Overload]
// parameters may or may not have a name depending on whether the overload is
// function declaration or a function definition containing a result
// [Expr][google.api.expr.v1alpha1.Expr].
string name = 1;
// Required. The declaration kind.
oneof decl_kind {
// Identifier declaration.
IdentDecl ident = 2;
// Function declaration.
FunctionDecl function = 3;
}
}
// Describes a resolved reference to a declaration.
message Reference {
// The fully qualified name of the declaration.
string name = 1;
// For references to functions, this is a list of `Overload.overload_id`
// values which match according to typing rules.
//
// If the list has more than one element, overload resolution among the
// presented candidates must happen at runtime because of dynamic types. The
// type checker attempts to narrow down this list as much as possible.
//
// Empty if this is not a reference to a
// [Decl.FunctionDecl][google.api.expr.v1alpha1.Decl.FunctionDecl].
repeated string overload_id = 3;
// For references to constants, this may contain the value of the
// constant if known at compile time.
Constant value = 4;
}

View File

@ -0,0 +1,165 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1alpha1;
import "google/api/expr/v1alpha1/checked.proto";
import "google/api/expr/v1alpha1/eval.proto";
import "google/api/expr/v1alpha1/syntax.proto";
import "google/rpc/status.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
option java_multiple_files = true;
option java_outer_classname = "ConformanceServiceProto";
option java_package = "com.google.api.expr.v1alpha1";
// Access a CEL implementation from another process or machine.
// A CEL implementation is decomposed as a parser, a static checker,
// and an evaluator. Every CEL implementation is expected to provide
// a server for this API. The API will be used for conformance testing
// and other utilities.
service ConformanceService {
// Transforms CEL source text into a parsed representation.
rpc Parse(ParseRequest) returns (ParseResponse) {}
// Runs static checks on a parsed CEL representation and return
// an annotated representation, or a set of issues.
rpc Check(CheckRequest) returns (CheckResponse) {}
// Evaluates a parsed or annotation CEL representation given
// values of external bindings.
rpc Eval(EvalRequest) returns (EvalResponse) {}
}
// Request message for the Parse method.
message ParseRequest {
// Required. Source text in CEL syntax.
string cel_source = 1;
// Tag for version of CEL syntax, for future use.
string syntax_version = 2;
// File or resource for source text, used in
// [SourceInfo][google.api.expr.v1alpha1.SourceInfo].
string source_location = 3;
// Prevent macro expansion. See "Macros" in Language Defiinition.
bool disable_macros = 4;
}
// Response message for the Parse method.
message ParseResponse {
// The parsed representation, or unset if parsing failed.
ParsedExpr parsed_expr = 1;
// Any number of issues with [StatusDetails][] as the details.
repeated google.rpc.Status issues = 2;
}
// Request message for the Check method.
message CheckRequest {
// Required. The parsed representation of the CEL program.
ParsedExpr parsed_expr = 1;
// Declarations of types for external variables and functions.
// Required if program uses external variables or functions
// not in the default environment.
repeated Decl type_env = 2;
// The protocol buffer context. See "Name Resolution" in the
// Language Definition.
string container = 3;
// If true, use only the declarations in
// [type_env][google.api.expr.v1alpha1.CheckRequest.type_env]. If false
// (default), add declarations for the standard definitions to the type
// environment. See "Standard Definitions" in the Language Definition.
bool no_std_env = 4;
}
// Response message for the Check method.
message CheckResponse {
// The annotated representation, or unset if checking failed.
CheckedExpr checked_expr = 1;
// Any number of issues with [StatusDetails][] as the details.
repeated google.rpc.Status issues = 2;
}
// Request message for the Eval method.
message EvalRequest {
// Required. Either the parsed or annotated representation of the CEL program.
oneof expr_kind {
// Evaluate based on the parsed representation.
ParsedExpr parsed_expr = 1;
// Evaluate based on the checked representation.
CheckedExpr checked_expr = 2;
}
// Bindings for the external variables. The types SHOULD be compatible
// with the type environment in
// [CheckRequest][google.api.expr.v1alpha1.CheckRequest], if checked.
map<string, ExprValue> bindings = 3;
// SHOULD be the same container as used in
// [CheckRequest][google.api.expr.v1alpha1.CheckRequest], if checked.
string container = 4;
}
// Response message for the Eval method.
message EvalResponse {
// The execution result, or unset if execution couldn't start.
ExprValue result = 1;
// Any number of issues with [StatusDetails][] as the details.
// Note that CEL execution errors are reified into
// [ExprValue][google.api.expr.v1alpha1.ExprValue]. Nevertheless, we'll allow
// out-of-band issues to be raised, which also makes the replies more regular.
repeated google.rpc.Status issues = 2;
}
// Warnings or errors in service execution are represented by
// [google.rpc.Status][google.rpc.Status] messages, with the following message
// in the details field.
message IssueDetails {
// Severities of issues.
enum Severity {
// An unspecified severity.
SEVERITY_UNSPECIFIED = 0;
// Deprecation issue for statements and method that may no longer be
// supported or maintained.
DEPRECATION = 1;
// Warnings such as: unused variables.
WARNING = 2;
// Errors such as: unmatched curly braces or variable redefinition.
ERROR = 3;
}
// The severity of the issue.
Severity severity = 1;
// Position in the source, if known.
SourcePosition position = 2;
// Expression ID from [Expr][google.api.expr.v1alpha1.Expr], 0 if unknown.
int64 id = 3;
}

View File

@ -0,0 +1,119 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1alpha1;
import "google/api/expr/v1alpha1/value.proto";
import "google/rpc/status.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
option java_multiple_files = true;
option java_outer_classname = "EvalProto";
option java_package = "com.google.api.expr.v1alpha1";
// The state of an evaluation.
//
// Can represent an inital, partial, or completed state of evaluation.
message EvalState {
// A single evalution result.
message Result {
// The id of the expression this result if for.
int64 expr = 1;
// The index in `values` of the resulting value.
int64 value = 2;
}
// The unique values referenced in this message.
repeated ExprValue values = 1;
// An ordered list of results.
//
// Tracks the flow of evaluation through the expression.
// May be sparse.
repeated Result results = 3;
}
// The value of an evaluated expression.
message ExprValue {
// An expression can resolve to a value, error or unknown.
oneof kind {
// A concrete value.
Value value = 1;
// The set of errors in the critical path of evalution.
//
// Only errors in the critical path are included. For example,
// `(<error1> || true) && <error2>` will only result in `<error2>`,
// while `<error1> || <error2>` will result in both `<error1>` and
// `<error2>`.
//
// Errors cause by the presence of other errors are not included in the
// set. For example `<error1>.foo`, `foo(<error1>)`, and `<error1> + 1` will
// only result in `<error1>`.
//
// Multiple errors *might* be included when evaluation could result
// in different errors. For example `<error1> + <error2>` and
// `foo(<error1>, <error2>)` may result in `<error1>`, `<error2>` or both.
// The exact subset of errors included for this case is unspecified and
// depends on the implementation details of the evaluator.
ErrorSet error = 2;
// The set of unknowns in the critical path of evaluation.
//
// Unknown behaves identically to Error with regards to propagation.
// Specifically, only unknowns in the critical path are included, unknowns
// caused by the presence of other unknowns are not included, and multiple
// unknowns *might* be included included when evaluation could result in
// different unknowns. For example:
//
// (<unknown[1]> || true) && <unknown[2]> -> <unknown[2]>
// <unknown[1]> || <unknown[2]> -> <unknown[1,2]>
// <unknown[1]>.foo -> <unknown[1]>
// foo(<unknown[1]>) -> <unknown[1]>
// <unknown[1]> + <unknown[2]> -> <unknown[1]> or <unknown[2[>
//
// Unknown takes precidence over Error in cases where a `Value` can short
// circuit the result:
//
// <error> || <unknown> -> <unknown>
// <error> && <unknown> -> <unknown>
//
// Errors take precidence in all other cases:
//
// <unknown> + <error> -> <error>
// foo(<unknown>, <error>) -> <error>
UnknownSet unknown = 3;
}
}
// A set of errors.
//
// The errors included depend on the context. See `ExprValue.error`.
message ErrorSet {
// The errors in the set.
repeated google.rpc.Status errors = 1;
}
// A set of expressions for which the value is unknown.
//
// The unknowns included depend on the context. See `ExprValue.unknown`.
message UnknownSet {
// The ids of the expressions with unknown values.
repeated int64 exprs = 1;
}

View File

@ -0,0 +1,54 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1alpha1;
import "google/api/expr/v1alpha1/value.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
option java_multiple_files = true;
option java_outer_classname = "ExplainProto";
option java_package = "com.google.api.expr.v1alpha1";
// Values of intermediate expressions produced when evaluating expression.
// Deprecated, use `EvalState` instead.
message Explain {
option deprecated = true;
// ID and value index of one step.
message ExprStep {
// ID of corresponding Expr node.
int64 id = 1;
// Index of the value in the values list.
int32 value_index = 2;
}
// All of the observed values.
//
// The field value_index is an index in the values list.
// Separating values from steps is needed to remove redundant values.
repeated Value values = 1;
// List of steps.
//
// Repeated evaluations of the same expression generate new ExprStep
// instances. The order of such ExprStep instances matches the order of
// elements returned by Comprehension.iter_range.
repeated ExprStep expr_steps = 2;
}

View File

@ -0,0 +1,322 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1alpha1;
import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
option java_multiple_files = true;
option java_outer_classname = "SyntaxProto";
option java_package = "com.google.api.expr.v1alpha1";
// A representation of the abstract syntax of the Common Expression Language.
// An expression together with source information as returned by the parser.
message ParsedExpr {
// The parsed expression.
Expr expr = 2;
// The source info derived from input that generated the parsed `expr`.
SourceInfo source_info = 3;
}
// An abstract representation of a common expression.
//
// Expressions are abstractly represented as a collection of identifiers,
// select statements, function calls, literals, and comprehensions. All
// operators with the exception of the '.' operator are modelled as function
// calls. This makes it easy to represent new operators into the existing AST.
//
// All references within expressions must resolve to a
// [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an
// expression to be valid. A reference may either be a bare identifier `name` or
// a qualified identifier `google.api.name`. References may either refer to a
// value or a function declaration.
//
// For example, the expression `google.api.name.startsWith('expr')` references
// the declaration `google.api.name` within a
// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the
// function declaration `startsWith`.
message Expr {
// An identifier expression. e.g. `request`.
message Ident {
// Required. Holds a single, unqualified identifier, possibly preceded by a
// '.'.
//
// Qualified names are represented by the
// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression.
string name = 1;
}
// A field selection expression. e.g. `request.auth`.
message Select {
// Required. The target of the selection expression.
//
// For example, in the select expression `request.auth`, the `request`
// portion of the expression is the `operand`.
Expr operand = 1;
// Required. The name of the field to select.
//
// For example, in the select expression `request.auth`, the `auth` portion
// of the expression would be the `field`.
string field = 2;
// Whether the select is to be interpreted as a field presence test.
//
// This results from the macro `has(request.auth)`.
bool test_only = 3;
}
// A call expression, including calls to predefined functions and operators.
//
// For example, `value == 10`, `size(map_value)`.
message Call {
// The target of an method call-style expression. For example, `x` in
// `x.f()`.
Expr target = 1;
// Required. The name of the function or method being called.
string function = 2;
// The arguments.
repeated Expr args = 3;
}
// A list creation expression.
//
// Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogenous, e.g.
// `dyn([1, 'hello', 2.0])`
message CreateList {
// The elements part of the list.
repeated Expr elements = 1;
}
// A map or message creation expression.
//
// Maps are constructed as `{'key_name': 'value'}`. Message construction is
// similar, but prefixed with a type name and composed of field ids:
// `types.MyType{field_id: 'value'}`.
message CreateStruct {
// Represents an entry.
message Entry {
// Required. An id assigned to this node by the parser which is unique
// in a given expression tree. This is used to associate type
// information and other attributes to the node.
int64 id = 1;
// The `Entry` key kinds.
oneof key_kind {
// The field key for a message creator statement.
string field_key = 2;
// The key expression for a map creation statement.
Expr map_key = 3;
}
// Required. The value assigned to the key.
Expr value = 4;
}
// The type name of the message to be created, empty when creating map
// literals.
string message_name = 1;
// The entries in the creation expression.
repeated Entry entries = 2;
}
// A comprehension expression applied to a list or map.
//
// Comprehensions are not part of the core syntax, but enabled with macros.
// A macro matches a specific call signature within a parsed AST and replaces
// the call with an alternate AST block. Macro expansion happens at parse
// time.
//
// The following macros are supported within CEL:
//
// Aggregate type macros may be applied to all elements in a list or all keys
// in a map:
//
// * `all`, `exists`, `exists_one` - test a predicate expression against
// the inputs and return `true` if the predicate is satisfied for all,
// any, or only one value `list.all(x, x < 10)`.
// * `filter` - test a predicate expression against the inputs and return
// the subset of elements which satisfy the predicate:
// `payments.filter(p, p > 1000)`.
// * `map` - apply an expression to all elements in the input and return the
// output aggregate type: `[1, 2, 3].map(i, i * i)`.
//
// The `has(m.x)` macro tests whether the property `x` is present in struct
// `m`. The semantics of this macro depend on the type of `m`. For proto2
// messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the
// macro tests whether the property is set to its default. For map and struct
// types, the macro tests whether the property `x` is defined on `m`.
message Comprehension {
// The name of the iteration variable.
string iter_var = 1;
// The range over which var iterates.
Expr iter_range = 2;
// The name of the variable used for accumulation of the result.
string accu_var = 3;
// The initial value of the accumulator.
Expr accu_init = 4;
// An expression which can contain iter_var and accu_var.
//
// Returns false when the result has been computed and may be used as
// a hint to short-circuit the remainder of the comprehension.
Expr loop_condition = 5;
// An expression which can contain iter_var and accu_var.
//
// Computes the next value of accu_var.
Expr loop_step = 6;
// An expression which can contain accu_var.
//
// Computes the result.
Expr result = 7;
}
// Required. An id assigned to this node by the parser which is unique in a
// given expression tree. This is used to associate type information and other
// attributes to a node in the parse tree.
int64 id = 2;
// Required. Variants of expressions.
oneof expr_kind {
// A literal expression.
Constant const_expr = 3;
// An identifier expression.
Ident ident_expr = 4;
// A field selection expression, e.g. `request.auth`.
Select select_expr = 5;
// A call expression, including calls to predefined functions and operators.
Call call_expr = 6;
// A list creation expression.
CreateList list_expr = 7;
// A map or message creation expression.
CreateStruct struct_expr = 8;
// A comprehension expression.
Comprehension comprehension_expr = 9;
}
}
// Represents a primitive literal.
//
// Named 'Constant' here for backwards compatibility.
//
// This is similar as the primitives supported in the well-known type
// `google.protobuf.Value`, but richer so it can represent CEL's full range of
// primitives.
//
// Lists and structs are not included as constants as these aggregate types may
// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require
// evaluation and are thus not constant.
//
// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`,
// `true`, `null`.
message Constant {
// Required. The valid constant kinds.
oneof constant_kind {
// null value.
google.protobuf.NullValue null_value = 1;
// boolean value.
bool bool_value = 2;
// int64 value.
int64 int64_value = 3;
// uint64 value.
uint64 uint64_value = 4;
// double value.
double double_value = 5;
// string value.
string string_value = 6;
// bytes value.
bytes bytes_value = 7;
// protobuf.Duration value.
//
// Deprecated: duration is no longer considered a builtin cel type.
google.protobuf.Duration duration_value = 8 [deprecated = true];
// protobuf.Timestamp value.
//
// Deprecated: timestamp is no longer considered a builtin cel type.
google.protobuf.Timestamp timestamp_value = 9 [deprecated = true];
}
}
// Source information collected at parse time.
message SourceInfo {
// The syntax version of the source, e.g. `cel1`.
string syntax_version = 1;
// The location name. All position information attached to an expression is
// relative to this location.
//
// The location could be a file, UI element, or similar. For example,
// `acme/app/AnvilPolicy.cel`.
string location = 2;
// Monotonically increasing list of character offsets where newlines appear.
//
// The line number of a given position is the index `i` where for a given
// `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The
// column may be derivd from `id_positions[id] - line_offsets[i]`.
repeated int32 line_offsets = 3;
// A map from the parse node id (e.g. `Expr.id`) to the character offset
// within source.
map<int64, int32> positions = 4;
}
// A specific position in source.
message SourcePosition {
// The soucre location name (e.g. file name).
string location = 1;
// The character offset.
int32 offset = 2;
// The 1-based index of the starting line in the source text
// where the issue occurs, or 0 if unknown.
int32 line = 3;
// The 0-based index of the starting position within the line of source text
// where the issue occurs. Only meaningful if line is nonzero.
int32 column = 4;
}

View File

@ -0,0 +1,116 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1alpha1;
import "google/protobuf/any.proto";
import "google/protobuf/struct.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
option java_multiple_files = true;
option java_outer_classname = "ValueProto";
option java_package = "com.google.api.expr.v1alpha1";
// Contains representations for CEL runtime values.
// Represents a CEL value.
//
// This is similar to `google.protobuf.Value`, but can represent CEL's full
// range of values.
message Value {
// Required. The valid kinds of values.
oneof kind {
// Null value.
google.protobuf.NullValue null_value = 1;
// Boolean value.
bool bool_value = 2;
// Signed integer value.
int64 int64_value = 3;
// Unsigned integer value.
uint64 uint64_value = 4;
// Floating point value.
double double_value = 5;
// UTF-8 string value.
string string_value = 6;
// Byte string value.
bytes bytes_value = 7;
// An enum value.
EnumValue enum_value = 9;
// The proto message backing an object value.
google.protobuf.Any object_value = 10;
// Map value.
MapValue map_value = 11;
// List value.
ListValue list_value = 12;
// Type value.
string type_value = 15;
}
}
// An enum value.
message EnumValue {
// The fully qualified name of the enum type.
string type = 1;
// The value of the enum.
int32 value = 2;
}
// A list.
//
// Wrapped in a message so 'not set' and empty can be differentiated, which is
// required for use in a 'oneof'.
message ListValue {
// The ordered values in the list.
repeated Value values = 1;
}
// A map.
//
// Wrapped in a message so 'not set' and empty can be differentiated, which is
// required for use in a 'oneof'.
message MapValue {
// An entry in the map.
message Entry {
// The key.
//
// Must be unique with in the map.
// Currently only boolean, int, uint, and string values can be keys.
Value key = 1;
// The value.
Value value = 2;
}
// The set of map entries.
//
// CEL has fewer restrictions on keys, so a protobuf map represenation
// cannot be used.
repeated Entry entries = 1;
}

View File

@ -0,0 +1,84 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1beta1;
import "google/api/expr/v1beta1/expr.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
option java_multiple_files = true;
option java_outer_classname = "DeclProto";
option java_package = "com.google.api.expr.v1beta1";
// A declaration.
message Decl {
// The id of the declaration.
int32 id = 1;
// The name of the declaration.
string name = 2;
// The documentation string for the declaration.
string doc = 3;
// The kind of declaration.
oneof kind {
// An identifier declaration.
IdentDecl ident = 4;
// A function declaration.
FunctionDecl function = 5;
}
}
// The declared type of a variable.
//
// Extends runtime type values with extra information used for type checking
// and dispatching.
message DeclType {
// The expression id of the declared type, if applicable.
int32 id = 1;
// The type name, e.g. 'int', 'my.type.Type' or 'T'
string type = 2;
// An ordered list of type parameters, e.g. `<string, int>`.
// Only applies to a subset of types, e.g. `map`, `list`.
repeated DeclType type_params = 4;
}
// An identifier declaration.
message IdentDecl {
// Optional type of the identifier.
DeclType type = 3;
// Optional value of the identifier.
Expr value = 4;
}
// A function declaration.
message FunctionDecl {
// The function arguments.
repeated IdentDecl args = 1;
// Optional declared return type.
DeclType return_type = 2;
// If the first argument of the function is the receiver.
bool receiver_function = 3;
}

View File

@ -0,0 +1,125 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1beta1;
import "google/api/expr/v1beta1/value.proto";
import "google/rpc/status.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
option java_multiple_files = true;
option java_outer_classname = "EvalProto";
option java_package = "com.google.api.expr.v1beta1";
// The state of an evaluation.
//
// Can represent an initial, partial, or completed state of evaluation.
message EvalState {
// A single evaluation result.
message Result {
// The expression this result is for.
IdRef expr = 1;
// The index in `values` of the resulting value.
int32 value = 2;
}
// The unique values referenced in this message.
repeated ExprValue values = 1;
// An ordered list of results.
//
// Tracks the flow of evaluation through the expression.
// May be sparse.
repeated Result results = 3;
}
// The value of an evaluated expression.
message ExprValue {
// An expression can resolve to a value, error or unknown.
oneof kind {
// A concrete value.
Value value = 1;
// The set of errors in the critical path of evalution.
//
// Only errors in the critical path are included. For example,
// `(<error1> || true) && <error2>` will only result in `<error2>`,
// while `<error1> || <error2>` will result in both `<error1>` and
// `<error2>`.
//
// Errors cause by the presence of other errors are not included in the
// set. For example `<error1>.foo`, `foo(<error1>)`, and `<error1> + 1` will
// only result in `<error1>`.
//
// Multiple errors *might* be included when evaluation could result
// in different errors. For example `<error1> + <error2>` and
// `foo(<error1>, <error2>)` may result in `<error1>`, `<error2>` or both.
// The exact subset of errors included for this case is unspecified and
// depends on the implementation details of the evaluator.
ErrorSet error = 2;
// The set of unknowns in the critical path of evaluation.
//
// Unknown behaves identically to Error with regards to propagation.
// Specifically, only unknowns in the critical path are included, unknowns
// caused by the presence of other unknowns are not included, and multiple
// unknowns *might* be included included when evaluation could result in
// different unknowns. For example:
//
// (<unknown[1]> || true) && <unknown[2]> -> <unknown[2]>
// <unknown[1]> || <unknown[2]> -> <unknown[1,2]>
// <unknown[1]>.foo -> <unknown[1]>
// foo(<unknown[1]>) -> <unknown[1]>
// <unknown[1]> + <unknown[2]> -> <unknown[1]> or <unknown[2[>
//
// Unknown takes precidence over Error in cases where a `Value` can short
// circuit the result:
//
// <error> || <unknown> -> <unknown>
// <error> && <unknown> -> <unknown>
//
// Errors take precidence in all other cases:
//
// <unknown> + <error> -> <error>
// foo(<unknown>, <error>) -> <error>
UnknownSet unknown = 3;
}
}
// A set of errors.
//
// The errors included depend on the context. See `ExprValue.error`.
message ErrorSet {
// The errors in the set.
repeated google.rpc.Status errors = 1;
}
// A set of expressions for which the value is unknown.
//
// The unknowns included depend on the context. See `ExprValue.unknown`.
message UnknownSet {
// The ids of the expressions with unknown values.
repeated IdRef exprs = 1;
}
// A reference to an expression id.
message IdRef {
// The expression id.
int32 id = 1;
}

View File

@ -0,0 +1,269 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1beta1;
import "google/api/expr/v1beta1/source.proto";
import "google/protobuf/struct.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
option java_multiple_files = true;
option java_outer_classname = "ExprProto";
option java_package = "com.google.api.expr.v1beta1";
// An expression together with source information as returned by the parser.
message ParsedExpr {
// The parsed expression.
Expr expr = 2;
// The source info derived from input that generated the parsed `expr`.
SourceInfo source_info = 3;
// The syntax version of the source, e.g. `cel1`.
string syntax_version = 4;
}
// An abstract representation of a common expression.
//
// Expressions are abstractly represented as a collection of identifiers,
// select statements, function calls, literals, and comprehensions. All
// operators with the exception of the '.' operator are modelled as function
// calls. This makes it easy to represent new operators into the existing AST.
//
// All references within expressions must resolve to a
// [Decl][google.api.expr.v1beta1.Decl] provided at type-check for an expression
// to be valid. A reference may either be a bare identifier `name` or a
// qualified identifier `google.api.name`. References may either refer to a
// value or a function declaration.
//
// For example, the expression `google.api.name.startsWith('expr')` references
// the declaration `google.api.name` within a
// [Expr.Select][google.api.expr.v1beta1.Expr.Select] expression, and the
// function declaration `startsWith`.
message Expr {
// An identifier expression. e.g. `request`.
message Ident {
// Required. Holds a single, unqualified identifier, possibly preceded by a
// '.'.
//
// Qualified names are represented by the
// [Expr.Select][google.api.expr.v1beta1.Expr.Select] expression.
string name = 1;
}
// A field selection expression. e.g. `request.auth`.
message Select {
// Required. The target of the selection expression.
//
// For example, in the select expression `request.auth`, the `request`
// portion of the expression is the `operand`.
Expr operand = 1;
// Required. The name of the field to select.
//
// For example, in the select expression `request.auth`, the `auth` portion
// of the expression would be the `field`.
string field = 2;
// Whether the select is to be interpreted as a field presence test.
//
// This results from the macro `has(request.auth)`.
bool test_only = 3;
}
// A call expression, including calls to predefined functions and operators.
//
// For example, `value == 10`, `size(map_value)`.
message Call {
// The target of an method call-style expression. For example, `x` in
// `x.f()`.
Expr target = 1;
// Required. The name of the function or method being called.
string function = 2;
// The arguments.
repeated Expr args = 3;
}
// A list creation expression.
//
// Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogenous, e.g.
// `dyn([1, 'hello', 2.0])`
message CreateList {
// The elements part of the list.
repeated Expr elements = 1;
}
// A map or message creation expression.
//
// Maps are constructed as `{'key_name': 'value'}`. Message construction is
// similar, but prefixed with a type name and composed of field ids:
// `types.MyType{field_id: 'value'}`.
message CreateStruct {
// Represents an entry.
message Entry {
// Required. An id assigned to this node by the parser which is unique
// in a given expression tree. This is used to associate type
// information and other attributes to the node.
int32 id = 1;
// The `Entry` key kinds.
oneof key_kind {
// The field key for a message creator statement.
string field_key = 2;
// The key expression for a map creation statement.
Expr map_key = 3;
}
// Required. The value assigned to the key.
Expr value = 4;
}
// The type name of the message to be created, empty when creating map
// literals.
string type = 1;
// The entries in the creation expression.
repeated Entry entries = 2;
}
// A comprehension expression applied to a list or map.
//
// Comprehensions are not part of the core syntax, but enabled with macros.
// A macro matches a specific call signature within a parsed AST and replaces
// the call with an alternate AST block. Macro expansion happens at parse
// time.
//
// The following macros are supported within CEL:
//
// Aggregate type macros may be applied to all elements in a list or all keys
// in a map:
//
// * `all`, `exists`, `exists_one` - test a predicate expression against
// the inputs and return `true` if the predicate is satisfied for all,
// any, or only one value `list.all(x, x < 10)`.
// * `filter` - test a predicate expression against the inputs and return
// the subset of elements which satisfy the predicate:
// `payments.filter(p, p > 1000)`.
// * `map` - apply an expression to all elements in the input and return the
// output aggregate type: `[1, 2, 3].map(i, i * i)`.
//
// The `has(m.x)` macro tests whether the property `x` is present in struct
// `m`. The semantics of this macro depend on the type of `m`. For proto2
// messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the
// macro tests whether the property is set to its default. For map and struct
// types, the macro tests whether the property `x` is defined on `m`.
message Comprehension {
// The name of the iteration variable.
string iter_var = 1;
// The range over which var iterates.
Expr iter_range = 2;
// The name of the variable used for accumulation of the result.
string accu_var = 3;
// The initial value of the accumulator.
Expr accu_init = 4;
// An expression which can contain iter_var and accu_var.
//
// Returns false when the result has been computed and may be used as
// a hint to short-circuit the remainder of the comprehension.
Expr loop_condition = 5;
// An expression which can contain iter_var and accu_var.
//
// Computes the next value of accu_var.
Expr loop_step = 6;
// An expression which can contain accu_var.
//
// Computes the result.
Expr result = 7;
}
// Required. An id assigned to this node by the parser which is unique in a
// given expression tree. This is used to associate type information and other
// attributes to a node in the parse tree.
int32 id = 2;
// Required. Variants of expressions.
oneof expr_kind {
// A literal expression.
Literal literal_expr = 3;
// An identifier expression.
Ident ident_expr = 4;
// A field selection expression, e.g. `request.auth`.
Select select_expr = 5;
// A call expression, including calls to predefined functions and operators.
Call call_expr = 6;
// A list creation expression.
CreateList list_expr = 7;
// A map or object creation expression.
CreateStruct struct_expr = 8;
// A comprehension expression.
Comprehension comprehension_expr = 9;
}
}
// Represents a primitive literal.
//
// This is similar to the primitives supported in the well-known type
// `google.protobuf.Value`, but richer so it can represent CEL's full range of
// primitives.
//
// Lists and structs are not included as constants as these aggregate types may
// contain [Expr][google.api.expr.v1beta1.Expr] elements which require
// evaluation and are thus not constant.
//
// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`,
// `true`, `null`.
message Literal {
// Required. The valid constant kinds.
oneof constant_kind {
// null value.
google.protobuf.NullValue null_value = 1;
// boolean value.
bool bool_value = 2;
// int64 value.
int64 int64_value = 3;
// uint64 value.
uint64 uint64_value = 4;
// double value.
double double_value = 5;
// string value.
string string_value = 6;
// bytes value.
bytes bytes_value = 7;
}
}

View File

@ -0,0 +1,62 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1beta1;
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
option java_multiple_files = true;
option java_outer_classname = "SourceProto";
option java_package = "com.google.api.expr.v1beta1";
// Source information collected at parse time.
message SourceInfo {
// The location name. All position information attached to an expression is
// relative to this location.
//
// The location could be a file, UI element, or similar. For example,
// `acme/app/AnvilPolicy.cel`.
string location = 2;
// Monotonically increasing list of character offsets where newlines appear.
//
// The line number of a given position is the index `i` where for a given
// `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The
// column may be derivd from `id_positions[id] - line_offsets[i]`.
repeated int32 line_offsets = 3;
// A map from the parse node id (e.g. `Expr.id`) to the character offset
// within source.
map<int32, int32> positions = 4;
}
// A specific position in source.
message SourcePosition {
// The soucre location name (e.g. file name).
string location = 1;
// The character offset.
int32 offset = 2;
// The 1-based index of the starting line in the source text
// where the issue occurs, or 0 if unknown.
int32 line = 3;
// The 0-based index of the starting position within the line of source text
// where the issue occurs. Only meaningful if line is nonzer..
int32 column = 4;
}

View File

@ -0,0 +1,114 @@
// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api.expr.v1beta1;
import "google/protobuf/any.proto";
import "google/protobuf/struct.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
option java_multiple_files = true;
option java_outer_classname = "ValueProto";
option java_package = "com.google.api.expr.v1beta1";
// Represents a CEL value.
//
// This is similar to `google.protobuf.Value`, but can represent CEL's full
// range of values.
message Value {
// Required. The valid kinds of values.
oneof kind {
// Null value.
google.protobuf.NullValue null_value = 1;
// Boolean value.
bool bool_value = 2;
// Signed integer value.
int64 int64_value = 3;
// Unsigned integer value.
uint64 uint64_value = 4;
// Floating point value.
double double_value = 5;
// UTF-8 string value.
string string_value = 6;
// Byte string value.
bytes bytes_value = 7;
// An enum value.
EnumValue enum_value = 9;
// The proto message backing an object value.
google.protobuf.Any object_value = 10;
// Map value.
MapValue map_value = 11;
// List value.
ListValue list_value = 12;
// A Type value represented by the fully qualified name of the type.
string type_value = 15;
}
}
// An enum value.
message EnumValue {
// The fully qualified name of the enum type.
string type = 1;
// The value of the enum.
int32 value = 2;
}
// A list.
//
// Wrapped in a message so 'not set' and empty can be differentiated, which is
// required for use in a 'oneof'.
message ListValue {
// The ordered values in the list.
repeated Value values = 1;
}
// A map.
//
// Wrapped in a message so 'not set' and empty can be differentiated, which is
// required for use in a 'oneof'.
message MapValue {
// An entry in the map.
message Entry {
// The key.
//
// Must be unique with in the map.
// Currently only boolean, int, uint, and string values can be keys.
Value key = 1;
// The value.
Value value = 2;
}
// The set of map entries.
//
// CEL has fewer restrictions on keys, so a protobuf map represenation
// cannot be used.
repeated Entry entries = 1;
}

View File

@ -0,0 +1,79 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/protobuf/descriptor.proto";
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
option java_multiple_files = true;
option java_outer_classname = "FieldBehaviorProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
extend google.protobuf.FieldOptions {
// A designation of a specific field behavior (required, output only, etc.)
// in protobuf messages.
//
// Examples:
//
// string name = 1 [(google.api.field_behavior) = REQUIRED];
// State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// google.protobuf.Duration ttl = 1
// [(google.api.field_behavior) = INPUT_ONLY];
// google.protobuf.Timestamp expire_time = 1
// [(google.api.field_behavior) = OUTPUT_ONLY,
// (google.api.field_behavior) = IMMUTABLE];
repeated google.api.FieldBehavior field_behavior = 1052;
}
// An indicator of the behavior of a given field (for example, that a field
// is required in requests, or given as output but ignored as input).
// This **does not** change the behavior in protocol buffers itself; it only
// denotes the behavior and may affect how API tooling handles the field.
//
// Note: This enum **may** receive new values in the future.
enum FieldBehavior {
// Conventional default for enums. Do not use this.
FIELD_BEHAVIOR_UNSPECIFIED = 0;
// Specifically denotes a field as optional.
// While all fields in protocol buffers are optional, this may be specified
// for emphasis if appropriate.
OPTIONAL = 1;
// Denotes a field as required.
// This indicates that the field **must** be provided as part of the request,
// and failure to do so will cause an error (usually `INVALID_ARGUMENT`).
REQUIRED = 2;
// Denotes a field as output only.
// This indicates that the field is provided in responses, but including the
// field in a request does nothing (the server *must* ignore it and
// *must not* throw an error as a result of the field's presence).
OUTPUT_ONLY = 3;
// Denotes a field as input only.
// This indicates that the field is provided in requests, and the
// corresponding field is not included in output.
INPUT_ONLY = 4;
// Denotes a field as immutable.
// This indicates that the field may be set once in a request to create a
// resource, but may not be changed thereafter.
IMMUTABLE = 5;
}

View File

@ -0,0 +1,376 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
option java_multiple_files = true;
option java_outer_classname = "HttpProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Defines the HTTP configuration for an API service. It contains a list of
// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
// to one or more HTTP REST API methods.
message Http {
// A list of HTTP configuration rules that apply to individual API methods.
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated HttpRule rules = 1;
// When set to true, URL path parameters will be fully URI-decoded except in
// cases of single segment matches in reserved expansion, where "%2F" will be
// left encoded.
//
// The default behavior is to not decode RFC 6570 reserved characters in multi
// segment matches.
bool fully_decode_reserved_expansion = 2;
}
// # gRPC Transcoding
//
// gRPC Transcoding is a feature for mapping between a gRPC method and one or
// more HTTP REST endpoints. It allows developers to build a single API service
// that supports both gRPC APIs and REST APIs. Many systems, including [Google
// APIs](https://github.com/googleapis/googleapis),
// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
// Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
// and use it for large scale production services.
//
// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
// how different portions of the gRPC request message are mapped to the URL
// path, URL query parameters, and HTTP request body. It also controls how the
// gRPC response message is mapped to the HTTP response body. `HttpRule` is
// typically specified as an `google.api.http` annotation on the gRPC method.
//
// Each mapping specifies a URL path template and an HTTP method. The path
// template may refer to one or more fields in the gRPC request message, as long
// as each field is a non-repeated field with a primitive (non-message) type.
// The path template controls how fields of the request message are mapped to
// the URL path.
//
// Example:
//
// service Messaging {
// rpc GetMessage(GetMessageRequest) returns (Message) {
// option (google.api.http) = {
// get: "/v1/{name=messages/*}"
// };
// }
// }
// message GetMessageRequest {
// string name = 1; // Mapped to URL path.
// }
// message Message {
// string text = 1; // The resource content.
// }
//
// This enables an HTTP REST to gRPC mapping as below:
//
// HTTP | gRPC
// -----|-----
// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
//
// Any fields in the request message which are not bound by the path template
// automatically become HTTP query parameters if there is no HTTP request body.
// For example:
//
// service Messaging {
// rpc GetMessage(GetMessageRequest) returns (Message) {
// option (google.api.http) = {
// get:"/v1/messages/{message_id}"
// };
// }
// }
// message GetMessageRequest {
// message SubMessage {
// string subfield = 1;
// }
// string message_id = 1; // Mapped to URL path.
// int64 revision = 2; // Mapped to URL query parameter `revision`.
// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
// }
//
// This enables a HTTP JSON to RPC mapping as below:
//
// HTTP | gRPC
// -----|-----
// `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
// "foo"))`
//
// Note that fields which are mapped to URL query parameters must have a
// primitive type or a repeated primitive type or a non-repeated message type.
// In the case of a repeated type, the parameter can be repeated in the URL
// as `...?param=A&param=B`. In the case of a message type, each field of the
// message is mapped to a separate parameter, such as
// `...?foo.a=A&foo.b=B&foo.c=C`.
//
// For HTTP methods that allow a request body, the `body` field
// specifies the mapping. Consider a REST update method on the
// message resource collection:
//
// service Messaging {
// rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
// option (google.api.http) = {
// patch: "/v1/messages/{message_id}"
// body: "message"
// };
// }
// }
// message UpdateMessageRequest {
// string message_id = 1; // mapped to the URL
// Message message = 2; // mapped to the body
// }
//
// The following HTTP JSON to RPC mapping is enabled, where the
// representation of the JSON in the request body is determined by
// protos JSON encoding:
//
// HTTP | gRPC
// -----|-----
// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
// "123456" message { text: "Hi!" })`
//
// The special name `*` can be used in the body mapping to define that
// every field not bound by the path template should be mapped to the
// request body. This enables the following alternative definition of
// the update method:
//
// service Messaging {
// rpc UpdateMessage(Message) returns (Message) {
// option (google.api.http) = {
// patch: "/v1/messages/{message_id}"
// body: "*"
// };
// }
// }
// message Message {
// string message_id = 1;
// string text = 2;
// }
//
//
// The following HTTP JSON to RPC mapping is enabled:
//
// HTTP | gRPC
// -----|-----
// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
// "123456" text: "Hi!")`
//
// Note that when using `*` in the body mapping, it is not possible to
// have HTTP parameters, as all fields not bound by the path end in
// the body. This makes this option more rarely used in practice when
// defining REST APIs. The common usage of `*` is in custom methods
// which don't use the URL at all for transferring data.
//
// It is possible to define multiple HTTP methods for one RPC by using
// the `additional_bindings` option. Example:
//
// service Messaging {
// rpc GetMessage(GetMessageRequest) returns (Message) {
// option (google.api.http) = {
// get: "/v1/messages/{message_id}"
// additional_bindings {
// get: "/v1/users/{user_id}/messages/{message_id}"
// }
// };
// }
// }
// message GetMessageRequest {
// string message_id = 1;
// string user_id = 2;
// }
//
// This enables the following two alternative HTTP JSON to RPC mappings:
//
// HTTP | gRPC
// -----|-----
// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
// "123456")`
//
// ## Rules for HTTP mapping
//
// 1. Leaf request fields (recursive expansion nested messages in the request
// message) are classified into three categories:
// - Fields referred by the path template. They are passed via the URL path.
// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
// request body.
// - All other fields are passed via the URL query parameters, and the
// parameter name is the field path in the request message. A repeated
// field can be represented as multiple query parameters under the same
// name.
// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
// are passed via URL path and HTTP request body.
// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
// fields are passed via URL path and URL query parameters.
//
// ### Path template syntax
//
// Template = "/" Segments [ Verb ] ;
// Segments = Segment { "/" Segment } ;
// Segment = "*" | "**" | LITERAL | Variable ;
// Variable = "{" FieldPath [ "=" Segments ] "}" ;
// FieldPath = IDENT { "." IDENT } ;
// Verb = ":" LITERAL ;
//
// The syntax `*` matches a single URL path segment. The syntax `**` matches
// zero or more URL path segments, which must be the last part of the URL path
// except the `Verb`.
//
// The syntax `Variable` matches part of the URL path as specified by its
// template. A variable template must not contain other variables. If a variable
// matches a single path segment, its template may be omitted, e.g. `{var}`
// is equivalent to `{var=*}`.
//
// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
// contains any reserved character, such characters should be percent-encoded
// before the matching.
//
// If a variable contains exactly one path segment, such as `"{var}"` or
// `"{var=*}"`, when such a variable is expanded into a URL path on the client
// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
// server side does the reverse decoding. Such variables show up in the
// [Discovery
// Document](https://developers.google.com/discovery/v1/reference/apis) as
// `{var}`.
//
// If a variable contains multiple path segments, such as `"{var=foo/*}"`
// or `"{var=**}"`, when such a variable is expanded into a URL path on the
// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
// The server side does the reverse decoding, except "%2F" and "%2f" are left
// unchanged. Such variables show up in the
// [Discovery
// Document](https://developers.google.com/discovery/v1/reference/apis) as
// `{+var}`.
//
// ## Using gRPC API Service Configuration
//
// gRPC API Service Configuration (service config) is a configuration language
// for configuring a gRPC service to become a user-facing product. The
// service config is simply the YAML representation of the `google.api.Service`
// proto message.
//
// As an alternative to annotating your proto file, you can configure gRPC
// transcoding in your service config YAML files. You do this by specifying a
// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
// effect as the proto annotation. This can be particularly useful if you
// have a proto that is reused in multiple services. Note that any transcoding
// specified in the service config will override any matching transcoding
// configuration in the proto.
//
// Example:
//
// http:
// rules:
// # Selects a gRPC method and applies HttpRule to it.
// - selector: example.v1.Messaging.GetMessage
// get: /v1/messages/{message_id}/{sub.subfield}
//
// ## Special notes
//
// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
// proto to JSON conversion must follow the [proto3
// specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
//
// While the single segment variable follows the semantics of
// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
// Expansion, the multi segment variable **does not** follow RFC 6570 Section
// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
// does not expand special characters like `?` and `#`, which would lead
// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
// for multi segment variables.
//
// The path variables **must not** refer to any repeated or mapped field,
// because client libraries are not capable of handling such variable expansion.
//
// The path variables **must not** capture the leading "/" character. The reason
// is that the most common use case "{var}" does not capture the leading "/"
// character. For consistency, all path variables must share the same behavior.
//
// Repeated message fields must not be mapped to URL query parameters, because
// no client library can support such complicated mapping.
//
// If an API needs to use a JSON array for request or response body, it can map
// the request or response body to a repeated field. However, some gRPC
// Transcoding implementations may not support this feature.
message HttpRule {
// Selects a method to which this rule applies.
//
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
// Determines the URL pattern is matched by this rules. This pattern can be
// used with any of the {get|put|post|delete|patch} methods. A custom method
// can be defined using the 'custom' field.
oneof pattern {
// Maps to HTTP GET. Used for listing and getting information about
// resources.
string get = 2;
// Maps to HTTP PUT. Used for replacing a resource.
string put = 3;
// Maps to HTTP POST. Used for creating a resource or performing an action.
string post = 4;
// Maps to HTTP DELETE. Used for deleting a resource.
string delete = 5;
// Maps to HTTP PATCH. Used for updating a resource.
string patch = 6;
// The custom pattern is used for specifying an HTTP method that is not
// included in the `pattern` field, such as HEAD, or "*" to leave the
// HTTP method unspecified for this rule. The wild-card rule is useful
// for services that provide content to Web (HTML) clients.
CustomHttpPattern custom = 8;
}
// The name of the request field whose value is mapped to the HTTP request
// body, or `*` for mapping all request fields not captured by the path
// pattern to the HTTP body, or omitted for not having any HTTP request body.
//
// NOTE: the referred field must be present at the top-level of the request
// message type.
string body = 7;
// Optional. The name of the response field whose value is mapped to the HTTP
// response body. When omitted, the entire response message will be used
// as the HTTP response body.
//
// NOTE: The referred field must be present at the top-level of the response
// message type.
string response_body = 12;
// Additional HTTP bindings for the selector. Nested bindings must
// not contain an `additional_bindings` field themselves (that is,
// the nesting may only be one level deep).
repeated HttpRule additional_bindings = 11;
}
// A custom pattern is used for defining custom HTTP verb.
message CustomHttpPattern {
// The name of this custom HTTP verb.
string kind = 1;
// The path matched by this custom verb.
string path = 2;
}

View File

@ -0,0 +1,78 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/protobuf/any.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody";
option java_multiple_files = true;
option java_outer_classname = "HttpBodyProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Message that represents an arbitrary HTTP body. It should only be used for
// payload formats that can't be represented as JSON, such as raw binary or
// an HTML page.
//
//
// This message can be used both in streaming and non-streaming API methods in
// the request as well as the response.
//
// It can be used as a top-level request field, which is convenient if one
// wants to extract parameters from either the URL or HTTP template into the
// request fields and also want access to the raw HTTP body.
//
// Example:
//
// message GetResourceRequest {
// // A unique request id.
// string request_id = 1;
//
// // The raw HTTP body is bound to this field.
// google.api.HttpBody http_body = 2;
// }
//
// service ResourceService {
// rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
// rpc UpdateResource(google.api.HttpBody) returns
// (google.protobuf.Empty);
// }
//
// Example with streaming methods:
//
// service CaldavService {
// rpc GetCalendar(stream google.api.HttpBody)
// returns (stream google.api.HttpBody);
// rpc UpdateCalendar(stream google.api.HttpBody)
// returns (stream google.api.HttpBody);
// }
//
// Use of this type only changes how the request and response bodies are
// handled, all other features will continue to work unchanged.
message HttpBody {
// The HTTP Content-Type header value specifying the content type of the body.
string content_type = 1;
// The HTTP request/response body as raw binary.
bytes data = 2;
// Application specific response metadata. Must be set in the first response
// for streaming APIs.
repeated google.protobuf.Any extensions = 3;
}

View File

@ -0,0 +1,49 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/label;label";
option java_multiple_files = true;
option java_outer_classname = "LabelProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// A description of a label.
message LabelDescriptor {
// Value types that can be used as label values.
enum ValueType {
// A variable-length string. This is the default.
STRING = 0;
// Boolean; true or false.
BOOL = 1;
// A 64-bit signed integer.
INT64 = 2;
}
// The label key.
string key = 1;
// The type of data that can be assigned to the label.
ValueType value_type = 2;
// A human-readable description for the label.
string description = 3;
}

View File

@ -0,0 +1,67 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api;api";
option java_multiple_files = true;
option java_outer_classname = "LaunchStageProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// The launch stage as defined by [Google Cloud Platform
// Launch Stages](http://cloud.google.com/terms/launch-stages).
enum LaunchStage {
// Do not use this default value.
LAUNCH_STAGE_UNSPECIFIED = 0;
// Early Access features are limited to a closed group of testers. To use
// these features, you must sign up in advance and sign a Trusted Tester
// agreement (which includes confidentiality provisions). These features may
// be unstable, changed in backward-incompatible ways, and are not
// guaranteed to be released.
EARLY_ACCESS = 1;
// Alpha is a limited availability test for releases before they are cleared
// for widespread use. By Alpha, all significant design issues are resolved
// and we are in the process of verifying functionality. Alpha customers
// need to apply for access, agree to applicable terms, and have their
// projects whitelisted. Alpha releases dont have to be feature complete,
// no SLAs are provided, and there are no technical support obligations, but
// they will be far enough along that customers can actually use them in
// test environments or for limited-use tests -- just like they would in
// normal production cases.
ALPHA = 2;
// Beta is the point at which we are ready to open a release for any
// customer to use. There are no SLA or technical support obligations in a
// Beta release. Products will be complete from a feature perspective, but
// may have some open outstanding issues. Beta releases are suitable for
// limited production use cases.
BETA = 3;
// GA features are open to all developers and are considered stable and
// fully qualified for production use.
GA = 4;
// Deprecated features are scheduled to be shut down and removed. For more
// information, see the Deprecation Policy section of our [Terms of
// Service](https://cloud.google.com/terms/)
// and the [Google Cloud Platform Subject to the Deprecation
// Policy](https://cloud.google.com/terms/deprecation) documentation.
DEPRECATED = 5;
}

View File

@ -0,0 +1,55 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/api/label.proto";
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "LogProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// A description of a log type. Example in YAML format:
//
// - name: library.googleapis.com/activity_history
// description: The history of borrowing and returning library items.
// display_name: Activity
// labels:
// - key: /customer_id
// description: Identifier of a library customer
message LogDescriptor {
// The name of the log. It must be less than 512 characters long and can
// include the following characters: upper- and lower-case alphanumeric
// characters [A-Za-z0-9], and punctuation characters including
// slash, underscore, hyphen, period [/_-.].
string name = 1;
// The set of labels that are available to describe a specific log entry.
// Runtime requests that contain labels not specified here are
// considered invalid.
repeated LabelDescriptor labels = 2;
// A human-readable description of this log. This information appears in
// the documentation and can contain details.
string description = 3;
// The human-readable name for this log. This information appears on
// the user interface and should be concise.
string display_name = 4;
}

View File

@ -0,0 +1,81 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "LoggingProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Logging configuration of the service.
//
// The following example shows how to configure logs to be sent to the
// producer and consumer projects. In the example, the `activity_history`
// log is sent to both the producer and consumer projects, whereas the
// `purchase_history` log is only sent to the producer project.
//
// monitored_resources:
// - type: library.googleapis.com/branch
// labels:
// - key: /city
// description: The city where the library branch is located in.
// - key: /name
// description: The name of the branch.
// logs:
// - name: activity_history
// labels:
// - key: /customer_id
// - name: purchase_history
// logging:
// producer_destinations:
// - monitored_resource: library.googleapis.com/branch
// logs:
// - activity_history
// - purchase_history
// consumer_destinations:
// - monitored_resource: library.googleapis.com/branch
// logs:
// - activity_history
message Logging {
// Configuration of a specific logging destination (the producer project
// or the consumer project).
message LoggingDestination {
// The monitored resource type. The type must be defined in the
// [Service.monitored_resources][google.api.Service.monitored_resources] section.
string monitored_resource = 3;
// Names of the logs to be sent to this destination. Each name must
// be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
// not a domain scoped name, it will be automatically prefixed with
// the service name followed by "/".
repeated string logs = 1;
}
// Logging configurations for sending logs to the producer project.
// There can be multiple producer destinations, each one must have a
// different monitored resource type. A log can be used in at most
// one producer destination.
repeated LoggingDestination producer_destinations = 1;
// Logging configurations for sending logs to the consumer project.
// There can be multiple consumer destinations, each one must have a
// different monitored resource type. A log can be used in at most
// one consumer destination.
repeated LoggingDestination consumer_destinations = 2;
}

View File

@ -0,0 +1,219 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/api/label.proto";
import "google/api/launch_stage.proto";
import "google/protobuf/duration.proto";
option go_package = "google.golang.org/genproto/googleapis/api/metric;metric";
option java_multiple_files = true;
option java_outer_classname = "MetricProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Defines a metric type and its schema. Once a metric descriptor is created,
// deleting or altering it stops data collection and makes the metric type's
// existing data unusable.
message MetricDescriptor {
// Additional annotations that can be used to guide the usage of a metric.
message MetricDescriptorMetadata {
// Deprecated. Please use the MetricDescriptor.launch_stage instead.
// The launch stage of the metric definition.
LaunchStage launch_stage = 1 [deprecated = true];
// The sampling period of metric data points. For metrics which are written
// periodically, consecutive data points are stored at this time interval,
// excluding data loss due to errors. Metrics with a higher granularity have
// a smaller sampling period.
google.protobuf.Duration sample_period = 2;
// The delay of data points caused by ingestion. Data points older than this
// age are guaranteed to be ingested and available to be read, excluding
// data loss due to errors.
google.protobuf.Duration ingest_delay = 3;
}
// The kind of measurement. It describes how the data is reported.
enum MetricKind {
// Do not use this default value.
METRIC_KIND_UNSPECIFIED = 0;
// An instantaneous measurement of a value.
GAUGE = 1;
// The change in a value during a time interval.
DELTA = 2;
// A value accumulated over a time interval. Cumulative
// measurements in a time series should have the same start time
// and increasing end times, until an event resets the cumulative
// value to zero and sets a new start time for the following
// points.
CUMULATIVE = 3;
}
// The value type of a metric.
enum ValueType {
// Do not use this default value.
VALUE_TYPE_UNSPECIFIED = 0;
// The value is a boolean.
// This value type can be used only if the metric kind is `GAUGE`.
BOOL = 1;
// The value is a signed 64-bit integer.
INT64 = 2;
// The value is a double precision floating point number.
DOUBLE = 3;
// The value is a text string.
// This value type can be used only if the metric kind is `GAUGE`.
STRING = 4;
// The value is a [`Distribution`][google.api.Distribution].
DISTRIBUTION = 5;
// The value is money.
MONEY = 6;
}
// The resource name of the metric descriptor.
string name = 1;
// The metric type, including its DNS name prefix. The type is not
// URL-encoded. All user-defined metric types have the DNS name
// `custom.googleapis.com` or `external.googleapis.com`. Metric types should
// use a natural hierarchical grouping. For example:
//
// "custom.googleapis.com/invoice/paid/amount"
// "external.googleapis.com/prometheus/up"
// "appengine.googleapis.com/http/server/response_latencies"
string type = 8;
// The set of labels that can be used to describe a specific
// instance of this metric type. For example, the
// `appengine.googleapis.com/http/server/response_latencies` metric
// type has a label for the HTTP response code, `response_code`, so
// you can look at latencies for successful responses or just
// for responses that failed.
repeated LabelDescriptor labels = 2;
// Whether the metric records instantaneous values, changes to a value, etc.
// Some combinations of `metric_kind` and `value_type` might not be supported.
MetricKind metric_kind = 3;
// Whether the measurement is an integer, a floating-point number, etc.
// Some combinations of `metric_kind` and `value_type` might not be supported.
ValueType value_type = 4;
// The unit in which the metric value is reported. It is only applicable
// if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
// supported units are a subset of [The Unified Code for Units of
// Measure](http://unitsofmeasure.org/ucum.html) standard:
//
// **Basic units (UNIT)**
//
// * `bit` bit
// * `By` byte
// * `s` second
// * `min` minute
// * `h` hour
// * `d` day
//
// **Prefixes (PREFIX)**
//
// * `k` kilo (10**3)
// * `M` mega (10**6)
// * `G` giga (10**9)
// * `T` tera (10**12)
// * `P` peta (10**15)
// * `E` exa (10**18)
// * `Z` zetta (10**21)
// * `Y` yotta (10**24)
// * `m` milli (10**-3)
// * `u` micro (10**-6)
// * `n` nano (10**-9)
// * `p` pico (10**-12)
// * `f` femto (10**-15)
// * `a` atto (10**-18)
// * `z` zepto (10**-21)
// * `y` yocto (10**-24)
// * `Ki` kibi (2**10)
// * `Mi` mebi (2**20)
// * `Gi` gibi (2**30)
// * `Ti` tebi (2**40)
//
// **Grammar**
//
// The grammar also includes these connectors:
//
// * `/` division (as an infix operator, e.g. `1/s`).
// * `.` multiplication (as an infix operator, e.g. `GBy.d`)
//
// The grammar for a unit is as follows:
//
// Expression = Component { "." Component } { "/" Component } ;
//
// Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
// | Annotation
// | "1"
// ;
//
// Annotation = "{" NAME "}" ;
//
// Notes:
//
// * `Annotation` is just a comment if it follows a `UNIT` and is
// equivalent to `1` if it is used alone. For examples,
// `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
// * `NAME` is a sequence of non-blank printable ASCII characters not
// containing '{' or '}'.
// * `1` represents dimensionless value 1, such as in `1/s`.
// * `%` represents dimensionless value 1/100, and annotates values giving
// a percentage.
string unit = 5;
// A detailed description of the metric, which can be used in documentation.
string description = 6;
// A concise name for the metric, which can be displayed in user interfaces.
// Use sentence case without an ending period, for example "Request count".
// This field is optional but it is recommended to be set for any metrics
// associated with user-visible concepts, such as Quota.
string display_name = 7;
// Optional. Metadata which can be used to guide usage of the metric.
MetricDescriptorMetadata metadata = 10;
// Optional. The launch stage of the metric definition.
LaunchStage launch_stage = 12;
}
// A specific metric, identified by specifying values for all of the
// labels of a [`MetricDescriptor`][google.api.MetricDescriptor].
message Metric {
// An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
// For example, `custom.googleapis.com/invoice/paid/amount`.
string type = 3;
// The set of label values that uniquely identify this metric. All
// labels listed in the `MetricDescriptor` must be assigned values.
map<string, string> labels = 2;
}

View File

@ -0,0 +1,119 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/api/label.proto";
import "google/api/launch_stage.proto";
import "google/protobuf/struct.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/monitoredres;monitoredres";
option java_multiple_files = true;
option java_outer_classname = "MonitoredResourceProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// An object that describes the schema of a [MonitoredResource][google.api.MonitoredResource] object using a
// type name and a set of labels. For example, the monitored resource
// descriptor for Google Compute Engine VM instances has a type of
// `"gce_instance"` and specifies the use of the labels `"instance_id"` and
// `"zone"` to identify particular VM instances.
//
// Different APIs can support different monitored resource types. APIs generally
// provide a `list` method that returns the monitored resource descriptors used
// by the API.
message MonitoredResourceDescriptor {
// Optional. The resource name of the monitored resource descriptor:
// `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
// {type} is the value of the `type` field in this object and
// {project_id} is a project ID that provides API-specific context for
// accessing the type. APIs that do not use project information can use the
// resource name format `"monitoredResourceDescriptors/{type}"`.
string name = 5;
// Required. The monitored resource type. For example, the type
// `"cloudsql_database"` represents databases in Google Cloud SQL.
// The maximum length of this value is 256 characters.
string type = 1;
// Optional. A concise name for the monitored resource type that might be
// displayed in user interfaces. It should be a Title Cased Noun Phrase,
// without any article or other determiners. For example,
// `"Google Cloud SQL Database"`.
string display_name = 2;
// Optional. A detailed description of the monitored resource type that might
// be used in documentation.
string description = 3;
// Required. A set of labels used to describe instances of this monitored
// resource type. For example, an individual Google Cloud SQL database is
// identified by values for the labels `"database_id"` and `"zone"`.
repeated LabelDescriptor labels = 4;
// Optional. The launch stage of the monitored resource definition.
LaunchStage launch_stage = 7;
}
// An object representing a resource that can be used for monitoring, logging,
// billing, or other purposes. Examples include virtual machine instances,
// databases, and storage devices such as disks. The `type` field identifies a
// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object that describes the resource's
// schema. Information in the `labels` field identifies the actual resource and
// its attributes according to the schema. For example, a particular Compute
// Engine VM instance could be represented by the following object, because the
// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for `"gce_instance"` has labels
// `"instance_id"` and `"zone"`:
//
// { "type": "gce_instance",
// "labels": { "instance_id": "12345678901234",
// "zone": "us-central1-a" }}
message MonitoredResource {
// Required. The monitored resource type. This field must match
// the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
// example, the type of a Compute Engine VM instance is `gce_instance`.
string type = 1;
// Required. Values for all of the labels listed in the associated monitored
// resource descriptor. For example, Compute Engine VM instances use the
// labels `"project_id"`, `"instance_id"`, and `"zone"`.
map<string, string> labels = 2;
}
// Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource] object.
// [MonitoredResource][google.api.MonitoredResource] objects contain the minimum set of information to
// uniquely identify a monitored resource instance. There is some other useful
// auxiliary metadata. Monitoring and Logging use an ingestion
// pipeline to extract metadata for cloud resources of all types, and store
// the metadata in this message.
message MonitoredResourceMetadata {
// Output only. Values for predefined system metadata labels.
// System labels are a kind of metadata extracted by Google, including
// "machine_image", "vpc", "subnet_id",
// "security_group", "name", etc.
// System label values can be only strings, Boolean values, or a list of
// strings. For example:
//
// { "name": "my-test-instance",
// "security_group": ["a", "b", "c"],
// "spot_instance": false }
google.protobuf.Struct system_labels = 1;
// Output only. A map of user-defined metadata labels.
map<string, string> user_labels = 2;
}

View File

@ -0,0 +1,91 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "MonitoringProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Monitoring configuration of the service.
//
// The example below shows how to configure monitored resources and metrics
// for monitoring. In the example, a monitored resource and two metrics are
// defined. The `library.googleapis.com/book/returned_count` metric is sent
// to both producer and consumer projects, whereas the
// `library.googleapis.com/book/overdue_count` metric is only sent to the
// consumer project.
//
// monitored_resources:
// - type: library.googleapis.com/branch
// labels:
// - key: /city
// description: The city where the library branch is located in.
// - key: /name
// description: The name of the branch.
// metrics:
// - name: library.googleapis.com/book/returned_count
// metric_kind: DELTA
// value_type: INT64
// labels:
// - key: /customer_id
// - name: library.googleapis.com/book/overdue_count
// metric_kind: GAUGE
// value_type: INT64
// labels:
// - key: /customer_id
// monitoring:
// producer_destinations:
// - monitored_resource: library.googleapis.com/branch
// metrics:
// - library.googleapis.com/book/returned_count
// consumer_destinations:
// - monitored_resource: library.googleapis.com/branch
// metrics:
// - library.googleapis.com/book/returned_count
// - library.googleapis.com/book/overdue_count
message Monitoring {
// Configuration of a specific monitoring destination (the producer project
// or the consumer project).
message MonitoringDestination {
// The monitored resource type. The type must be defined in
// [Service.monitored_resources][google.api.Service.monitored_resources] section.
string monitored_resource = 1;
// Types of the metrics to report to this monitoring destination.
// Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
repeated string metrics = 2;
}
// Monitoring configurations for sending metrics to the producer project.
// There can be multiple producer destinations. A monitored resouce type may
// appear in multiple monitoring destinations if different aggregations are
// needed for different sets of metrics associated with that monitored
// resource type. A monitored resource and metric pair may only be used once
// in the Monitoring configuration.
repeated MonitoringDestination producer_destinations = 1;
// Monitoring configurations for sending metrics to the consumer project.
// There can be multiple consumer destinations. A monitored resouce type may
// appear in multiple monitoring destinations if different aggregations are
// needed for different sets of metrics associated with that monitored
// resource type. A monitored resource and metric pair may only be used once
// in the Monitoring configuration.
repeated MonitoringDestination consumer_destinations = 2;
}

View File

@ -0,0 +1,187 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "QuotaProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Quota configuration helps to achieve fairness and budgeting in service
// usage.
//
// The metric based quota configuration works this way:
// - The service configuration defines a set of metrics.
// - For API calls, the quota.metric_rules maps methods to metrics with
// corresponding costs.
// - The quota.limits defines limits on the metrics, which will be used for
// quota checks at runtime.
//
// An example quota configuration in yaml format:
//
// quota:
// limits:
//
// - name: apiWriteQpsPerProject
// metric: library.googleapis.com/write_calls
// unit: "1/min/{project}" # rate limit for consumer projects
// values:
// STANDARD: 10000
//
//
// # The metric rules bind all methods to the read_calls metric,
// # except for the UpdateBook and DeleteBook methods. These two methods
// # are mapped to the write_calls metric, with the UpdateBook method
// # consuming at twice rate as the DeleteBook method.
// metric_rules:
// - selector: "*"
// metric_costs:
// library.googleapis.com/read_calls: 1
// - selector: google.example.library.v1.LibraryService.UpdateBook
// metric_costs:
// library.googleapis.com/write_calls: 2
// - selector: google.example.library.v1.LibraryService.DeleteBook
// metric_costs:
// library.googleapis.com/write_calls: 1
//
// Corresponding Metric definition:
//
// metrics:
// - name: library.googleapis.com/read_calls
// display_name: Read requests
// metric_kind: DELTA
// value_type: INT64
//
// - name: library.googleapis.com/write_calls
// display_name: Write requests
// metric_kind: DELTA
// value_type: INT64
//
//
message Quota {
// List of `QuotaLimit` definitions for the service.
repeated QuotaLimit limits = 3;
// List of `MetricRule` definitions, each one mapping a selected method to one
// or more metrics.
repeated MetricRule metric_rules = 4;
}
// Bind API methods to metrics. Binding a method to a metric causes that
// metric's configured quota behaviors to apply to the method call.
message MetricRule {
// Selects the methods to which this rule applies.
//
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
// Metrics to update when the selected methods are called, and the associated
// cost applied to each metric.
//
// The key of the map is the metric name, and the values are the amount
// increased for the metric against which the quota limits are defined.
// The value must not be negative.
map<string, int64> metric_costs = 2;
}
// `QuotaLimit` defines a specific limit that applies over a specified duration
// for a limit type. There can be at most one limit for a duration and limit
// type combination defined within a `QuotaGroup`.
message QuotaLimit {
// Name of the quota limit.
//
// The name must be provided, and it must be unique within the service. The
// name can only include alphanumeric characters as well as '-'.
//
// The maximum length of the limit name is 64 characters.
string name = 6;
// Optional. User-visible, extended description for this quota limit.
// Should be used only when more context is needed to understand this limit
// than provided by the limit's display name (see: `display_name`).
string description = 2;
// Default number of tokens that can be consumed during the specified
// duration. This is the number of tokens assigned when a client
// application developer activates the service for his/her project.
//
// Specifying a value of 0 will block all requests. This can be used if you
// are provisioning quota to selected consumers and blocking others.
// Similarly, a value of -1 will indicate an unlimited quota. No other
// negative values are allowed.
//
// Used by group-based quotas only.
int64 default_limit = 3;
// Maximum number of tokens that can be consumed during the specified
// duration. Client application developers can override the default limit up
// to this maximum. If specified, this value cannot be set to a value less
// than the default limit. If not specified, it is set to the default limit.
//
// To allow clients to apply overrides with no upper bound, set this to -1,
// indicating unlimited maximum quota.
//
// Used by group-based quotas only.
int64 max_limit = 4;
// Free tier value displayed in the Developers Console for this limit.
// The free tier is the number of tokens that will be subtracted from the
// billed amount when billing is enabled.
// This field can only be set on a limit with duration "1d", in a billable
// group; it is invalid on any other limit. If this field is not set, it
// defaults to 0, indicating that there is no free tier for this service.
//
// Used by group-based quotas only.
int64 free_tier = 7;
// Duration of this limit in textual notation. Example: "100s", "24h", "1d".
// For duration longer than a day, only multiple of days is supported. We
// support only "100s" and "1d" for now. Additional support will be added in
// the future. "0" indicates indefinite duration.
//
// Used by group-based quotas only.
string duration = 5;
// The name of the metric this quota limit applies to. The quota limits with
// the same metric will be checked together during runtime. The metric must be
// defined within the service config.
string metric = 8;
// Specify the unit of the quota limit. It uses the same syntax as
// [Metric.unit][]. The supported unit kinds are determined by the quota
// backend system.
//
// Here are some examples:
// * "1/min/{project}" for quota per minute per project.
//
// Note: the order of unit components is insignificant.
// The "1" at the beginning is required to follow the metric unit syntax.
string unit = 9;
// Tiered limit values. You must specify this as a key:value pair, with an
// integer value that is the maximum number of requests allowed for the
// specified unit. Currently only STANDARD is supported.
map<string, int64> values = 10;
// User-visible display name for this limit.
// Optional. If not set, the UI will provide a default display name based on
// the quota configuration. This field can be used to override the default
// display name generated from the configuration.
string display_name = 12;
}

View File

@ -0,0 +1,175 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/protobuf/descriptor.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
option java_multiple_files = true;
option java_outer_classname = "ResourceProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
extend google.protobuf.FieldOptions {
// An annotation that describes a resource reference.
//
// Example:
//
// message Subscription {
// string topic = 2 [(google.api.resource_reference) = {
// type: "pubsub.googleapis.com/Topic"
// }];
// }
google.api.ResourceReference resource_reference = 1055;
}
extend google.protobuf.MessageOptions {
// An annotation that describes a resource definition.
//
// Example:
//
// message Topic {
// option (google.api.resource) = {
// type: "pubsub.googleapis.com/Topic"
// pattern: "projects/{project}/topics/{topic}"
// };
// }
google.api.ResourceDescriptor resource = 1053;
}
// A simple descriptor of a resource type.
//
// ResourceDescriptor annotates a resource message (either by means of a
// protobuf annotation or use in the service config), and associates the
// resource's schema, the resource type, and the pattern of the resource name.
//
// Example:
//
// message Topic {
// // Indicates this message defines a resource schema.
// // Declares the resource type in the format of {service}/{kind}.
// // For Kubernetes resources, the format is {api group}/{kind}.
// option (google.api.resource) = {
// type: "pubsub.googleapis.com/Topic"
// pattern: "projects/{project}/topics/{topic}"
// };
// }
//
// Sometimes, resources have multiple patterns, typically because they can
// live under multiple parents.
//
// Example:
//
// message LogEntry {
// option (google.api.resource) = {
// type: "logging.googleapis.com/LogEntry"
// pattern: "projects/{project}/logs/{log}"
// pattern: "organizations/{organization}/logs/{log}"
// pattern: "folders/{folder}/logs/{log}"
// pattern: "billingAccounts/{billing_account}/logs/{log}"
// };
// }
message ResourceDescriptor {
// A description of the historical or future-looking state of the
// resource pattern.
enum History {
// The "unset" value.
HISTORY_UNSPECIFIED = 0;
// The resource originally had one pattern and launched as such, and
// additional patterns were added later.
ORIGINALLY_SINGLE_PATTERN = 1;
// The resource has one pattern, but the API owner expects to add more
// later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents
// that from being necessary once there are multiple patterns.)
FUTURE_MULTI_PATTERN = 2;
}
// The resource type. It must be in the format of
// {service_name}/{resource_type_kind}. The `resource_type_kind` must be
// singular and must not include version numbers.
//
// Example: `storage.googleapis.com/Bucket`
//
// The value of the resource_type_kind must follow the regular expression
// /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and
// should use PascalCase (UpperCamelCase). The maximum number of
// characters allowed for the `resource_type_kind` is 100.
string type = 1;
// Optional. The valid resource name pattern(s) for this resource type.
//
// Examples:
// - "projects/{project}/topics/{topic}"
// - "projects/{project}/knowledgeBases/{knowledge_base}"
//
// The components in braces correspond to the IDs for each resource in the
// hierarchy. It is expected that, if multiple patterns are provided,
// the same component name (e.g. "project") refers to IDs of the same
// type of resource.
repeated string pattern = 2;
// Optional. The field on the resource that designates the resource name
// field. If omitted, this is assumed to be "name".
string name_field = 3;
// Optional. The historical or future-looking state of the resource pattern.
//
// Example:
// // The InspectTemplate message originally only supported resource
// // names with organization, and project was added later.
// message InspectTemplate {
// option (google.api.resource) = {
// type: "dlp.googleapis.com/InspectTemplate"
// pattern:
// "organizations/{organization}/inspectTemplates/{inspect_template}"
// pattern: "projects/{project}/inspectTemplates/{inspect_template}"
// history: ORIGINALLY_SINGLE_PATTERN
// };
// }
History history = 4;
}
// Defines a proto annotation that describes a field that refers to a resource.
message ResourceReference {
// The resource type that the annotated field references.
//
// Example:
//
// message Subscription {
// string topic = 2 [(google.api.resource_reference) = {
// type = "pubsub.googleapis.com/Topic"
// }];
// }
string type = 1;
// The resource type of a child collection that the annotated field
// references. This is useful for `parent` fields where a resource has more
// than one possible type of parent.
//
// Example:
//
// message ListLogEntriesRequest {
// string parent = 1 [(google.api.resource_reference) = {
// child_type: "logging.googleapis.com/LogEntry"
// };
// }
string child_type = 2;
}

View File

@ -0,0 +1,176 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/api/auth.proto";
import "google/api/backend.proto";
import "google/api/billing.proto";
import "google/api/context.proto";
import "google/api/control.proto";
import "google/api/documentation.proto";
import "google/api/endpoint.proto";
import "google/api/http.proto";
import "google/api/label.proto";
import "google/api/log.proto";
import "google/api/logging.proto";
import "google/api/metric.proto";
import "google/api/monitored_resource.proto";
import "google/api/monitoring.proto";
import "google/api/quota.proto";
import "google/api/resource.proto";
import "google/api/source_info.proto";
import "google/api/system_parameter.proto";
import "google/api/usage.proto";
import "google/protobuf/any.proto";
import "google/protobuf/api.proto";
import "google/protobuf/type.proto";
import "google/protobuf/wrappers.proto";
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "ServiceProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// `Service` is the root object of Google service configuration schema. It
// describes basic information about a service, such as the name and the
// title, and delegates other aspects to sub-sections. Each sub-section is
// either a proto message or a repeated proto message that configures a
// specific aspect, such as auth. See each proto message definition for details.
//
// Example:
//
// type: google.api.Service
// config_version: 3
// name: calendar.googleapis.com
// title: Google Calendar API
// apis:
// - name: google.calendar.v3.Calendar
// authentication:
// providers:
// - id: google_calendar_auth
// jwks_uri: https://www.googleapis.com/oauth2/v1/certs
// issuer: https://securetoken.google.com
// rules:
// - selector: "*"
// requirements:
// provider_id: google_calendar_auth
message Service {
// The semantic version of the service configuration. The config version
// affects the interpretation of the service configuration. For example,
// certain features are enabled by default for certain config versions.
// The latest config version is `3`.
google.protobuf.UInt32Value config_version = 20;
// The service name, which is a DNS-like logical identifier for the
// service, such as `calendar.googleapis.com`. The service name
// typically goes through DNS verification to make sure the owner
// of the service also owns the DNS name.
string name = 1;
// A unique ID for a specific instance of this message, typically assigned
// by the client for tracking purpose. If empty, the server may choose to
// generate one instead. Must be no longer than 60 characters.
string id = 33;
// The product title for this service.
string title = 2;
// The Google project that owns this service.
string producer_project_id = 22;
// A list of API interfaces exported by this service. Only the `name` field
// of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
// author, as the remaining fields will be derived from the IDL during the
// normalization process. It is an error to specify an API interface here
// which cannot be resolved against the associated IDL files.
repeated google.protobuf.Api apis = 3;
// A list of all proto message types included in this API service.
// Types referenced directly or indirectly by the `apis` are
// automatically included. Messages which are not referenced but
// shall be included, such as types used by the `google.protobuf.Any` type,
// should be listed here by name. Example:
//
// types:
// - name: google.protobuf.Int32
repeated google.protobuf.Type types = 4;
// A list of all enum types included in this API service. Enums
// referenced directly or indirectly by the `apis` are automatically
// included. Enums which are not referenced but shall be included
// should be listed here by name. Example:
//
// enums:
// - name: google.someapi.v1.SomeEnum
repeated google.protobuf.Enum enums = 5;
// Additional API documentation.
Documentation documentation = 6;
// API backend configuration.
Backend backend = 8;
// HTTP configuration.
Http http = 9;
// Quota configuration.
Quota quota = 10;
// Auth configuration.
Authentication authentication = 11;
// Context configuration.
Context context = 12;
// Configuration controlling usage of this service.
Usage usage = 15;
// Configuration for network endpoints. If this is empty, then an endpoint
// with the same name as the service is automatically generated to service all
// defined APIs.
repeated Endpoint endpoints = 18;
// Configuration for the service control plane.
Control control = 21;
// Defines the logs used by this service.
repeated LogDescriptor logs = 23;
// Defines the metrics used by this service.
repeated MetricDescriptor metrics = 24;
// Defines the monitored resources used by this service. This is required
// by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
repeated MonitoredResourceDescriptor monitored_resources = 25;
// Billing configuration.
Billing billing = 26;
// Logging configuration.
Logging logging = 27;
// Monitoring configuration.
Monitoring monitoring = 28;
// System parameter configuration.
SystemParameters system_parameters = 29;
// Output only. The source information for this configuration if available.
SourceInfo source_info = 37;
}

View File

@ -0,0 +1,98 @@
// Copyright 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicecontrol.v1;
import "google/api/annotations.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol";
option java_multiple_files = true;
option java_outer_classname = "CheckErrorProto";
option java_package = "com.google.api.servicecontrol.v1";
// Defines the errors to be returned in
// [google.api.servicecontrol.v1.CheckResponse.check_errors][google.api.servicecontrol.v1.CheckResponse.check_errors].
message CheckError {
// Error codes for Check responses.
enum Code {
// This is never used in `CheckResponse`.
ERROR_CODE_UNSPECIFIED = 0;
// The consumer's project id was not found.
// Same as [google.rpc.Code.NOT_FOUND][].
NOT_FOUND = 5;
// The consumer doesn't have access to the specified resource.
// Same as [google.rpc.Code.PERMISSION_DENIED][].
PERMISSION_DENIED = 7;
// Quota check failed. Same as [google.rpc.Code.RESOURCE_EXHAUSTED][].
RESOURCE_EXHAUSTED = 8;
// The consumer hasn't activated the service.
SERVICE_NOT_ACTIVATED = 104;
// The consumer cannot access the service because billing is disabled.
BILLING_DISABLED = 107;
// The consumer's project has been marked as deleted (soft deletion).
PROJECT_DELETED = 108;
// The consumer's project number or id does not represent a valid project.
PROJECT_INVALID = 114;
// The IP address of the consumer is invalid for the specific consumer
// project.
IP_ADDRESS_BLOCKED = 109;
// The referer address of the consumer request is invalid for the specific
// consumer project.
REFERER_BLOCKED = 110;
// The client application of the consumer request is invalid for the
// specific consumer project.
CLIENT_APP_BLOCKED = 111;
// The API targeted by this request is invalid for the specified consumer
// project.
API_TARGET_BLOCKED = 122;
// The consumer's API key is invalid.
API_KEY_INVALID = 105;
// The consumer's API Key has expired.
API_KEY_EXPIRED = 112;
// The consumer's API Key was not found in config record.
API_KEY_NOT_FOUND = 113;
// The backend server for looking up project id/number is unavailable.
NAMESPACE_LOOKUP_UNAVAILABLE = 300;
// The backend server for checking service status is unavailable.
SERVICE_STATUS_UNAVAILABLE = 301;
// The backend server for checking billing status is unavailable.
BILLING_STATUS_UNAVAILABLE = 302;
}
// The error code.
Code code = 1;
// Free-form text providing details on the error cause of the error.
string detail = 2;
}

View File

@ -0,0 +1,158 @@
// Copyright 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicecontrol.v1;
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol";
option java_multiple_files = true;
option java_outer_classname = "DistributionProto";
option java_package = "com.google.api.servicecontrol.v1";
// Distribution represents a frequency distribution of double-valued sample
// points. It contains the size of the population of sample points plus
// additional optional information:
//
// - the arithmetic mean of the samples
// - the minimum and maximum of the samples
// - the sum-squared-deviation of the samples, used to compute variance
// - a histogram of the values of the sample points
message Distribution {
// Describing buckets with constant width.
message LinearBuckets {
// The number of finite buckets. With the underflow and overflow buckets,
// the total number of buckets is `num_finite_buckets` + 2.
// See comments on `bucket_options` for details.
int32 num_finite_buckets = 1;
// The i'th linear bucket covers the interval
// [offset + (i-1) * width, offset + i * width)
// where i ranges from 1 to num_finite_buckets, inclusive.
// Must be strictly positive.
double width = 2;
// The i'th linear bucket covers the interval
// [offset + (i-1) * width, offset + i * width)
// where i ranges from 1 to num_finite_buckets, inclusive.
double offset = 3;
}
// Describing buckets with exponentially growing width.
message ExponentialBuckets {
// The number of finite buckets. With the underflow and overflow buckets,
// the total number of buckets is `num_finite_buckets` + 2.
// See comments on `bucket_options` for details.
int32 num_finite_buckets = 1;
// The i'th exponential bucket covers the interval
// [scale * growth_factor^(i-1), scale * growth_factor^i)
// where i ranges from 1 to num_finite_buckets inclusive.
// Must be larger than 1.0.
double growth_factor = 2;
// The i'th exponential bucket covers the interval
// [scale * growth_factor^(i-1), scale * growth_factor^i)
// where i ranges from 1 to num_finite_buckets inclusive.
// Must be > 0.
double scale = 3;
}
// Describing buckets with arbitrary user-provided width.
message ExplicitBuckets {
// 'bound' is a list of strictly increasing boundaries between
// buckets. Note that a list of length N-1 defines N buckets because
// of fenceposting. See comments on `bucket_options` for details.
//
// The i'th finite bucket covers the interval
// [bound[i-1], bound[i])
// where i ranges from 1 to bound_size() - 1. Note that there are no
// finite buckets at all if 'bound' only contains a single element; in
// that special case the single bound defines the boundary between the
// underflow and overflow buckets.
//
// bucket number lower bound upper bound
// i == 0 (underflow) -inf bound[i]
// 0 < i < bound_size() bound[i-1] bound[i]
// i == bound_size() (overflow) bound[i-1] +inf
repeated double bounds = 1;
}
// The total number of samples in the distribution. Must be >= 0.
int64 count = 1;
// The arithmetic mean of the samples in the distribution. If `count` is
// zero then this field must be zero.
double mean = 2;
// The minimum of the population of values. Ignored if `count` is zero.
double minimum = 3;
// The maximum of the population of values. Ignored if `count` is zero.
double maximum = 4;
// The sum of squared deviations from the mean:
// Sum[i=1..count]((x_i - mean)^2)
// where each x_i is a sample values. If `count` is zero then this field
// must be zero, otherwise validation of the request fails.
double sum_of_squared_deviation = 5;
// The number of samples in each histogram bucket. `bucket_counts` are
// optional. If present, they must sum to the `count` value.
//
// The buckets are defined below in `bucket_option`. There are N buckets.
// `bucket_counts[0]` is the number of samples in the underflow bucket.
// `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
// in each of the finite buckets. And `bucket_counts[N] is the number
// of samples in the overflow bucket. See the comments of `bucket_option`
// below for more details.
//
// Any suffix of trailing zeros may be omitted.
repeated int64 bucket_counts = 6;
// Defines the buckets in the histogram. `bucket_option` and `bucket_counts`
// must be both set, or both unset.
//
// Buckets are numbered in the range of [0, N], with a total of N+1 buckets.
// There must be at least two buckets (a single-bucket histogram gives
// no information that isn't already provided by `count`).
//
// The first bucket is the underflow bucket which has a lower bound
// of -inf. The last bucket is the overflow bucket which has an
// upper bound of +inf. All other buckets (if any) are called "finite"
// buckets because they have finite lower and upper bounds. As described
// below, there are three ways to define the finite buckets.
//
// (1) Buckets with constant width.
// (2) Buckets with exponentially growing widths.
// (3) Buckets with arbitrary user-provided widths.
//
// In all cases, the buckets cover the entire real number line (-inf,
// +inf). Bucket upper bounds are exclusive and lower bounds are
// inclusive. The upper bound of the underflow bucket is equal to the
// lower bound of the smallest finite bucket; the lower bound of the
// overflow bucket is equal to the upper bound of the largest finite
// bucket.
oneof bucket_option {
// Buckets with constant width.
LinearBuckets linear_buckets = 7;
// Buckets with exponentially growing width.
ExponentialBuckets exponential_buckets = 8;
// Buckets with arbitrary user-provided width.
ExplicitBuckets explicit_buckets = 9;
}
}

View File

@ -0,0 +1,66 @@
// Copyright 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicecontrol.v1;
import "google/api/annotations.proto";
import "google/logging/type/log_severity.proto";
import "google/protobuf/any.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol";
option java_multiple_files = true;
option java_outer_classname = "LogEntryProto";
option java_package = "com.google.api.servicecontrol.v1";
// An individual log entry.
message LogEntry {
// Required. The log to which this log entry belongs. Examples: `"syslog"`,
// `"book_log"`.
string name = 10;
// The time the event described by the log entry occurred. If
// omitted, defaults to operation start time.
google.protobuf.Timestamp timestamp = 11;
// The severity of the log entry. The default value is
// `LogSeverity.DEFAULT`.
google.logging.type.LogSeverity severity = 12;
// A unique ID for the log entry used for deduplication. If omitted,
// the implementation will generate one based on operation_id.
string insert_id = 4;
// A set of user-defined (key, value) data that provides additional
// information about the log entry.
map<string, string> labels = 13;
// The log entry payload, which can be one of multiple types.
oneof payload {
// The log entry payload, represented as a protocol buffer that is
// expressed as a JSON object. The only accepted type currently is
// [AuditLog][google.cloud.audit.AuditLog].
google.protobuf.Any proto_payload = 2;
// The log entry payload, represented as a Unicode string (UTF-8).
string text_payload = 3;
// The log entry payload, represented as a structure that
// is expressed as a JSON object.
google.protobuf.Struct struct_payload = 6;
}
}

View File

@ -0,0 +1,78 @@
// Copyright 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicecontrol.v1;
import "google/api/annotations.proto";
import "google/api/servicecontrol/v1/distribution.proto";
import "google/protobuf/timestamp.proto";
import "google/type/money.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol";
option java_multiple_files = true;
option java_outer_classname = "MetricValueSetProto";
option java_package = "com.google.api.servicecontrol.v1";
// Represents a single metric value.
message MetricValue {
// The labels describing the metric value.
// See comments on
// [google.api.servicecontrol.v1.Operation.labels][google.api.servicecontrol.v1.Operation.labels]
// for the overriding relationship.
map<string, string> labels = 1;
// The start of the time period over which this metric value's measurement
// applies. The time period has different semantics for different metric
// types (cumulative, delta, and gauge). See the metric definition
// documentation in the service configuration for details.
google.protobuf.Timestamp start_time = 2;
// The end of the time period over which this metric value's measurement
// applies.
google.protobuf.Timestamp end_time = 3;
// The value. The type of value used in the request must
// agree with the metric definition in the service configuration, otherwise
// the MetricValue is rejected.
oneof value {
// A boolean value.
bool bool_value = 4;
// A signed 64-bit integer value.
int64 int64_value = 5;
// A double precision floating point value.
double double_value = 6;
// A text string value.
string string_value = 7;
// A distribution value.
Distribution distribution_value = 8;
}
}
// Represents a set of metric values in the same metric.
// Each metric value in the set should have a unique combination of start time,
// end time, and label values.
message MetricValueSet {
// The metric name defined in the service configuration.
string metric_name = 1;
// The values in this metric.
repeated MetricValue metric_values = 2;
}

View File

@ -0,0 +1,113 @@
// Copyright 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicecontrol.v1;
import "google/api/annotations.proto";
import "google/api/servicecontrol/v1/log_entry.proto";
import "google/api/servicecontrol/v1/metric_value.proto";
import "google/protobuf/timestamp.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol";
option java_multiple_files = true;
option java_outer_classname = "OperationProto";
option java_package = "com.google.api.servicecontrol.v1";
// Represents information regarding an operation.
message Operation {
// Defines the importance of the data contained in the operation.
enum Importance {
// The API implementation may cache and aggregate the data.
// The data may be lost when rare and unexpected system failures occur.
LOW = 0;
// The API implementation doesn't cache and aggregate the data.
// If the method returns successfully, it's guaranteed that the data has
// been persisted in durable storage.
HIGH = 1;
}
// Identity of the operation. This must be unique within the scope of the
// service that generated the operation. If the service calls
// Check() and Report() on the same operation, the two calls should carry
// the same id.
//
// UUID version 4 is recommended, though not required.
// In scenarios where an operation is computed from existing information
// and an idempotent id is desirable for deduplication purpose, UUID version 5
// is recommended. See RFC 4122 for details.
string operation_id = 1;
// Fully qualified name of the operation. Reserved for future use.
string operation_name = 2;
// Identity of the consumer who is using the service.
// This field should be filled in for the operations initiated by a
// consumer, but not for service-initiated operations that are
// not related to a specific consumer.
//
// This can be in one of the following formats:
// project:<project_id>,
// project_number:<project_number>,
// api_key:<api_key>.
string consumer_id = 3;
// Required. Start time of the operation.
google.protobuf.Timestamp start_time = 4;
// End time of the operation.
// Required when the operation is used in
// [ServiceController.Report][google.api.servicecontrol.v1.ServiceController.Report],
// but optional when the operation is used in
// [ServiceController.Check][google.api.servicecontrol.v1.ServiceController.Check].
google.protobuf.Timestamp end_time = 5;
// Labels describing the operation. Only the following labels are allowed:
//
// - Labels describing monitored resources as defined in
// the service configuration.
// - Default labels of metric values. When specified, labels defined in the
// metric value override these default.
// - The following labels defined by Google Cloud Platform:
// - `cloud.googleapis.com/location` describing the location where the
// operation happened,
// - `servicecontrol.googleapis.com/user_agent` describing the user agent
// of the API request,
// - `servicecontrol.googleapis.com/service_agent` describing the service
// used to handle the API request (e.g. ESP),
// - `servicecontrol.googleapis.com/platform` describing the platform
// where the API is served (e.g. GAE, GCE, GKE).
map<string, string> labels = 6;
// Represents information about this operation. Each MetricValueSet
// corresponds to a metric defined in the service configuration.
// The data type used in the MetricValueSet must agree with
// the data type specified in the metric definition.
//
// Within a single operation, it is not allowed to have more than one
// MetricValue instances that have the same metric names and identical
// label value combinations. If a request has such duplicated MetricValue
// instances, the entire request is rejected with
// an invalid argument error.
repeated MetricValueSet metric_value_sets = 7;
// Represents information to be logged.
repeated LogEntry log_entries = 8;
// DO NOT USE. This is an experimental field.
Importance importance = 11;
}

View File

@ -0,0 +1,206 @@
// Copyright 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicecontrol.v1;
import "google/api/annotations.proto";
import "google/api/servicecontrol/v1/metric_value.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol";
option java_multiple_files = true;
option java_outer_classname = "QuotaControllerProto";
option java_package = "com.google.api.servicecontrol.v1";
// [Google Quota Control API](/service-control/overview)
//
// Allows clients to allocate and release quota against a [managed
// service](https://cloud.google.com/service-management/reference/rpc/google.api/servicemanagement.v1#google.api.servicemanagement.v1.ManagedService).
service QuotaController {
// Attempts to allocate quota for the specified consumer. It should be called
// before the operation is executed.
//
// This method requires the `servicemanagement.services.quota`
// permission on the specified service. For more information, see
// [Cloud IAM](https://cloud.google.com/iam).
//
// **NOTE:** The client **must** fail-open on server errors `INTERNAL`,
// `UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system
// reliability, the server may inject these errors to prohibit any hard
// dependency on the quota functionality.
rpc AllocateQuota(AllocateQuotaRequest) returns (AllocateQuotaResponse) {
option (google.api.http) = {
post: "/v1/services/{service_name}:allocateQuota"
body: "*"
};
}
}
// Request message for the AllocateQuota method.
message AllocateQuotaRequest {
// Name of the service as specified in the service configuration. For example,
// `"pubsub.googleapis.com"`.
//
// See [google.api.Service][google.api.Service] for the definition of a
// service name.
string service_name = 1;
// Operation that describes the quota allocation.
QuotaOperation allocate_operation = 2;
// Specifies which version of service configuration should be used to process
// the request. If unspecified or no matching version can be found, the latest
// one will be used.
string service_config_id = 4;
}
// Represents information regarding a quota operation.
message QuotaOperation {
// Supported quota modes.
enum QuotaMode {
// Guard against implicit default. Must not be used.
UNSPECIFIED = 0;
// For AllocateQuota request, allocates quota for the amount specified in
// the service configuration or specified using the quota metrics. If the
// amount is higher than the available quota, allocation error will be
// returned and no quota will be allocated.
NORMAL = 1;
// The operation allocates quota for the amount specified in the service
// configuration or specified using the quota metrics. If the amount is
// higher than the available quota, request does not fail but all available
// quota will be allocated.
BEST_EFFORT = 2;
// For AllocateQuota request, only checks if there is enough quota
// available and does not change the available quota. No lock is placed on
// the available quota either.
CHECK_ONLY = 3;
}
// Identity of the operation. This is expected to be unique within the scope
// of the service that generated the operation, and guarantees idempotency in
// case of retries.
//
// UUID version 4 is recommended, though not required. In scenarios where an
// operation is computed from existing information and an idempotent id is
// desirable for deduplication purpose, UUID version 5 is recommended. See
// RFC 4122 for details.
string operation_id = 1;
// Fully qualified name of the API method for which this quota operation is
// requested. This name is used for matching quota rules or metric rules and
// billing status rules defined in service configuration. This field is not
// required if the quota operation is performed on non-API resources.
//
// Example of an RPC method name:
// google.example.library.v1.LibraryService.CreateShelf
string method_name = 2;
// Identity of the consumer for whom this quota operation is being performed.
//
// This can be in one of the following formats:
// project:<project_id>,
// project_number:<project_number>,
// api_key:<api_key>.
string consumer_id = 3;
// Labels describing the operation.
map<string, string> labels = 4;
// Represents information about this operation. Each MetricValueSet
// corresponds to a metric defined in the service configuration.
// The data type used in the MetricValueSet must agree with
// the data type specified in the metric definition.
//
// Within a single operation, it is not allowed to have more than one
// MetricValue instances that have the same metric names and identical
// label value combinations. If a request has such duplicated MetricValue
// instances, the entire request is rejected with
// an invalid argument error.
repeated MetricValueSet quota_metrics = 5;
// Quota mode for this operation.
QuotaMode quota_mode = 6;
}
// Response message for the AllocateQuota method.
message AllocateQuotaResponse {
// The same operation_id value used in the AllocateQuotaRequest. Used for
// logging and diagnostics purposes.
string operation_id = 1;
// Indicates the decision of the allocate.
repeated QuotaError allocate_errors = 2;
// Quota metrics to indicate the result of allocation. Depending on the
// request, one or more of the following metrics will be included:
//
// 1. Per quota group or per quota metric incremental usage will be specified
// using the following delta metric :
// "serviceruntime.googleapis.com/api/consumer/quota_used_count"
//
// 2. The quota limit reached condition will be specified using the following
// boolean metric :
// "serviceruntime.googleapis.com/quota/exceeded"
repeated MetricValueSet quota_metrics = 3;
// ID of the actual config used to process the request.
string service_config_id = 4;
}
// Represents error information for
// [QuotaOperation][google.api.servicecontrol.v1.QuotaOperation].
message QuotaError {
// Error codes related to project config validations are deprecated since the
// quota controller methods do not perform these validations. Instead services
// have to call the Check method, without quota_properties field, to perform
// these validations before calling the quota controller methods. These
// methods check only for project deletion to be wipe out compliant.
enum Code {
// This is never used.
UNSPECIFIED = 0;
// Quota allocation failed.
// Same as [google.rpc.Code.RESOURCE_EXHAUSTED][].
RESOURCE_EXHAUSTED = 8;
// Consumer cannot access the service because the service requires active
// billing.
BILLING_NOT_ACTIVE = 107;
// Consumer's project has been marked as deleted (soft deletion).
PROJECT_DELETED = 108;
// Specified API key is invalid.
API_KEY_INVALID = 105;
// Specified API Key has expired.
API_KEY_EXPIRED = 112;
}
// Error code.
Code code = 1;
// Subject to whom this error applies. See the specific enum for more details
// on this field. For example, "clientip:<ip address of client>" or
// "project:<Google developer project id>".
string subject = 2;
// Free-form text that provides details on the cause of the error.
string description = 3;
}

View File

@ -0,0 +1,204 @@
// Copyright 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicecontrol.v1;
import "google/api/annotations.proto";
import "google/api/servicecontrol/v1/check_error.proto";
import "google/api/servicecontrol/v1/operation.proto";
import "google/rpc/status.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol";
option java_multiple_files = true;
option java_outer_classname = "ServiceControllerProto";
option java_package = "com.google.api.servicecontrol.v1";
option objc_class_prefix = "GASC";
// [Google Service Control API](/service-control/overview)
//
// Lets clients check and report operations against a [managed
// service](https://cloud.google.com/service-management/reference/rpc/google.api/servicemanagement.v1#google.api.servicemanagement.v1.ManagedService).
service ServiceController {
// Checks an operation with Google Service Control to decide whether
// the given operation should proceed. It should be called before the
// operation is executed.
//
// If feasible, the client should cache the check results and reuse them for
// 60 seconds. In case of server errors, the client can rely on the cached
// results for longer time.
//
// NOTE: the [CheckRequest][google.api.servicecontrol.v1.CheckRequest] has the
// size limit of 64KB.
//
// This method requires the `servicemanagement.services.check` permission
// on the specified service. For more information, see
// [Google Cloud IAM](https://cloud.google.com/iam).
rpc Check(CheckRequest) returns (CheckResponse) {
option (google.api.http) = {
post: "/v1/services/{service_name}:check"
body: "*"
};
}
// Reports operation results to Google Service Control, such as logs and
// metrics. It should be called after an operation is completed.
//
// If feasible, the client should aggregate reporting data for up to 5
// seconds to reduce API traffic. Limiting aggregation to 5 seconds is to
// reduce data loss during client crashes. Clients should carefully choose
// the aggregation time window to avoid data loss risk more than 0.01%
// for business and compliance reasons.
//
// NOTE: the [ReportRequest][google.api.servicecontrol.v1.ReportRequest] has
// the size limit of 1MB.
//
// This method requires the `servicemanagement.services.report` permission
// on the specified service. For more information, see
// [Google Cloud IAM](https://cloud.google.com/iam).
rpc Report(ReportRequest) returns (ReportResponse) {
option (google.api.http) = {
post: "/v1/services/{service_name}:report"
body: "*"
};
}
}
// Request message for the Check method.
message CheckRequest {
// The service name as specified in its service configuration. For example,
// `"pubsub.googleapis.com"`.
//
// See
// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
// for the definition of a service name.
string service_name = 1;
// The operation to be checked.
Operation operation = 2;
// Specifies which version of service configuration should be used to process
// the request.
//
// If unspecified or no matching version can be found, the
// latest one will be used.
string service_config_id = 4;
}
// Response message for the Check method.
message CheckResponse {
message CheckInfo {
// Consumer info of this check.
ConsumerInfo consumer_info = 2;
}
// `ConsumerInfo` provides information about the consumer project.
message ConsumerInfo {
// The Google cloud project number, e.g. 1234567890. A value of 0 indicates
// no project number is found.
int64 project_number = 1;
}
// The same operation_id value used in the
// [CheckRequest][google.api.servicecontrol.v1.CheckRequest]. Used for logging
// and diagnostics purposes.
string operation_id = 1;
// The current service rollout id used to process the request.
string service_rollout_id = 11;
// Indicate the decision of the check.
//
// If no check errors are present, the service should process the operation.
// Otherwise the service should use the list of errors to determine the
// appropriate action.
repeated CheckError check_errors = 2;
// The actual config id used to process the request.
string service_config_id = 5;
// Feedback data returned from the server during processing a Check request.
CheckInfo check_info = 6;
}
// Request message for the Report method.
message ReportRequest {
// The service name as specified in its service configuration. For example,
// `"pubsub.googleapis.com"`.
//
// See
// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
// for the definition of a service name.
string service_name = 1;
// Operations to be reported.
//
// Typically the service should report one operation per request.
// Putting multiple operations into a single request is allowed, but should
// be used only when multiple operations are natually available at the time
// of the report.
//
// If multiple operations are in a single request, the total request size
// should be no larger than 1MB. See
// [ReportResponse.report_errors][google.api.servicecontrol.v1.ReportResponse.report_errors]
// for partial failure behavior.
repeated Operation operations = 2;
// Specifies which version of service config should be used to process the
// request.
//
// If unspecified or no matching version can be found, the
// latest one will be used.
string service_config_id = 3;
}
// Response message for the Report method.
message ReportResponse {
// Represents the processing error of one
// [Operation][google.api.servicecontrol.v1.Operation] in the request.
message ReportError {
// The
// [Operation.operation_id][google.api.servicecontrol.v1.Operation.operation_id]
// value from the request.
string operation_id = 1;
// Details of the error when processing the
// [Operation][google.api.servicecontrol.v1.Operation].
google.rpc.Status status = 2;
}
// Partial failures, one for each `Operation` in the request that failed
// processing. There are three possible combinations of the RPC status:
//
// 1. The combination of a successful RPC status and an empty `report_errors`
// list indicates a complete success where all `Operations` in the
// request are processed successfully.
// 2. The combination of a successful RPC status and a non-empty
// `report_errors` list indicates a partial success where some
// `Operations` in the request succeeded. Each
// `Operation` that failed processing has a corresponding item
// in this list.
// 3. A failed RPC status indicates a general non-deterministic failure.
// When this happens, it's impossible to know which of the
// 'Operations' in the request succeeded or failed.
repeated ReportError report_errors = 1;
// The actual config id used to process the request.
string service_config_id = 2;
// The current service rollout id used to process the request.
string service_rollout_id = 4;
}

View File

@ -0,0 +1,299 @@
// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicemanagement.v1;
import "google/api/annotations.proto";
import "google/api/config_change.proto";
import "google/api/metric.proto";
import "google/api/service.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/any.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
option csharp_namespace = "Google.Cloud.ServiceManagement.V1";
option go_package = "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement";
option java_multiple_files = true;
option java_outer_classname = "ResourcesProto";
option java_package = "com.google.api.servicemanagement.v1";
option objc_class_prefix = "GASM";
option php_namespace = "Google\\Cloud\\ServiceManagement\\V1";
// The full representation of a Service that is managed by
// Google Service Management.
message ManagedService {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements.
string service_name = 2;
// ID of the project that produces and owns this service.
string producer_project_id = 3;
}
// The metadata associated with a long running operation resource.
message OperationMetadata {
// Represents the status of one operation step.
message Step {
// The short description of the step.
string description = 2;
// The status code.
Status status = 4;
}
// Code describes the status of the operation (or one of its steps).
enum Status {
// Unspecifed code.
STATUS_UNSPECIFIED = 0;
// The operation or step has completed without errors.
DONE = 1;
// The operation or step has not started yet.
NOT_STARTED = 2;
// The operation or step is in progress.
IN_PROGRESS = 3;
// The operation or step has completed with errors. If the operation is
// rollbackable, the rollback completed with errors too.
FAILED = 4;
// The operation or step has completed with cancellation.
CANCELLED = 5;
}
// The full name of the resources that this operation is directly
// associated with.
repeated string resource_names = 1;
// Detailed status information for each step. The order is undetermined.
repeated Step steps = 2;
// Percentage of completion of this operation, ranging from 0 to 100.
int32 progress_percentage = 3;
// The start time of the operation.
google.protobuf.Timestamp start_time = 4;
}
// Represents a diagnostic message (error or warning)
message Diagnostic {
// The kind of diagnostic information possible.
enum Kind {
// Warnings and errors
WARNING = 0;
// Only errors
ERROR = 1;
}
// File name and line number of the error or warning.
string location = 1;
// The kind of diagnostic information provided.
Kind kind = 2;
// Message describing the error or warning.
string message = 3;
}
// Represents a source file which is used to generate the service configuration
// defined by `google.api.Service`.
message ConfigSource {
// A unique ID for a specific instance of this message, typically assigned
// by the client for tracking purpose. If empty, the server may choose to
// generate one instead.
string id = 5;
// Set of source configuration files that are used to generate a service
// configuration (`google.api.Service`).
repeated ConfigFile files = 2;
}
// Generic specification of a source configuration file
message ConfigFile {
enum FileType {
// Unknown file type.
FILE_TYPE_UNSPECIFIED = 0;
// YAML-specification of service.
SERVICE_CONFIG_YAML = 1;
// OpenAPI specification, serialized in JSON.
OPEN_API_JSON = 2;
// OpenAPI specification, serialized in YAML.
OPEN_API_YAML = 3;
// FileDescriptorSet, generated by protoc.
//
// To generate, use protoc with imports and source info included.
// For an example test.proto file, the following command would put the value
// in a new file named out.pb.
//
// $protoc --include_imports --include_source_info test.proto -o out.pb
FILE_DESCRIPTOR_SET_PROTO = 4;
// Uncompiled Proto file. Used for storage and display purposes only,
// currently server-side compilation is not supported. Should match the
// inputs to 'protoc' command used to generated FILE_DESCRIPTOR_SET_PROTO. A
// file of this type can only be included if at least one file of type
// FILE_DESCRIPTOR_SET_PROTO is included.
PROTO_FILE = 6;
}
// The file name of the configuration file (full or relative path).
string file_path = 1;
// The bytes that constitute the file.
bytes file_contents = 3;
// The type of configuration file this represents.
FileType file_type = 4;
}
// Represents a service configuration with its name and id.
message ConfigRef {
// Resource name of a service config. It must have the following
// format: "services/{service name}/configs/{config id}".
string name = 1;
}
// Change report associated with a particular service configuration.
//
// It contains a list of ConfigChanges based on the comparison between
// two service configurations.
message ChangeReport {
// List of changes between two service configurations.
// The changes will be alphabetically sorted based on the identifier
// of each change.
// A ConfigChange identifier is a dot separated path to the configuration.
// Example: visibility.rules[selector='LibraryService.CreateBook'].restriction
repeated google.api.ConfigChange config_changes = 1;
}
// A rollout resource that defines how service configuration versions are pushed
// to control plane systems. Typically, you create a new version of the
// service config, and then create a Rollout to push the service config.
message Rollout {
// Strategy that specifies how clients of Google Service Controller want to
// send traffic to use different config versions. This is generally
// used by API proxy to split traffic based on your configured precentage for
// each config version.
//
// One example of how to gradually rollout a new service configuration using
// this
// strategy:
// Day 1
//
// Rollout {
// id: "example.googleapis.com/rollout_20160206"
// traffic_percent_strategy {
// percentages: {
// "example.googleapis.com/20160201": 70.00
// "example.googleapis.com/20160206": 30.00
// }
// }
// }
//
// Day 2
//
// Rollout {
// id: "example.googleapis.com/rollout_20160207"
// traffic_percent_strategy: {
// percentages: {
// "example.googleapis.com/20160206": 100.00
// }
// }
// }
message TrafficPercentStrategy {
// Maps service configuration IDs to their corresponding traffic percentage.
// Key is the service configuration ID, Value is the traffic percentage
// which must be greater than 0.0 and the sum must equal to 100.0.
map<string, double> percentages = 1;
}
// Strategy used to delete a service. This strategy is a placeholder only
// used by the system generated rollout to delete a service.
message DeleteServiceStrategy {}
// Status of a Rollout.
enum RolloutStatus {
// No status specified.
ROLLOUT_STATUS_UNSPECIFIED = 0;
// The Rollout is in progress.
IN_PROGRESS = 1;
// The Rollout has completed successfully.
SUCCESS = 2;
// The Rollout has been cancelled. This can happen if you have overlapping
// Rollout pushes, and the previous ones will be cancelled.
CANCELLED = 3;
// The Rollout has failed and the rollback attempt has failed too.
FAILED = 4;
// The Rollout has not started yet and is pending for execution.
PENDING = 5;
// The Rollout has failed and rolled back to the previous successful
// Rollout.
FAILED_ROLLED_BACK = 6;
}
// Optional unique identifier of this Rollout. Only lower case letters, digits
// and '-' are allowed.
//
// If not specified by client, the server will generate one. The generated id
// will have the form of <date><revision number>, where "date" is the create
// date in ISO 8601 format. "revision number" is a monotonically increasing
// positive number that is reset every day for each service.
// An example of the generated rollout_id is '2016-02-16r1'
string rollout_id = 1;
// Creation time of the rollout. Readonly.
google.protobuf.Timestamp create_time = 2;
// The user who created the Rollout. Readonly.
string created_by = 3;
// The status of this rollout. Readonly. In case of a failed rollout,
// the system will automatically rollback to the current Rollout
// version. Readonly.
RolloutStatus status = 4;
// Strategy that defines which versions of service configurations should be
// pushed
// and how they should be used at runtime.
oneof strategy {
// Google Service Control selects service configurations based on
// traffic percentage.
TrafficPercentStrategy traffic_percent_strategy = 5;
// The strategy associated with a rollout to delete a `ManagedService`.
// Readonly.
DeleteServiceStrategy delete_service_strategy = 200;
}
// The name of the service associated with this Rollout.
string service_name = 8;
}

View File

@ -0,0 +1,503 @@
// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.api.servicemanagement.v1;
import "google/api/annotations.proto";
import "google/api/service.proto";
import "google/api/servicemanagement/v1/resources.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/any.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/struct.proto";
import "google/rpc/status.proto";
option csharp_namespace = "Google.Cloud.ServiceManagement.V1";
option go_package = "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement";
option java_multiple_files = true;
option java_outer_classname = "ServiceManagerProto";
option java_package = "com.google.api.servicemanagement.v1";
option objc_class_prefix = "GASM";
option php_namespace = "Google\\Cloud\\ServiceManagement\\V1";
// [Google Service Management API](/service-management/overview)
service ServiceManager {
// Lists managed services.
//
// Returns all public services. For authenticated users, also returns all
// services the calling user has "servicemanagement.services.get" permission
// for.
//
// **BETA:** If the caller specifies the `consumer_id`, it returns only the
// services enabled on the consumer. The `consumer_id` must have the format
// of "project:{PROJECT-ID}".
rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
option (google.api.http) = {
get: "/v1/services"
};
}
// Gets a managed service. Authentication is required unless the service is
// public.
rpc GetService(GetServiceRequest) returns (ManagedService) {
option (google.api.http) = {
get: "/v1/services/{service_name}"
};
}
// Creates a new managed service.
// Please note one producer project can own no more than 20 services.
//
// Operation<response: ManagedService>
rpc CreateService(CreateServiceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/services"
body: "service"
};
}
// Deletes a managed service. This method will change the service to the
// `Soft-Delete` state for 30 days. Within this period, service producers may
// call
// [UndeleteService][google.api.servicemanagement.v1.ServiceManager.UndeleteService]
// to restore the service. After 30 days, the service will be permanently
// deleted.
//
// Operation<response: google.protobuf.Empty>
rpc DeleteService(DeleteServiceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/services/{service_name}"
};
}
// Revives a previously deleted managed service. The method restores the
// service using the configuration at the time the service was deleted.
// The target service must exist and must have been deleted within the
// last 30 days.
//
// Operation<response: UndeleteServiceResponse>
rpc UndeleteService(UndeleteServiceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/services/{service_name}:undelete"
};
}
// Lists the history of the service configuration for a managed service,
// from the newest to the oldest.
rpc ListServiceConfigs(ListServiceConfigsRequest)
returns (ListServiceConfigsResponse) {
option (google.api.http) = {
get: "/v1/services/{service_name}/configs"
};
}
// Gets a service configuration (version) for a managed service.
rpc GetServiceConfig(GetServiceConfigRequest) returns (google.api.Service) {
option (google.api.http) = {
get: "/v1/services/{service_name}/configs/{config_id}"
additional_bindings { get: "/v1/services/{service_name}/config" }
};
}
// Creates a new service configuration (version) for a managed service.
// This method only stores the service configuration. To roll out the service
// configuration to backend systems please call
// [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout].
//
// Only the 100 most recent service configurations and ones referenced by
// existing rollouts are kept for each service. The rest will be deleted
// eventually.
rpc CreateServiceConfig(CreateServiceConfigRequest)
returns (google.api.Service) {
option (google.api.http) = {
post: "/v1/services/{service_name}/configs"
body: "service_config"
};
}
// Creates a new service configuration (version) for a managed service based
// on
// user-supplied configuration source files (for example: OpenAPI
// Specification). This method stores the source configurations as well as the
// generated service configuration. To rollout the service configuration to
// other services,
// please call
// [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout].
//
// Only the 100 most recent configuration sources and ones referenced by
// existing service configurtions are kept for each service. The rest will be
// deleted eventually.
//
// Operation<response: SubmitConfigSourceResponse>
rpc SubmitConfigSource(SubmitConfigSourceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/services/{service_name}/configs:submit"
body: "*"
};
}
// Lists the history of the service configuration rollouts for a managed
// service, from the newest to the oldest.
rpc ListServiceRollouts(ListServiceRolloutsRequest)
returns (ListServiceRolloutsResponse) {
option (google.api.http) = {
get: "/v1/services/{service_name}/rollouts"
};
}
// Gets a service configuration
// [rollout][google.api.servicemanagement.v1.Rollout].
rpc GetServiceRollout(GetServiceRolloutRequest) returns (Rollout) {
option (google.api.http) = {
get: "/v1/services/{service_name}/rollouts/{rollout_id}"
};
}
// Creates a new service configuration rollout. Based on rollout, the
// Google Service Management will roll out the service configurations to
// different backend services. For example, the logging configuration will be
// pushed to Google Cloud Logging.
//
// Please note that any previous pending and running Rollouts and associated
// Operations will be automatically cancelled so that the latest Rollout will
// not be blocked by previous Rollouts.
//
// Only the 100 most recent (in any state) and the last 10 successful (if not
// already part of the set of 100 most recent) rollouts are kept for each
// service. The rest will be deleted eventually.
//
// Operation<response: Rollout>
rpc CreateServiceRollout(CreateServiceRolloutRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/services/{service_name}/rollouts"
body: "rollout"
};
}
// Generates and returns a report (errors, warnings and changes from
// existing configurations) associated with
// GenerateConfigReportRequest.new_value
//
// If GenerateConfigReportRequest.old_value is specified,
// GenerateConfigReportRequest will contain a single ChangeReport based on the
// comparison between GenerateConfigReportRequest.new_value and
// GenerateConfigReportRequest.old_value.
// If GenerateConfigReportRequest.old_value is not specified, this method
// will compare GenerateConfigReportRequest.new_value with the last pushed
// service configuration.
rpc GenerateConfigReport(GenerateConfigReportRequest)
returns (GenerateConfigReportResponse) {
option (google.api.http) = {
post: "/v1/services:generateConfigReport"
body: "*"
};
}
// Enables a [service][google.api.servicemanagement.v1.ManagedService] for a
// project, so it can be used for the project. See [Cloud Auth
// Guide](https://cloud.google.com/docs/authentication) for more information.
//
// Operation<response: EnableServiceResponse>
rpc EnableService(EnableServiceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/services/{service_name}:enable"
body: "*"
};
}
// Disables a [service][google.api.servicemanagement.v1.ManagedService] for a
// project, so it can no longer be be used for the project. It prevents
// accidental usage that may cause unexpected billing charges or security
// leaks.
//
// Operation<response: DisableServiceResponse>
rpc DisableService(DisableServiceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/services/{service_name}:disable"
body: "*"
};
}
}
// Request message for `ListServices` method.
message ListServicesRequest {
// Include services produced by the specified project.
string producer_project_id = 1;
// Requested size of the next page of data.
int32 page_size = 5;
// Token identifying which result to start with; returned by a previous list
// call.
string page_token = 6;
// Include services consumed by the specified consumer.
//
// The Google Service Management implementation accepts the following
// forms:
// - project:<project_id>
string consumer_id = 7;
}
// Response message for `ListServices` method.
message ListServicesResponse {
// The returned services will only have the name field set.
repeated ManagedService services = 1;
// Token that can be passed to `ListServices` to resume a paginated query.
string next_page_token = 2;
}
// Request message for `GetService` method.
message GetServiceRequest {
// The name of the service. See the `ServiceManager` overview for naming
// requirements. For example: `example.googleapis.com`.
string service_name = 1;
}
// Request message for CreateService method.
message CreateServiceRequest {
// Initial values for the service resource.
ManagedService service = 1;
}
// Request message for DeleteService method.
message DeleteServiceRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
}
// Request message for UndeleteService method.
message UndeleteServiceRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
}
// Response message for UndeleteService method.
message UndeleteServiceResponse {
// Revived service resource.
ManagedService service = 1;
}
// Request message for GetServiceConfig method.
message GetServiceConfigRequest {
enum ConfigView {
// Server response includes all fields except SourceInfo.
BASIC = 0;
// Server response includes all fields including SourceInfo.
// SourceFiles are of type 'google.api.servicemanagement.v1.ConfigFile'
// and are only available for configs created using the
// SubmitConfigSource method.
FULL = 1;
}
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
// The id of the service configuration resource.
string config_id = 2;
// Specifies which parts of the Service Config should be returned in the
// response.
ConfigView view = 3;
}
// Request message for ListServiceConfigs method.
message ListServiceConfigsRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
// The token of the page to retrieve.
string page_token = 2;
// The max number of items to include in the response list.
int32 page_size = 3;
}
// Response message for ListServiceConfigs method.
message ListServiceConfigsResponse {
// The list of service configuration resources.
repeated google.api.Service service_configs = 1;
// The token of the next page of results.
string next_page_token = 2;
}
// Request message for CreateServiceConfig method.
message CreateServiceConfigRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
// The service configuration resource.
google.api.Service service_config = 2;
}
// Request message for SubmitConfigSource method.
message SubmitConfigSourceRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
// The source configuration for the service.
ConfigSource config_source = 2;
// Optional. If set, this will result in the generation of a
// `google.api.Service` configuration based on the `ConfigSource` provided,
// but the generated config and the sources will NOT be persisted.
bool validate_only = 3;
}
// Response message for SubmitConfigSource method.
message SubmitConfigSourceResponse {
// The generated service configuration.
google.api.Service service_config = 1;
}
// Request message for 'CreateServiceRollout'
message CreateServiceRolloutRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
// The rollout resource. The `service_name` field is output only.
Rollout rollout = 2;
}
// Request message for 'ListServiceRollouts'
message ListServiceRolloutsRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
// The token of the page to retrieve.
string page_token = 2;
// The max number of items to include in the response list.
int32 page_size = 3;
// Use `filter` to return subset of rollouts.
// The following filters are supported:
// -- To limit the results to only those in
// [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',
// use filter='status=SUCCESS'
// -- To limit the results to those in
// [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'
// or 'FAILED', use filter='status=CANCELLED OR status=FAILED'
string filter = 4;
}
// Response message for ListServiceRollouts method.
message ListServiceRolloutsResponse {
// The list of rollout resources.
repeated Rollout rollouts = 1;
// The token of the next page of results.
string next_page_token = 2;
}
// Request message for GetServiceRollout method.
message GetServiceRolloutRequest {
// The name of the service. See the [overview](/service-management/overview)
// for naming requirements. For example: `example.googleapis.com`.
string service_name = 1;
// The id of the rollout resource.
string rollout_id = 2;
}
// Request message for EnableService method.
message EnableServiceRequest {
// Name of the service to enable. Specifying an unknown service name will
// cause the request to fail.
string service_name = 1;
// The identity of consumer resource which service enablement will be
// applied to.
//
// The Google Service Management implementation accepts the following
// forms:
// - "project:<project_id>"
//
// Note: this is made compatible with
// google.api.servicecontrol.v1.Operation.consumer_id.
string consumer_id = 2;
}
// Request message for DisableService method.
message DisableServiceRequest {
// Name of the service to disable. Specifying an unknown service name
// will cause the request to fail.
string service_name = 1;
// The identity of consumer resource which service disablement will be
// applied to.
//
// The Google Service Management implementation accepts the following
// forms:
// - "project:<project_id>"
//
// Note: this is made compatible with
// google.api.servicecontrol.v1.Operation.consumer_id.
string consumer_id = 2;
}
// Request message for GenerateConfigReport method.
message GenerateConfigReportRequest {
// Service configuration for which we want to generate the report.
// For this version of API, the supported types are
// [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef],
// [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource],
// and [google.api.Service][google.api.Service]
google.protobuf.Any new_config = 1;
// Service configuration against which the comparison will be done.
// For this version of API, the supported types are
// [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef],
// [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource],
// and [google.api.Service][google.api.Service]
google.protobuf.Any old_config = 2;
}
// Response message for GenerateConfigReport method.
message GenerateConfigReportResponse {
// Name of the service this report belongs to.
string service_name = 1;
// ID of the service configuration this report belongs to.
string id = 2;
// list of ChangeReport, each corresponding to comparison between two
// service configurations.
repeated ChangeReport change_reports = 3;
// Errors / Linter warnings associated with the service definition this
// report
// belongs to.
repeated Diagnostic diagnostics = 4;
}

View File

@ -0,0 +1,32 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
import "google/protobuf/any.proto";
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "SourceInfoProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Source information used to create a Service Config
message SourceInfo {
// All files used during config generation.
repeated google.protobuf.Any source_files = 1;
}

View File

@ -0,0 +1,96 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "SystemParameterProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// ### System parameter configuration
//
// A system parameter is a special kind of parameter defined by the API
// system, not by an individual API. It is typically mapped to an HTTP header
// and/or a URL query parameter. This configuration specifies which methods
// change the names of the system parameters.
message SystemParameters {
// Define system parameters.
//
// The parameters defined here will override the default parameters
// implemented by the system. If this field is missing from the service
// config, default system parameters will be used. Default system parameters
// and names is implementation-dependent.
//
// Example: define api key for all methods
//
// system_parameters
// rules:
// - selector: "*"
// parameters:
// - name: api_key
// url_query_parameter: api_key
//
//
// Example: define 2 api key names for a specific method.
//
// system_parameters
// rules:
// - selector: "/ListShelves"
// parameters:
// - name: api_key
// http_header: Api-Key1
// - name: api_key
// http_header: Api-Key2
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated SystemParameterRule rules = 1;
}
// Define a system parameter rule mapping system parameter definitions to
// methods.
message SystemParameterRule {
// Selects the methods to which this rule applies. Use '*' to indicate all
// methods in all APIs.
//
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
// Define parameters. Multiple names may be defined for a parameter.
// For a given method call, only one of them should be used. If multiple
// names are used the behavior is implementation-dependent.
// If none of the specified names are present the behavior is
// parameter-dependent.
repeated SystemParameter parameters = 2;
}
// Define a parameter's name and location. The parameter may be passed as either
// an HTTP header or a URL query parameter, and if both are passed the behavior
// is implementation-dependent.
message SystemParameter {
// Define the name of the parameter, such as "api_key" . It is case sensitive.
string name = 1;
// Define the HTTP header name to use for the parameter. It is case
// insensitive.
string http_header = 2;
// Define the URL query parameter name to use for the parameter. It is case
// sensitive.
string url_query_parameter = 3;
}

View File

@ -0,0 +1,90 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.api;
option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
option java_multiple_files = true;
option java_outer_classname = "UsageProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
// Configuration controlling usage of a service.
message Usage {
// Requirements that must be satisfied before a consumer project can use the
// service. Each requirement is of the form <service.name>/<requirement-id>;
// for example 'serviceusage.googleapis.com/billing-enabled'.
repeated string requirements = 1;
// A list of usage rules that apply to individual API methods.
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated UsageRule rules = 6;
// The full resource name of a channel used for sending notifications to the
// service producer.
//
// Google Service Management currently only supports
// [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
// channel. To use Google Cloud Pub/Sub as the channel, this must be the name
// of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
// documented in https://cloud.google.com/pubsub/docs/overview.
string producer_notification_channel = 7;
}
// Usage configuration rules for the service.
//
// NOTE: Under development.
//
//
// Use this rule to configure unregistered calls for the service. Unregistered
// calls are calls that do not contain consumer project identity.
// (Example: calls that do not contain an API key).
// By default, API methods do not allow unregistered calls, and each method call
// must be identified by a consumer project identity. Use this rule to
// allow/disallow unregistered calls.
//
// Example of an API that wants to allow unregistered calls for entire service.
//
// usage:
// rules:
// - selector: "*"
// allow_unregistered_calls: true
//
// Example of a method that wants to allow unregistered calls.
//
// usage:
// rules:
// - selector: "google.example.library.v1.LibraryService.CreateBook"
// allow_unregistered_calls: true
message UsageRule {
// Selects the methods to which this rule applies. Use '*' to indicate all
// methods in all APIs.
//
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
// If true, the selected method allows unregistered calls, e.g. calls
// that don't identify any user or application.
bool allow_unregistered_calls = 2;
// If true, the selected method should skip service control and the control
// plane features, such as quota and billing, will not be available.
// This flag is used by Google Cloud Endpoints to bypass checks for internal
// methods, such as service health check methods.
bool skip_service_control = 3;
}

View File

@ -0,0 +1,155 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option go_package = "github.com/golang/protobuf/ptypes/any";
option java_package = "com.google.protobuf";
option java_outer_classname = "AnyProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
// `Any` contains an arbitrary serialized protocol buffer message along with a
// URL that describes the type of the serialized message.
//
// Protobuf library provides support to pack/unpack Any values in the form
// of utility functions or additional generated methods of the Any type.
//
// Example 1: Pack and unpack a message in C++.
//
// Foo foo = ...;
// Any any;
// any.PackFrom(foo);
// ...
// if (any.UnpackTo(&foo)) {
// ...
// }
//
// Example 2: Pack and unpack a message in Java.
//
// Foo foo = ...;
// Any any = Any.pack(foo);
// ...
// if (any.is(Foo.class)) {
// foo = any.unpack(Foo.class);
// }
//
// Example 3: Pack and unpack a message in Python.
//
// foo = Foo(...)
// any = Any()
// any.Pack(foo)
// ...
// if any.Is(Foo.DESCRIPTOR):
// any.Unpack(foo)
// ...
//
// Example 4: Pack and unpack a message in Go
//
// foo := &pb.Foo{...}
// any, err := ptypes.MarshalAny(foo)
// ...
// foo := &pb.Foo{}
// if err := ptypes.UnmarshalAny(any, foo); err != nil {
// ...
// }
//
// The pack methods provided by protobuf library will by default use
// 'type.googleapis.com/full.type.name' as the type URL and the unpack
// methods only use the fully qualified type name after the last '/'
// in the type URL, for example "foo.bar.com/x/y.z" will yield type
// name "y.z".
//
//
// JSON
// ====
// The JSON representation of an `Any` value uses the regular
// representation of the deserialized, embedded message, with an
// additional field `@type` which contains the type URL. Example:
//
// package google.profile;
// message Person {
// string first_name = 1;
// string last_name = 2;
// }
//
// {
// "@type": "type.googleapis.com/google.profile.Person",
// "firstName": <string>,
// "lastName": <string>
// }
//
// If the embedded message type is well-known and has a custom JSON
// representation, that representation will be embedded adding a field
// `value` which holds the custom JSON in addition to the `@type`
// field. Example (for message [google.protobuf.Duration][]):
//
// {
// "@type": "type.googleapis.com/google.protobuf.Duration",
// "value": "1.212s"
// }
//
message Any {
// A URL/resource name that uniquely identifies the type of the serialized
// protocol buffer message. This string must contain at least
// one "/" character. The last segment of the URL's path must represent
// the fully qualified name of the type (as in
// `path/google.protobuf.Duration`). The name should be in a canonical form
// (e.g., leading "." is not accepted).
//
// In practice, teams usually precompile into the binary all types that they
// expect it to use in the context of Any. However, for URLs which use the
// scheme `http`, `https`, or no scheme, one can optionally set up a type
// server that maps type URLs to message definitions as follows:
//
// * If no scheme is provided, `https` is assumed.
// * An HTTP GET on the URL must yield a [google.protobuf.Type][]
// value in binary format, or produce an error.
// * Applications are allowed to cache lookup results based on the
// URL, or have them precompiled into a binary to avoid any
// lookup. Therefore, binary compatibility needs to be preserved
// on changes to types. (Use versioned type names to manage
// breaking changes.)
//
// Note: this functionality is not currently available in the official
// protobuf release, and it is not used for type URLs beginning with
// type.googleapis.com.
//
// Schemes other than `http`, `https` (or the empty scheme) might be
// used with implementation specific semantics.
//
string type_url = 1;
// Must be a valid serialized protocol buffer of the above specified type.
bytes value = 2;
}

View File

@ -0,0 +1,210 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
import "google/protobuf/source_context.proto";
import "google/protobuf/type.proto";
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option java_package = "com.google.protobuf";
option java_outer_classname = "ApiProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
option go_package = "google.golang.org/genproto/protobuf/api;api";
// Api is a light-weight descriptor for an API Interface.
//
// Interfaces are also described as "protocol buffer services" in some contexts,
// such as by the "service" keyword in a .proto file, but they are different
// from API Services, which represent a concrete implementation of an interface
// as opposed to simply a description of methods and bindings. They are also
// sometimes simply referred to as "APIs" in other contexts, such as the name of
// this message itself. See https://cloud.google.com/apis/design/glossary for
// detailed terminology.
message Api {
// The fully qualified name of this interface, including package name
// followed by the interface's simple name.
string name = 1;
// The methods of this interface, in unspecified order.
repeated Method methods = 2;
// Any metadata attached to the interface.
repeated Option options = 3;
// A version string for this interface. If specified, must have the form
// `major-version.minor-version`, as in `1.10`. If the minor version is
// omitted, it defaults to zero. If the entire version field is empty, the
// major version is derived from the package name, as outlined below. If the
// field is not empty, the version in the package name will be verified to be
// consistent with what is provided here.
//
// The versioning schema uses [semantic
// versioning](http://semver.org) where the major version number
// indicates a breaking change and the minor version an additive,
// non-breaking change. Both version numbers are signals to users
// what to expect from different versions, and should be carefully
// chosen based on the product plan.
//
// The major version is also reflected in the package name of the
// interface, which must end in `v<major-version>`, as in
// `google.feature.v1`. For major versions 0 and 1, the suffix can
// be omitted. Zero major versions must only be used for
// experimental, non-GA interfaces.
//
//
string version = 4;
// Source context for the protocol buffer service represented by this
// message.
SourceContext source_context = 5;
// Included interfaces. See [Mixin][].
repeated Mixin mixins = 6;
// The source syntax of the service.
Syntax syntax = 7;
}
// Method represents a method of an API interface.
message Method {
// The simple name of this method.
string name = 1;
// A URL of the input message type.
string request_type_url = 2;
// If true, the request is streamed.
bool request_streaming = 3;
// The URL of the output message type.
string response_type_url = 4;
// If true, the response is streamed.
bool response_streaming = 5;
// Any metadata attached to the method.
repeated Option options = 6;
// The source syntax of this method.
Syntax syntax = 7;
}
// Declares an API Interface to be included in this interface. The including
// interface must redeclare all the methods from the included interface, but
// documentation and options are inherited as follows:
//
// - If after comment and whitespace stripping, the documentation
// string of the redeclared method is empty, it will be inherited
// from the original method.
//
// - Each annotation belonging to the service config (http,
// visibility) which is not set in the redeclared method will be
// inherited.
//
// - If an http annotation is inherited, the path pattern will be
// modified as follows. Any version prefix will be replaced by the
// version of the including interface plus the [root][] path if
// specified.
//
// Example of a simple mixin:
//
// package google.acl.v1;
// service AccessControl {
// // Get the underlying ACL object.
// rpc GetAcl(GetAclRequest) returns (Acl) {
// option (google.api.http).get = "/v1/{resource=**}:getAcl";
// }
// }
//
// package google.storage.v2;
// service Storage {
// rpc GetAcl(GetAclRequest) returns (Acl);
//
// // Get a data record.
// rpc GetData(GetDataRequest) returns (Data) {
// option (google.api.http).get = "/v2/{resource=**}";
// }
// }
//
// Example of a mixin configuration:
//
// apis:
// - name: google.storage.v2.Storage
// mixins:
// - name: google.acl.v1.AccessControl
//
// The mixin construct implies that all methods in `AccessControl` are
// also declared with same name and request/response types in
// `Storage`. A documentation generator or annotation processor will
// see the effective `Storage.GetAcl` method after inherting
// documentation and annotations as follows:
//
// service Storage {
// // Get the underlying ACL object.
// rpc GetAcl(GetAclRequest) returns (Acl) {
// option (google.api.http).get = "/v2/{resource=**}:getAcl";
// }
// ...
// }
//
// Note how the version in the path pattern changed from `v1` to `v2`.
//
// If the `root` field in the mixin is specified, it should be a
// relative path under which inherited HTTP paths are placed. Example:
//
// apis:
// - name: google.storage.v2.Storage
// mixins:
// - name: google.acl.v1.AccessControl
// root: acls
//
// This implies the following inherited HTTP annotation:
//
// service Storage {
// // Get the underlying ACL object.
// rpc GetAcl(GetAclRequest) returns (Acl) {
// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
// }
// ...
// }
message Mixin {
// The fully qualified name of the interface which is included.
string name = 1;
// If non-empty specifies a path under which inherited HTTP paths
// are rooted.
string root = 2;
}

View File

@ -0,0 +1,168 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Author: kenton@google.com (Kenton Varda)
//
// WARNING: The plugin interface is currently EXPERIMENTAL and is subject to
// change.
//
// protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is
// just a program that reads a CodeGeneratorRequest from stdin and writes a
// CodeGeneratorResponse to stdout.
//
// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead
// of dealing with the raw protocol defined here.
//
// A plugin executable needs only to be placed somewhere in the path. The
// plugin should be named "protoc-gen-$NAME", and will then be used when the
// flag "--${NAME}_out" is passed to protoc.
syntax = "proto2";
package google.protobuf.compiler;
option java_package = "com.google.protobuf.compiler";
option java_outer_classname = "PluginProtos";
option go_package = "github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go";
import "google/protobuf/descriptor.proto";
// The version number of protocol compiler.
message Version {
optional int32 major = 1;
optional int32 minor = 2;
optional int32 patch = 3;
// A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
// be empty for mainline stable releases.
optional string suffix = 4;
}
// An encoded CodeGeneratorRequest is written to the plugin's stdin.
message CodeGeneratorRequest {
// The .proto files that were explicitly listed on the command-line. The
// code generator should generate code only for these files. Each file's
// descriptor will be included in proto_file, below.
repeated string file_to_generate = 1;
// The generator parameter passed on the command-line.
optional string parameter = 2;
// FileDescriptorProtos for all files in files_to_generate and everything
// they import. The files will appear in topological order, so each file
// appears before any file that imports it.
//
// protoc guarantees that all proto_files will be written after
// the fields above, even though this is not technically guaranteed by the
// protobuf wire format. This theoretically could allow a plugin to stream
// in the FileDescriptorProtos and handle them one by one rather than read
// the entire set into memory at once. However, as of this writing, this
// is not similarly optimized on protoc's end -- it will store all fields in
// memory at once before sending them to the plugin.
//
// Type names of fields and extensions in the FileDescriptorProto are always
// fully qualified.
repeated FileDescriptorProto proto_file = 15;
// The version number of protocol compiler.
optional Version compiler_version = 3;
}
// The plugin writes an encoded CodeGeneratorResponse to stdout.
message CodeGeneratorResponse {
// Error message. If non-empty, code generation failed. The plugin process
// should exit with status code zero even if it reports an error in this way.
//
// This should be used to indicate errors in .proto files which prevent the
// code generator from generating correct code. Errors which indicate a
// problem in protoc itself -- such as the input CodeGeneratorRequest being
// unparseable -- should be reported by writing a message to stderr and
// exiting with a non-zero status code.
optional string error = 1;
// Represents a single generated file.
message File {
// The file name, relative to the output directory. The name must not
// contain "." or ".." components and must be relative, not be absolute (so,
// the file cannot lie outside the output directory). "/" must be used as
// the path separator, not "\".
//
// If the name is omitted, the content will be appended to the previous
// file. This allows the generator to break large files into small chunks,
// and allows the generated text to be streamed back to protoc so that large
// files need not reside completely in memory at one time. Note that as of
// this writing protoc does not optimize for this -- it will read the entire
// CodeGeneratorResponse before writing files to disk.
optional string name = 1;
// If non-empty, indicates that the named file should already exist, and the
// content here is to be inserted into that file at a defined insertion
// point. This feature allows a code generator to extend the output
// produced by another code generator. The original generator may provide
// insertion points by placing special annotations in the file that look
// like:
// @@protoc_insertion_point(NAME)
// The annotation can have arbitrary text before and after it on the line,
// which allows it to be placed in a comment. NAME should be replaced with
// an identifier naming the point -- this is what other generators will use
// as the insertion_point. Code inserted at this point will be placed
// immediately above the line containing the insertion point (thus multiple
// insertions to the same point will come out in the order they were added).
// The double-@ is intended to make it unlikely that the generated code
// could contain things that look like insertion points by accident.
//
// For example, the C++ code generator places the following line in the
// .pb.h files that it generates:
// // @@protoc_insertion_point(namespace_scope)
// This line appears within the scope of the file's package namespace, but
// outside of any particular class. Another plugin can then specify the
// insertion_point "namespace_scope" to generate additional classes or
// other declarations that should be placed in this scope.
//
// Note that if the line containing the insertion point begins with
// whitespace, the same whitespace will be added to every line of the
// inserted text. This is useful for languages like Python, where
// indentation matters. In these languages, the insertion point comment
// should be indented the same amount as any inserted code will need to be
// in order to work correctly in that context.
//
// The code generator that generates the initial file and the one which
// inserts into it must both run as part of a single invocation of protoc.
// Code generators are executed in the order in which they appear on the
// command line.
//
// If |insertion_point| is present, |name| must also be present.
optional string insertion_point = 2;
// The file contents.
optional string content = 15;
}
repeated File file = 15;
}

View File

@ -0,0 +1,885 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Author: kenton@google.com (Kenton Varda)
// Based on original Protocol Buffers design by
// Sanjay Ghemawat, Jeff Dean, and others.
//
// The messages in this file describe the definitions found in .proto files.
// A valid .proto file can be translated directly to a FileDescriptorProto
// without any other information (e.g. without reading its imports).
syntax = "proto2";
package google.protobuf;
option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor";
option java_package = "com.google.protobuf";
option java_outer_classname = "DescriptorProtos";
option csharp_namespace = "Google.Protobuf.Reflection";
option objc_class_prefix = "GPB";
option cc_enable_arenas = true;
// descriptor.proto must be optimized for speed because reflection-based
// algorithms don't work during bootstrapping.
option optimize_for = SPEED;
// The protocol compiler can output a FileDescriptorSet containing the .proto
// files it parses.
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
// Describes a complete .proto file.
message FileDescriptorProto {
optional string name = 1; // file name, relative to root of source tree
optional string package = 2; // e.g. "foo", "foo.bar", etc.
// Names of files imported by this file.
repeated string dependency = 3;
// Indexes of the public imported files in the dependency list above.
repeated int32 public_dependency = 10;
// Indexes of the weak imported files in the dependency list.
// For Google-internal migration only. Do not use.
repeated int32 weak_dependency = 11;
// All top-level definitions in this file.
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
// This field contains optional information about the original source code.
// You may safely remove this entire field without harming runtime
// functionality of the descriptors -- the information is needed only by
// development tools.
optional SourceCodeInfo source_code_info = 9;
// The syntax of the proto file.
// The supported values are "proto2" and "proto3".
optional string syntax = 12;
}
// Describes a message type.
message DescriptorProto {
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
message ExtensionRange {
optional int32 start = 1; // Inclusive.
optional int32 end = 2; // Exclusive.
optional ExtensionRangeOptions options = 3;
}
repeated ExtensionRange extension_range = 5;
repeated OneofDescriptorProto oneof_decl = 8;
optional MessageOptions options = 7;
// Range of reserved tag numbers. Reserved tag numbers may not be used by
// fields or extension ranges in the same message. Reserved ranges may
// not overlap.
message ReservedRange {
optional int32 start = 1; // Inclusive.
optional int32 end = 2; // Exclusive.
}
repeated ReservedRange reserved_range = 9;
// Reserved field names, which may not be used by fields in the same message.
// A given name may only be reserved once.
repeated string reserved_name = 10;
}
message ExtensionRangeOptions {
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
// Describes a field within a message.
message FieldDescriptorProto {
enum Type {
// 0 is reserved for errors.
// Order is weird for historical reasons.
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
// negative values are likely.
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
// negative values are likely.
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
// Tag-delimited aggregate.
// Group type is deprecated and not supported in proto3. However, Proto3
// implementations should still be able to parse the group wire format and
// treat group fields as unknown fields.
TYPE_GROUP = 10;
TYPE_MESSAGE = 11; // Length-delimited aggregate.
// New in version 2.
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17; // Uses ZigZag encoding.
TYPE_SINT64 = 18; // Uses ZigZag encoding.
}
enum Label {
// 0 is reserved for errors
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
}
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
// If type_name is set, this need not be set. If both this and type_name
// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
optional Type type = 5;
// For message and enum types, this is the name of the type. If the name
// starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
// rules are used to find the type (i.e. first the nested types within this
// message are searched, then within the parent, on up to the root
// namespace).
optional string type_name = 6;
// For extensions, this is the name of the type being extended. It is
// resolved in the same manner as type_name.
optional string extendee = 2;
// For numeric types, contains the original text representation of the value.
// For booleans, "true" or "false".
// For strings, contains the default text contents (not escaped in any way).
// For bytes, contains the C escaped value. All bytes >= 128 are escaped.
// TODO(kenton): Base-64 encode?
optional string default_value = 7;
// If set, gives the index of a oneof in the containing type's oneof_decl
// list. This field is a member of that oneof.
optional int32 oneof_index = 9;
// JSON name of this field. The value is set by protocol compiler. If the
// user has set a "json_name" option on this field, that option's value
// will be used. Otherwise, it's deduced from the field's name by converting
// it to camelCase.
optional string json_name = 10;
optional FieldOptions options = 8;
}
// Describes a oneof.
message OneofDescriptorProto {
optional string name = 1;
optional OneofOptions options = 2;
}
// Describes an enum type.
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
// Range of reserved numeric values. Reserved values may not be used by
// entries in the same enum. Reserved ranges may not overlap.
//
// Note that this is distinct from DescriptorProto.ReservedRange in that it
// is inclusive such that it can appropriately represent the entire int32
// domain.
message EnumReservedRange {
optional int32 start = 1; // Inclusive.
optional int32 end = 2; // Inclusive.
}
// Range of reserved numeric values. Reserved numeric values may not be used
// by enum values in the same enum declaration. Reserved ranges may not
// overlap.
repeated EnumReservedRange reserved_range = 4;
// Reserved enum value names, which may not be reused. A given name may only
// be reserved once.
repeated string reserved_name = 5;
}
// Describes a value within an enum.
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
// Describes a service.
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
optional ServiceOptions options = 3;
}
// Describes a method of a service.
message MethodDescriptorProto {
optional string name = 1;
// Input and output type names. These are resolved in the same way as
// FieldDescriptorProto.type_name, but must refer to a message type.
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
// Identifies if client streams multiple client messages
optional bool client_streaming = 5 [default = false];
// Identifies if server streams multiple server messages
optional bool server_streaming = 6 [default = false];
}
// ===================================================================
// Options
// Each of the definitions above may have "options" attached. These are
// just annotations which may cause code to be generated slightly differently
// or may contain hints for code that manipulates protocol messages.
//
// Clients may define custom options as extensions of the *Options messages.
// These extensions may not yet be known at parsing time, so the parser cannot
// store the values in them. Instead it stores them in a field in the *Options
// message called uninterpreted_option. This field must have the same name
// across all *Options messages. We then use this field to populate the
// extensions when we build a descriptor, at which point all protos have been
// parsed and so all extensions are known.
//
// Extension numbers for custom options may be chosen as follows:
// * For options which will only be used within a single application or
// organization, or for experimental options, use field numbers 50000
// through 99999. It is up to you to ensure that you do not use the
// same number for multiple options.
// * For options which will be published and used publicly by multiple
// independent entities, e-mail protobuf-global-extension-registry@google.com
// to reserve extension numbers. Simply provide your project name (e.g.
// Objective-C plugin) and your project website (if available) -- there's no
// need to explain how you intend to use them. Usually you only need one
// extension number. You can declare multiple options with only one extension
// number by putting them in a sub-message. See the Custom Options section of
// the docs for examples:
// https://developers.google.com/protocol-buffers/docs/proto#options
// If this turns out to be popular, a web service will be set up
// to automatically assign option numbers.
message FileOptions {
// Sets the Java package where classes generated from this .proto will be
// placed. By default, the proto package is used, but this is often
// inappropriate because proto packages do not normally start with backwards
// domain names.
optional string java_package = 1;
// If set, all the classes from the .proto file are wrapped in a single
// outer class with the given name. This applies to both Proto1
// (equivalent to the old "--one_java_file" option) and Proto2 (where
// a .proto always translates to a single class, but you may want to
// explicitly choose the class name).
optional string java_outer_classname = 8;
// If set true, then the Java code generator will generate a separate .java
// file for each top-level message, enum, and service defined in the .proto
// file. Thus, these types will *not* be nested inside the outer class
// named by java_outer_classname. However, the outer class will still be
// generated to contain the file's getDescriptor() method as well as any
// top-level extensions defined in the file.
optional bool java_multiple_files = 10 [default = false];
// This option does nothing.
optional bool java_generate_equals_and_hash = 20 [deprecated=true];
// If set true, then the Java2 code generator will generate code that
// throws an exception whenever an attempt is made to assign a non-UTF-8
// byte sequence to a string field.
// Message reflection will do the same.
// However, an extension field still accepts non-UTF-8 byte sequences.
// This option has no effect on when used with the lite runtime.
optional bool java_string_check_utf8 = 27 [default = false];
// Generated classes can be optimized for speed or code size.
enum OptimizeMode {
SPEED = 1; // Generate complete code for parsing, serialization,
// etc.
CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
}
optional OptimizeMode optimize_for = 9 [default = SPEED];
// Sets the Go package where structs generated from this .proto will be
// placed. If omitted, the Go package will be derived from the following:
// - The basename of the package import path, if provided.
// - Otherwise, the package statement in the .proto file, if present.
// - Otherwise, the basename of the .proto file, without extension.
optional string go_package = 11;
// Should generic services be generated in each language? "Generic" services
// are not specific to any particular RPC system. They are generated by the
// main code generators in each language (without additional plugins).
// Generic services were the only kind of service generation supported by
// early versions of google.protobuf.
//
// Generic services are now considered deprecated in favor of using plugins
// that generate code specific to your particular RPC system. Therefore,
// these default to false. Old code which depends on generic services should
// explicitly set them to true.
optional bool cc_generic_services = 16 [default = false];
optional bool java_generic_services = 17 [default = false];
optional bool py_generic_services = 18 [default = false];
optional bool php_generic_services = 42 [default = false];
// Is this file deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for everything in the file, or it will be completely ignored; in the very
// least, this is a formalization for deprecating files.
optional bool deprecated = 23 [default = false];
// Enables the use of arenas for the proto messages in this file. This applies
// only to generated classes for C++.
optional bool cc_enable_arenas = 31 [default = false];
// Sets the objective c class prefix which is prepended to all objective c
// generated classes from this .proto. There is no default.
optional string objc_class_prefix = 36;
// Namespace for generated classes; defaults to the package.
optional string csharp_namespace = 37;
// By default Swift generators will take the proto package and CamelCase it
// replacing '.' with underscore and use that to prefix the types/symbols
// defined. When this options is provided, they will use this value instead
// to prefix the types/symbols defined.
optional string swift_prefix = 39;
// Sets the php class prefix which is prepended to all php generated classes
// from this .proto. Default is empty.
optional string php_class_prefix = 40;
// Use this option to change the namespace of php generated classes. Default
// is empty. When this option is empty, the package name will be used for
// determining the namespace.
optional string php_namespace = 41;
// Use this option to change the namespace of php generated metadata classes.
// Default is empty. When this option is empty, the proto file name will be
// used for determining the namespace.
optional string php_metadata_namespace = 44;
// Use this option to change the package of ruby generated classes. Default
// is empty. When this option is not set, the package name will be used for
// determining the ruby package.
optional string ruby_package = 45;
// The parser stores options it doesn't recognize here.
// See the documentation for the "Options" section above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message.
// See the documentation for the "Options" section above.
extensions 1000 to max;
reserved 38;
}
message MessageOptions {
// Set true to use the old proto1 MessageSet wire format for extensions.
// This is provided for backwards-compatibility with the MessageSet wire
// format. You should not use this for any other reason: It's less
// efficient, has fewer features, and is more complicated.
//
// The message must be defined exactly as follows:
// message Foo {
// option message_set_wire_format = true;
// extensions 4 to max;
// }
// Note that the message cannot have any defined fields; MessageSets only
// have extensions.
//
// All extensions of your type must be singular messages; e.g. they cannot
// be int32s, enums, or repeated messages.
//
// Because this is an option, the above two restrictions are not enforced by
// the protocol compiler.
optional bool message_set_wire_format = 1 [default = false];
// Disables the generation of the standard "descriptor()" accessor, which can
// conflict with a field of the same name. This is meant to make migration
// from proto1 easier; new code should avoid fields named "descriptor".
optional bool no_standard_descriptor_accessor = 2 [default = false];
// Is this message deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for the message, or it will be completely ignored; in the very least,
// this is a formalization for deprecating messages.
optional bool deprecated = 3 [default = false];
// Whether the message is an automatically generated map entry type for the
// maps field.
//
// For maps fields:
// map<KeyType, ValueType> map_field = 1;
// The parsed descriptor looks like:
// message MapFieldEntry {
// option map_entry = true;
// optional KeyType key = 1;
// optional ValueType value = 2;
// }
// repeated MapFieldEntry map_field = 1;
//
// Implementations may choose not to generate the map_entry=true message, but
// use a native map in the target language to hold the keys and values.
// The reflection APIs in such implementations still need to work as
// if the field is a repeated message field.
//
// NOTE: Do not set the option in .proto files. Always use the maps syntax
// instead. The option should only be implicitly set by the proto compiler
// parser.
optional bool map_entry = 7;
reserved 8; // javalite_serializable
reserved 9; // javanano_as_lite
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
message FieldOptions {
// The ctype option instructs the C++ code generator to use a different
// representation of the field than it normally would. See the specific
// options below. This option is not yet implemented in the open source
// release -- sorry, we'll try to include it in a future version!
optional CType ctype = 1 [default = STRING];
enum CType {
// Default mode.
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
// The packed option can be enabled for repeated primitive fields to enable
// a more efficient representation on the wire. Rather than repeatedly
// writing the tag and type for each element, the entire array is encoded as
// a single length-delimited blob. In proto3, only explicit setting it to
// false will avoid using packed encoding.
optional bool packed = 2;
// The jstype option determines the JavaScript type used for values of the
// field. The option is permitted only for 64 bit integral and fixed types
// (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
// is represented as JavaScript string, which avoids loss of precision that
// can happen when a large value is converted to a floating point JavaScript.
// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
// use the JavaScript "number" type. The behavior of the default option
// JS_NORMAL is implementation dependent.
//
// This option is an enum to permit additional types to be added, e.g.
// goog.math.Integer.
optional JSType jstype = 6 [default = JS_NORMAL];
enum JSType {
// Use the default type.
JS_NORMAL = 0;
// Use JavaScript strings.
JS_STRING = 1;
// Use JavaScript numbers.
JS_NUMBER = 2;
}
// Should this field be parsed lazily? Lazy applies only to message-type
// fields. It means that when the outer message is initially parsed, the
// inner message's contents will not be parsed but instead stored in encoded
// form. The inner message will actually be parsed when it is first accessed.
//
// This is only a hint. Implementations are free to choose whether to use
// eager or lazy parsing regardless of the value of this option. However,
// setting this option true suggests that the protocol author believes that
// using lazy parsing on this field is worth the additional bookkeeping
// overhead typically needed to implement it.
//
// This option does not affect the public interface of any generated code;
// all method signatures remain the same. Furthermore, thread-safety of the
// interface is not affected by this option; const methods remain safe to
// call from multiple threads concurrently, while non-const methods continue
// to require exclusive access.
//
//
// Note that implementations may choose not to check required fields within
// a lazy sub-message. That is, calling IsInitialized() on the outer message
// may return true even if the inner message has missing required fields.
// This is necessary because otherwise the inner message would have to be
// parsed in order to perform the check, defeating the purpose of lazy
// parsing. An implementation which chooses not to check required fields
// must be consistent about it. That is, for any particular sub-message, the
// implementation must either *always* check its required fields, or *never*
// check its required fields, regardless of whether or not the message has
// been parsed.
optional bool lazy = 5 [default = false];
// Is this field deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for accessors, or it will be completely ignored; in the very least, this
// is a formalization for deprecating fields.
optional bool deprecated = 3 [default = false];
// For Google-internal migration only. Do not use.
optional bool weak = 10 [default = false];
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
reserved 4; // removed jtype
}
message OneofOptions {
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
message EnumOptions {
// Set this option to true to allow mapping different tag names to the same
// value.
optional bool allow_alias = 2;
// Is this enum deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for the enum, or it will be completely ignored; in the very least, this
// is a formalization for deprecating enums.
optional bool deprecated = 3 [default = false];
reserved 5; // javanano_as_lite
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
message EnumValueOptions {
// Is this enum value deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for the enum value, or it will be completely ignored; in the very least,
// this is a formalization for deprecating enum values.
optional bool deprecated = 1 [default = false];
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
message ServiceOptions {
// Note: Field numbers 1 through 32 are reserved for Google's internal RPC
// framework. We apologize for hoarding these numbers to ourselves, but
// we were already using them long before we decided to release Protocol
// Buffers.
// Is this service deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for the service, or it will be completely ignored; in the very least,
// this is a formalization for deprecating services.
optional bool deprecated = 33 [default = false];
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
message MethodOptions {
// Note: Field numbers 1 through 32 are reserved for Google's internal RPC
// framework. We apologize for hoarding these numbers to ourselves, but
// we were already using them long before we decided to release Protocol
// Buffers.
// Is this method deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for the method, or it will be completely ignored; in the very least,
// this is a formalization for deprecating methods.
optional bool deprecated = 33 [default = false];
// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
// or neither? HTTP based RPC implementation may choose GET verb for safe
// methods, and PUT verb for idempotent methods instead of the default POST.
enum IdempotencyLevel {
IDEMPOTENCY_UNKNOWN = 0;
NO_SIDE_EFFECTS = 1; // implies idempotent
IDEMPOTENT = 2; // idempotent, but may have side effects
}
optional IdempotencyLevel idempotency_level = 34
[default = IDEMPOTENCY_UNKNOWN];
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
// A message representing a option the parser does not recognize. This only
// appears in options protos created by the compiler::Parser class.
// DescriptorPool resolves these when building Descriptor objects. Therefore,
// options protos in descriptor objects (e.g. returned by Descriptor::options(),
// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
// in them.
message UninterpretedOption {
// The name of the uninterpreted option. Each string represents a segment in
// a dot-separated name. is_extension is true iff a segment represents an
// extension (denoted with parentheses in options specs in .proto files).
// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
// "foo.(bar.baz).qux".
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
// The value of the uninterpreted option, in whatever type the tokenizer
// identified it as during parsing. Exactly one of these should be set.
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
// ===================================================================
// Optional source code info
// Encapsulates information about the original source file from which a
// FileDescriptorProto was generated.
message SourceCodeInfo {
// A Location identifies a piece of source code in a .proto file which
// corresponds to a particular definition. This information is intended
// to be useful to IDEs, code indexers, documentation generators, and similar
// tools.
//
// For example, say we have a file like:
// message Foo {
// optional string foo = 1;
// }
// Let's look at just the field definition:
// optional string foo = 1;
// ^ ^^ ^^ ^ ^^^
// a bc de f ghi
// We have the following locations:
// span path represents
// [a,i) [ 4, 0, 2, 0 ] The whole field definition.
// [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
// [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
// [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
// [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
//
// Notes:
// - A location may refer to a repeated field itself (i.e. not to any
// particular index within it). This is used whenever a set of elements are
// logically enclosed in a single code segment. For example, an entire
// extend block (possibly containing multiple extension definitions) will
// have an outer location whose path refers to the "extensions" repeated
// field without an index.
// - Multiple locations may have the same path. This happens when a single
// logical declaration is spread out across multiple places. The most
// obvious example is the "extend" block again -- there may be multiple
// extend blocks in the same scope, each of which will have the same path.
// - A location's span is not always a subset of its parent's span. For
// example, the "extendee" of an extension declaration appears at the
// beginning of the "extend" block and is shared by all extensions within
// the block.
// - Just because a location's span is a subset of some other location's span
// does not mean that it is a descendant. For example, a "group" defines
// both a type and a field in a single declaration. Thus, the locations
// corresponding to the type and field and their components will overlap.
// - Code which tries to interpret locations should probably be designed to
// ignore those that it doesn't understand, as more types of locations could
// be recorded in the future.
repeated Location location = 1;
message Location {
// Identifies which part of the FileDescriptorProto was defined at this
// location.
//
// Each element is a field number or an index. They form a path from
// the root FileDescriptorProto to the place where the definition. For
// example, this path:
// [ 4, 3, 2, 7, 1 ]
// refers to:
// file.message_type(3) // 4, 3
// .field(7) // 2, 7
// .name() // 1
// This is because FileDescriptorProto.message_type has field number 4:
// repeated DescriptorProto message_type = 4;
// and DescriptorProto.field has field number 2:
// repeated FieldDescriptorProto field = 2;
// and FieldDescriptorProto.name has field number 1:
// optional string name = 1;
//
// Thus, the above path gives the location of a field name. If we removed
// the last element:
// [ 4, 3, 2, 7 ]
// this path refers to the whole field declaration (from the beginning
// of the label to the terminating semicolon).
repeated int32 path = 1 [packed = true];
// Always has exactly three or four elements: start line, start column,
// end line (optional, otherwise assumed same as start line), end column.
// These are packed into a single field for efficiency. Note that line
// and column numbers are zero-based -- typically you will want to add
// 1 to each before displaying to a user.
repeated int32 span = 2 [packed = true];
// If this SourceCodeInfo represents a complete declaration, these are any
// comments appearing before and after the declaration which appear to be
// attached to the declaration.
//
// A series of line comments appearing on consecutive lines, with no other
// tokens appearing on those lines, will be treated as a single comment.
//
// leading_detached_comments will keep paragraphs of comments that appear
// before (but not connected to) the current element. Each paragraph,
// separated by empty lines, will be one comment element in the repeated
// field.
//
// Only the comment content is provided; comment markers (e.g. //) are
// stripped out. For block comments, leading whitespace and an asterisk
// will be stripped from the beginning of each line other than the first.
// Newlines are included in the output.
//
// Examples:
//
// optional int32 foo = 1; // Comment attached to foo.
// // Comment attached to bar.
// optional int32 bar = 2;
//
// optional string baz = 3;
// // Comment attached to baz.
// // Another line attached to baz.
//
// // Comment attached to qux.
// //
// // Another line attached to qux.
// optional double qux = 4;
//
// // Detached comment for corge. This is not leading or trailing comments
// // to qux or corge because there are blank lines separating it from
// // both.
//
// // Detached comment for corge paragraph 2.
//
// optional string corge = 5;
// /* Block comment attached
// * to corge. Leading asterisks
// * will be removed. */
// /* Block comment attached to
// * grault. */
// optional int32 grault = 6;
//
// // ignored detached comments.
optional string leading_comments = 3;
optional string trailing_comments = 4;
repeated string leading_detached_comments = 6;
}
}
// Describes the relationship between generated code and its original source
// file. A GeneratedCodeInfo message is associated with only one generated
// source file, but may contain references to different source .proto files.
message GeneratedCodeInfo {
// An Annotation connects some span of text in generated code to an element
// of its generating .proto file.
repeated Annotation annotation = 1;
message Annotation {
// Identifies the element in the original source .proto file. This field
// is formatted the same as SourceCodeInfo.Location.path.
repeated int32 path = 1 [packed = true];
// Identifies the filesystem path to the original source .proto.
optional string source_file = 2;
// Identifies the starting offset in bytes in the generated code
// that relates to the identified object.
optional int32 begin = 3;
// Identifies the ending offset in bytes in the generated code that
// relates to the identified offset. The end offset should be one past
// the last relevant byte (so the length of the text = end - begin).
optional int32 end = 4;
}
}

View File

@ -0,0 +1,116 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option cc_enable_arenas = true;
option go_package = "github.com/golang/protobuf/ptypes/duration";
option java_package = "com.google.protobuf";
option java_outer_classname = "DurationProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
// A Duration represents a signed, fixed-length span of time represented
// as a count of seconds and fractions of seconds at nanosecond
// resolution. It is independent of any calendar and concepts like "day"
// or "month". It is related to Timestamp in that the difference between
// two Timestamp values is a Duration and it can be added or subtracted
// from a Timestamp. Range is approximately +-10,000 years.
//
// # Examples
//
// Example 1: Compute Duration from two Timestamps in pseudo code.
//
// Timestamp start = ...;
// Timestamp end = ...;
// Duration duration = ...;
//
// duration.seconds = end.seconds - start.seconds;
// duration.nanos = end.nanos - start.nanos;
//
// if (duration.seconds < 0 && duration.nanos > 0) {
// duration.seconds += 1;
// duration.nanos -= 1000000000;
// } else if (duration.seconds > 0 && duration.nanos < 0) {
// duration.seconds -= 1;
// duration.nanos += 1000000000;
// }
//
// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
//
// Timestamp start = ...;
// Duration duration = ...;
// Timestamp end = ...;
//
// end.seconds = start.seconds + duration.seconds;
// end.nanos = start.nanos + duration.nanos;
//
// if (end.nanos < 0) {
// end.seconds -= 1;
// end.nanos += 1000000000;
// } else if (end.nanos >= 1000000000) {
// end.seconds += 1;
// end.nanos -= 1000000000;
// }
//
// Example 3: Compute Duration from datetime.timedelta in Python.
//
// td = datetime.timedelta(days=3, minutes=10)
// duration = Duration()
// duration.FromTimedelta(td)
//
// # JSON Mapping
//
// In JSON format, the Duration type is encoded as a string rather than an
// object, where the string ends in the suffix "s" (indicating seconds) and
// is preceded by the number of seconds, with nanoseconds expressed as
// fractional seconds. For example, 3 seconds with 0 nanoseconds should be
// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
// be expressed in JSON format as "3.000000001s", and 3 seconds and 1
// microsecond should be expressed in JSON format as "3.000001s".
//
//
message Duration {
// Signed seconds of the span of time. Must be from -315,576,000,000
// to +315,576,000,000 inclusive. Note: these bounds are computed from:
// 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
int64 seconds = 1;
// Signed fractions of a second at nanosecond resolution of the span
// of time. Durations less than one second are represented with a 0
// `seconds` field and a positive or negative `nanos` field. For durations
// of one second or more, a non-zero value for the `nanos` field must be
// of the same sign as the `seconds` field. Must be from -999,999,999
// to +999,999,999 inclusive.
int32 nanos = 2;
}

View File

@ -0,0 +1,52 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option go_package = "github.com/golang/protobuf/ptypes/empty";
option java_package = "com.google.protobuf";
option java_outer_classname = "EmptyProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
option cc_enable_arenas = true;
// A generic empty message that you can re-use to avoid defining duplicated
// empty messages in your APIs. A typical example is to use it as the request
// or the response type of an API method. For instance:
//
// service Foo {
// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
// }
//
// The JSON representation for `Empty` is empty JSON object `{}`.
message Empty {}

View File

@ -0,0 +1,245 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option java_package = "com.google.protobuf";
option java_outer_classname = "FieldMaskProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask";
option cc_enable_arenas = true;
// `FieldMask` represents a set of symbolic field paths, for example:
//
// paths: "f.a"
// paths: "f.b.d"
//
// Here `f` represents a field in some root message, `a` and `b`
// fields in the message found in `f`, and `d` a field found in the
// message in `f.b`.
//
// Field masks are used to specify a subset of fields that should be
// returned by a get operation or modified by an update operation.
// Field masks also have a custom JSON encoding (see below).
//
// # Field Masks in Projections
//
// When used in the context of a projection, a response message or
// sub-message is filtered by the API to only contain those fields as
// specified in the mask. For example, if the mask in the previous
// example is applied to a response message as follows:
//
// f {
// a : 22
// b {
// d : 1
// x : 2
// }
// y : 13
// }
// z: 8
//
// The result will not contain specific values for fields x,y and z
// (their value will be set to the default, and omitted in proto text
// output):
//
//
// f {
// a : 22
// b {
// d : 1
// }
// }
//
// A repeated field is not allowed except at the last position of a
// paths string.
//
// If a FieldMask object is not present in a get operation, the
// operation applies to all fields (as if a FieldMask of all fields
// had been specified).
//
// Note that a field mask does not necessarily apply to the
// top-level response message. In case of a REST get operation, the
// field mask applies directly to the response, but in case of a REST
// list operation, the mask instead applies to each individual message
// in the returned resource list. In case of a REST custom method,
// other definitions may be used. Where the mask applies will be
// clearly documented together with its declaration in the API. In
// any case, the effect on the returned resource/resources is required
// behavior for APIs.
//
// # Field Masks in Update Operations
//
// A field mask in update operations specifies which fields of the
// targeted resource are going to be updated. The API is required
// to only change the values of the fields as specified in the mask
// and leave the others untouched. If a resource is passed in to
// describe the updated values, the API ignores the values of all
// fields not covered by the mask.
//
// If a repeated field is specified for an update operation, new values will
// be appended to the existing repeated field in the target resource. Note that
// a repeated field is only allowed in the last position of a `paths` string.
//
// If a sub-message is specified in the last position of the field mask for an
// update operation, then new value will be merged into the existing sub-message
// in the target resource.
//
// For example, given the target message:
//
// f {
// b {
// d: 1
// x: 2
// }
// c: [1]
// }
//
// And an update message:
//
// f {
// b {
// d: 10
// }
// c: [2]
// }
//
// then if the field mask is:
//
// paths: ["f.b", "f.c"]
//
// then the result will be:
//
// f {
// b {
// d: 10
// x: 2
// }
// c: [1, 2]
// }
//
// An implementation may provide options to override this default behavior for
// repeated and message fields.
//
// In order to reset a field's value to the default, the field must
// be in the mask and set to the default value in the provided resource.
// Hence, in order to reset all fields of a resource, provide a default
// instance of the resource and set all fields in the mask, or do
// not provide a mask as described below.
//
// If a field mask is not present on update, the operation applies to
// all fields (as if a field mask of all fields has been specified).
// Note that in the presence of schema evolution, this may mean that
// fields the client does not know and has therefore not filled into
// the request will be reset to their default. If this is unwanted
// behavior, a specific service may require a client to always specify
// a field mask, producing an error if not.
//
// As with get operations, the location of the resource which
// describes the updated values in the request message depends on the
// operation kind. In any case, the effect of the field mask is
// required to be honored by the API.
//
// ## Considerations for HTTP REST
//
// The HTTP kind of an update operation which uses a field mask must
// be set to PATCH instead of PUT in order to satisfy HTTP semantics
// (PUT must only be used for full updates).
//
// # JSON Encoding of Field Masks
//
// In JSON, a field mask is encoded as a single string where paths are
// separated by a comma. Fields name in each path are converted
// to/from lower-camel naming conventions.
//
// As an example, consider the following message declarations:
//
// message Profile {
// User user = 1;
// Photo photo = 2;
// }
// message User {
// string display_name = 1;
// string address = 2;
// }
//
// In proto a field mask for `Profile` may look as such:
//
// mask {
// paths: "user.display_name"
// paths: "photo"
// }
//
// In JSON, the same mask is represented as below:
//
// {
// mask: "user.displayName,photo"
// }
//
// # Field Masks and Oneof Fields
//
// Field masks treat fields in oneofs just as regular fields. Consider the
// following message:
//
// message SampleMessage {
// oneof test_oneof {
// string name = 4;
// SubMessage sub_message = 9;
// }
// }
//
// The field mask can be:
//
// mask {
// paths: "name"
// }
//
// Or:
//
// mask {
// paths: "sub_message"
// }
//
// Note that oneof type names ("test_oneof" in this case) cannot be used in
// paths.
//
// ## Field Mask Verification
//
// The implementation of any API method which has a FieldMask type field in the
// request should verify the included field paths, and return an
// `INVALID_ARGUMENT` error if any path is duplicated or unmappable.
message FieldMask {
// The set of field mask paths.
repeated string paths = 1;
}

View File

@ -0,0 +1,48 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option java_package = "com.google.protobuf";
option java_outer_classname = "SourceContextProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
option go_package = "google.golang.org/genproto/protobuf/source_context;source_context";
// `SourceContext` represents information about the source of a
// protobuf element, like the file in which it is defined.
message SourceContext {
// The path-qualified name of the .proto file that contained the associated
// protobuf element. For example: `"google/protobuf/source_context.proto"`.
string file_name = 1;
}

View File

@ -0,0 +1,95 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option cc_enable_arenas = true;
option go_package = "github.com/golang/protobuf/ptypes/struct;structpb";
option java_package = "com.google.protobuf";
option java_outer_classname = "StructProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
// `Struct` represents a structured data value, consisting of fields
// which map to dynamically typed values. In some languages, `Struct`
// might be supported by a native representation. For example, in
// scripting languages like JS a struct is represented as an
// object. The details of that representation are described together
// with the proto support for the language.
//
// The JSON representation for `Struct` is JSON object.
message Struct {
// Unordered map of dynamically typed values.
map<string, Value> fields = 1;
}
// `Value` represents a dynamically typed value which can be either
// null, a number, a string, a boolean, a recursive struct value, or a
// list of values. A producer of value is expected to set one of that
// variants, absence of any variant indicates an error.
//
// The JSON representation for `Value` is JSON value.
message Value {
// The kind of value.
oneof kind {
// Represents a null value.
NullValue null_value = 1;
// Represents a double value.
double number_value = 2;
// Represents a string value.
string string_value = 3;
// Represents a boolean value.
bool bool_value = 4;
// Represents a structured value.
Struct struct_value = 5;
// Represents a repeated `Value`.
ListValue list_value = 6;
}
}
// `NullValue` is a singleton enumeration to represent the null value for the
// `Value` type union.
//
// The JSON representation for `NullValue` is JSON `null`.
enum NullValue {
// Null value.
NULL_VALUE = 0;
}
// `ListValue` is a wrapper around a repeated field of values.
//
// The JSON representation for `ListValue` is JSON array.
message ListValue {
// Repeated field of dynamically typed values.
repeated Value values = 1;
}

View File

@ -0,0 +1,138 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option cc_enable_arenas = true;
option go_package = "github.com/golang/protobuf/ptypes/timestamp";
option java_package = "com.google.protobuf";
option java_outer_classname = "TimestampProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
// A Timestamp represents a point in time independent of any time zone or local
// calendar, encoded as a count of seconds and fractions of seconds at
// nanosecond resolution. The count is relative to an epoch at UTC midnight on
// January 1, 1970, in the proleptic Gregorian calendar which extends the
// Gregorian calendar backwards to year one.
//
// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
// second table is needed for interpretation, using a [24-hour linear
// smear](https://developers.google.com/time/smear).
//
// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
// restricting to that range, we ensure that we can convert to and from [RFC
// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
//
// # Examples
//
// Example 1: Compute Timestamp from POSIX `time()`.
//
// Timestamp timestamp;
// timestamp.set_seconds(time(NULL));
// timestamp.set_nanos(0);
//
// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
//
// struct timeval tv;
// gettimeofday(&tv, NULL);
//
// Timestamp timestamp;
// timestamp.set_seconds(tv.tv_sec);
// timestamp.set_nanos(tv.tv_usec * 1000);
//
// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
//
// FILETIME ft;
// GetSystemTimeAsFileTime(&ft);
// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
//
// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
// Timestamp timestamp;
// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
//
// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
//
// long millis = System.currentTimeMillis();
//
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
// .setNanos((int) ((millis % 1000) * 1000000)).build();
//
//
// Example 5: Compute Timestamp from current time in Python.
//
// timestamp = Timestamp()
// timestamp.GetCurrentTime()
//
// # JSON Mapping
//
// In JSON format, the Timestamp type is encoded as a string in the
// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
// where {year} is always expressed using four digits while {month}, {day},
// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
// is required. A proto3 JSON serializer should always use UTC (as indicated by
// "Z") when printing the Timestamp type and a proto3 JSON parser should be
// able to accept both UTC and other timezones (as indicated by an offset).
//
// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
// 01:30 UTC on January 15, 2017.
//
// In JavaScript, one can convert a Date object to this format using the
// standard
// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
// method. In Python, a standard `datetime.datetime` object can be converted
// to this format using
// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
// the Joda Time's [`ISODateTimeFormat.dateTime()`](
// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
// ) to obtain a formatter capable of generating timestamps in this format.
//
//
message Timestamp {
// Represents seconds of UTC time since Unix epoch
// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
// 9999-12-31T23:59:59Z inclusive.
int64 seconds = 1;
// Non-negative fractions of a second at nanosecond resolution. Negative
// second values with fractions must still have non-negative nanos values
// that count forward in time. Must be from 0 to 999,999,999
// inclusive.
int32 nanos = 2;
}

View File

@ -0,0 +1,187 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package google.protobuf;
import "google/protobuf/any.proto";
import "google/protobuf/source_context.proto";
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option cc_enable_arenas = true;
option java_package = "com.google.protobuf";
option java_outer_classname = "TypeProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
option go_package = "google.golang.org/genproto/protobuf/ptype;ptype";
// A protocol buffer message type.
message Type {
// The fully qualified message name.
string name = 1;
// The list of fields.
repeated Field fields = 2;
// The list of types appearing in `oneof` definitions in this type.
repeated string oneofs = 3;
// The protocol buffer options.
repeated Option options = 4;
// The source context.
SourceContext source_context = 5;
// The source syntax.
Syntax syntax = 6;
}
// A single field of a message type.
message Field {
// Basic field types.
enum Kind {
// Field type unknown.
TYPE_UNKNOWN = 0;
// Field type double.
TYPE_DOUBLE = 1;
// Field type float.
TYPE_FLOAT = 2;
// Field type int64.
TYPE_INT64 = 3;
// Field type uint64.
TYPE_UINT64 = 4;
// Field type int32.
TYPE_INT32 = 5;
// Field type fixed64.
TYPE_FIXED64 = 6;
// Field type fixed32.
TYPE_FIXED32 = 7;
// Field type bool.
TYPE_BOOL = 8;
// Field type string.
TYPE_STRING = 9;
// Field type group. Proto2 syntax only, and deprecated.
TYPE_GROUP = 10;
// Field type message.
TYPE_MESSAGE = 11;
// Field type bytes.
TYPE_BYTES = 12;
// Field type uint32.
TYPE_UINT32 = 13;
// Field type enum.
TYPE_ENUM = 14;
// Field type sfixed32.
TYPE_SFIXED32 = 15;
// Field type sfixed64.
TYPE_SFIXED64 = 16;
// Field type sint32.
TYPE_SINT32 = 17;
// Field type sint64.
TYPE_SINT64 = 18;
}
// Whether a field is optional, required, or repeated.
enum Cardinality {
// For fields with unknown cardinality.
CARDINALITY_UNKNOWN = 0;
// For optional fields.
CARDINALITY_OPTIONAL = 1;
// For required fields. Proto2 syntax only.
CARDINALITY_REQUIRED = 2;
// For repeated fields.
CARDINALITY_REPEATED = 3;
};
// The field type.
Kind kind = 1;
// The field cardinality.
Cardinality cardinality = 2;
// The field number.
int32 number = 3;
// The field name.
string name = 4;
// The field type URL, without the scheme, for message or enumeration
// types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
string type_url = 6;
// The index of the field type in `Type.oneofs`, for message or enumeration
// types. The first type has index 1; zero means the type is not in the list.
int32 oneof_index = 7;
// Whether to use alternative packed wire representation.
bool packed = 8;
// The protocol buffer options.
repeated Option options = 9;
// The field JSON name.
string json_name = 10;
// The string value of the default value of this field. Proto2 syntax only.
string default_value = 11;
}
// Enum type definition.
message Enum {
// Enum type name.
string name = 1;
// Enum value definitions.
repeated EnumValue enumvalue = 2;
// Protocol buffer options.
repeated Option options = 3;
// The source context.
SourceContext source_context = 4;
// The source syntax.
Syntax syntax = 5;
}
// Enum value definition.
message EnumValue {
// Enum value name.
string name = 1;
// Enum value number.
int32 number = 2;
// Protocol buffer options.
repeated Option options = 3;
}
// A protocol buffer option, which can be attached to a message, field,
// enumeration, etc.
message Option {
// The option's name. For protobuf built-in options (options defined in
// descriptor.proto), this is the short name. For example, `"map_entry"`.
// For custom options, it should be the fully-qualified name. For example,
// `"google.api.http"`.
string name = 1;
// The option's value packed in an Any message. If the value is a primitive,
// the corresponding wrapper type defined in google/protobuf/wrappers.proto
// should be used. If the value is an enum, it should be stored as an int32
// value using the google.protobuf.Int32Value type.
Any value = 2;
}
// The syntax in which a protocol buffer element is defined.
enum Syntax {
// Syntax `proto2`.
SYNTAX_PROTO2 = 0;
// Syntax `proto3`.
SYNTAX_PROTO3 = 1;
}

View File

@ -0,0 +1,130 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Author: kenton@google.com (Kenton Varda)
// Based on original Protocol Buffers design by
// Sanjay Ghemawat, Jeff Dean, and others.
//
// A proto file we will use for unit testing.
syntax = "proto2";
package protobuf_unittest;
message TestFlagsAndStrings {
required int32 A = 1;
repeated group RepeatedGroup = 2 {
required string f = 3;
}
}
message TestBase64ByteArrays {
required bytes a = 1;
}
message TestJavaScriptJSON {
optional int32 a = 1;
optional float final = 2;
optional string in = 3;
optional string Var = 4;
}
message TestJavaScriptOrderJSON1 {
optional int32 d = 1;
optional int32 c = 2;
optional bool x = 3;
optional int32 b = 4;
optional int32 a = 5;
}
message TestJavaScriptOrderJSON2 {
optional int32 d = 1;
optional int32 c = 2;
optional bool x = 3;
optional int32 b = 4;
optional int32 a = 5;
repeated TestJavaScriptOrderJSON1 z = 6;
}
message TestLargeInt {
required int64 a = 1;
required uint64 b = 2;
}
message TestNumbers {
enum MyType {
OK = 0;
WARNING = 1;
ERROR = 2;
}
optional MyType a = 1;
optional int32 b = 2;
optional float c = 3;
optional bool d = 4;
optional double e = 5;
optional uint32 f = 6;
}
message TestCamelCase {
optional string normal_field = 1;
optional int32 CAPITAL_FIELD = 2;
optional int32 CamelCaseField = 3;
}
message TestBoolMap {
map<bool, int32> bool_map = 1;
}
message TestRecursion {
optional int32 value = 1;
optional TestRecursion child = 2;
}
message TestStringMap {
map<string, string> string_map = 1;
}
message TestStringSerializer {
optional string scalar_string = 1;
repeated string repeated_string = 2;
map<string, string> string_map = 3;
}
message TestMessageWithExtension {
extensions 100 to max;
}
message TestExtension {
extend TestMessageWithExtension {
optional TestExtension ext = 100;
}
optional string value = 1;
}

View File

@ -0,0 +1,193 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax = "proto3";
package proto3;
import "google/protobuf/any.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/unittest.proto";
option java_package = "com.google.protobuf.util";
option java_outer_classname = "JsonFormatProto3";
enum EnumType {
FOO = 0;
BAR = 1;
}
message MessageType {
int32 value = 1;
}
message TestMessage {
bool bool_value = 1;
int32 int32_value = 2;
int64 int64_value = 3;
uint32 uint32_value = 4;
uint64 uint64_value = 5;
float float_value = 6;
double double_value = 7;
string string_value = 8;
bytes bytes_value = 9;
EnumType enum_value = 10;
MessageType message_value = 11;
repeated bool repeated_bool_value = 21;
repeated int32 repeated_int32_value = 22;
repeated int64 repeated_int64_value = 23;
repeated uint32 repeated_uint32_value = 24;
repeated uint64 repeated_uint64_value = 25;
repeated float repeated_float_value = 26;
repeated double repeated_double_value = 27;
repeated string repeated_string_value = 28;
repeated bytes repeated_bytes_value = 29;
repeated EnumType repeated_enum_value = 30;
repeated MessageType repeated_message_value = 31;
}
message TestOneof {
// In JSON format oneof fields behave mostly the same as optional
// fields except that:
// 1. Oneof fields have field presence information and will be
// printed if it's set no matter whether it's the default value.
// 2. Multiple oneof fields in the same oneof cannot appear at the
// same time in the input.
oneof oneof_value {
int32 oneof_int32_value = 1;
string oneof_string_value = 2;
bytes oneof_bytes_value = 3;
EnumType oneof_enum_value = 4;
MessageType oneof_message_value = 5;
}
}
message TestMap {
map<bool, int32> bool_map = 1;
map<int32, int32> int32_map = 2;
map<int64, int32> int64_map = 3;
map<uint32, int32> uint32_map = 4;
map<uint64, int32> uint64_map = 5;
map<string, int32> string_map = 6;
}
message TestNestedMap {
map<bool, int32> bool_map = 1;
map<int32, int32> int32_map = 2;
map<int64, int32> int64_map = 3;
map<uint32, int32> uint32_map = 4;
map<uint64, int32> uint64_map = 5;
map<string, int32> string_map = 6;
map<string, TestNestedMap> map_map = 7;
}
message TestStringMap {
map<string, string> string_map = 1;
}
message TestWrapper {
google.protobuf.BoolValue bool_value = 1;
google.protobuf.Int32Value int32_value = 2;
google.protobuf.Int64Value int64_value = 3;
google.protobuf.UInt32Value uint32_value = 4;
google.protobuf.UInt64Value uint64_value = 5;
google.protobuf.FloatValue float_value = 6;
google.protobuf.DoubleValue double_value = 7;
google.protobuf.StringValue string_value = 8;
google.protobuf.BytesValue bytes_value = 9;
repeated google.protobuf.BoolValue repeated_bool_value = 11;
repeated google.protobuf.Int32Value repeated_int32_value = 12;
repeated google.protobuf.Int64Value repeated_int64_value = 13;
repeated google.protobuf.UInt32Value repeated_uint32_value = 14;
repeated google.protobuf.UInt64Value repeated_uint64_value = 15;
repeated google.protobuf.FloatValue repeated_float_value = 16;
repeated google.protobuf.DoubleValue repeated_double_value = 17;
repeated google.protobuf.StringValue repeated_string_value = 18;
repeated google.protobuf.BytesValue repeated_bytes_value = 19;
}
message TestTimestamp {
google.protobuf.Timestamp value = 1;
repeated google.protobuf.Timestamp repeated_value = 2;
}
message TestDuration {
google.protobuf.Duration value = 1;
repeated google.protobuf.Duration repeated_value = 2;
}
message TestFieldMask {
google.protobuf.FieldMask value = 1;
}
message TestStruct {
google.protobuf.Struct value = 1;
repeated google.protobuf.Struct repeated_value = 2;
}
message TestAny {
google.protobuf.Any value = 1;
repeated google.protobuf.Any repeated_value = 2;
}
message TestValue {
google.protobuf.Value value = 1;
repeated google.protobuf.Value repeated_value = 2;
}
message TestListValue {
google.protobuf.ListValue value = 1;
repeated google.protobuf.ListValue repeated_value = 2;
}
message TestBoolValue {
bool bool_value = 1;
map<bool, int32> bool_map = 2;
}
message TestCustomJsonName {
int32 value = 1 [json_name = "@value"];
}
message TestExtensions {
.protobuf_unittest.TestAllExtensions extensions = 1;
}
message TestEnumValue {
EnumType enum_value1 = 1;
EnumType enum_value2 = 2;
EnumType enum_value3 = 3;
}

View File

@ -0,0 +1,123 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Wrappers for primitive (non-message) types. These types are useful
// for embedding primitives in the `google.protobuf.Any` type and for places
// where we need to distinguish between the absence of a primitive
// typed field and its default value.
//
// These wrappers have no meaningful use within repeated fields as they lack
// the ability to detect presence on individual elements.
// These wrappers have no meaningful use within a map or a oneof since
// individual entries of a map or fields of a oneof can already detect presence.
syntax = "proto3";
package google.protobuf;
option csharp_namespace = "Google.Protobuf.WellKnownTypes";
option cc_enable_arenas = true;
option go_package = "github.com/golang/protobuf/ptypes/wrappers";
option java_package = "com.google.protobuf";
option java_outer_classname = "WrappersProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
// Wrapper message for `double`.
//
// The JSON representation for `DoubleValue` is JSON number.
message DoubleValue {
// The double value.
double value = 1;
}
// Wrapper message for `float`.
//
// The JSON representation for `FloatValue` is JSON number.
message FloatValue {
// The float value.
float value = 1;
}
// Wrapper message for `int64`.
//
// The JSON representation for `Int64Value` is JSON string.
message Int64Value {
// The int64 value.
int64 value = 1;
}
// Wrapper message for `uint64`.
//
// The JSON representation for `UInt64Value` is JSON string.
message UInt64Value {
// The uint64 value.
uint64 value = 1;
}
// Wrapper message for `int32`.
//
// The JSON representation for `Int32Value` is JSON number.
message Int32Value {
// The int32 value.
int32 value = 1;
}
// Wrapper message for `uint32`.
//
// The JSON representation for `UInt32Value` is JSON number.
message UInt32Value {
// The uint32 value.
uint32 value = 1;
}
// Wrapper message for `bool`.
//
// The JSON representation for `BoolValue` is JSON `true` and `false`.
message BoolValue {
// The bool value.
bool value = 1;
}
// Wrapper message for `string`.
//
// The JSON representation for `StringValue` is JSON string.
message StringValue {
// The string value.
string value = 1;
}
// Wrapper message for `bytes`.
//
// The JSON representation for `BytesValue` is JSON string.
message BytesValue {
// The bytes value.
bytes value = 1;
}

Some files were not shown because too many files have changed in this diff Show More