Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: networking/v1alpha3/virtual_service.proto
package istio.networking.v1alpha3;
public final class VirtualServiceOuterClass {
private VirtualServiceOuterClass() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registerAllExtensions(
(com.google.protobuf.ExtensionRegistryLite) registry);
}
public interface VirtualServiceOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.VirtualService)
com.google.protobuf.MessageOrBuilder {
/**
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* Configuration affecting traffic routing.
* <!-- crd generation tags
* +cue-gen:VirtualService:groupName:networking.istio.io
* +cue-gen:VirtualService:version:v1alpha3
* +cue-gen:VirtualService:storageVersion
* +cue-gen:VirtualService:annotations:helm.sh/resource-policy=keep
* +cue-gen:VirtualService:labels:app=istio-pilot,chart=istio,heritage=Tiller,release=istio
* +cue-gen:VirtualService:subresource:status
* +cue-gen:VirtualService:scope:Namespaced
* +cue-gen:VirtualService:resource:categories=istio-io,networking-istio-io,shortNames=vs
* +cue-gen:VirtualService:printerColumn:name=Gateways,type=string,JSONPath=.spec.gateways,description="The names of gateways and sidecars
* that should apply these routes"
* +cue-gen:VirtualService:printerColumn:name=Hosts,type=string,JSONPath=.spec.hosts,description="The destination hosts to which traffic is being sent"
* +cue-gen:VirtualService:printerColumn:name=Age,type=date,JSONPath=.metadata.creationTimestamp,description="CreationTimestamp is a timestamp
* representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations.
* Clients may not set this value. It is represented in RFC3339 form and is in UTC.
* Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
* +cue-gen:VirtualService:preserveUnknownFields:false
* -->
* <!-- go code generation tags
* +kubetype-gen
* +kubetype-gen:groupVersion=networking.istio.io/v1alpha3
* +genclient
* +k8s:deepcopy-gen=true
* -->
*
*
* Protobuf type {@code istio.networking.v1alpha3.VirtualService}
*/
public static final class VirtualService extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.VirtualService)
VirtualServiceOrBuilder {
private static final long serialVersionUID = 0L;
// Use VirtualService.newBuilder() to construct.
private VirtualService(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private VirtualService() {
hosts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
gateways_ = com.google.protobuf.LazyStringArrayList.EMPTY;
http_ = java.util.Collections.emptyList();
tls_ = java.util.Collections.emptyList();
tcp_ = java.util.Collections.emptyList();
exportTo_ = com.google.protobuf.LazyStringArrayList.EMPTY;
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new VirtualService();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private VirtualService(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
java.lang.String s = input.readStringRequireUtf8();
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
hosts_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000001;
}
hosts_.add(s);
break;
}
case 18: {
java.lang.String s = input.readStringRequireUtf8();
if (!((mutable_bitField0_ & 0x00000002) != 0)) {
gateways_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000002;
}
gateways_.add(s);
break;
}
case 26: {
if (!((mutable_bitField0_ & 0x00000004) != 0)) {
http_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000004;
}
http_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRoute.parser(), extensionRegistry));
break;
}
case 34: {
if (!((mutable_bitField0_ & 0x00000010) != 0)) {
tcp_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000010;
}
tcp_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute.parser(), extensionRegistry));
break;
}
case 42: {
if (!((mutable_bitField0_ & 0x00000008) != 0)) {
tls_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000008;
}
tls_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute.parser(), extensionRegistry));
break;
}
case 50: {
java.lang.String s = input.readStringRequireUtf8();
if (!((mutable_bitField0_ & 0x00000020) != 0)) {
exportTo_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000020;
}
exportTo_.add(s);
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
hosts_ = hosts_.getUnmodifiableView();
}
if (((mutable_bitField0_ & 0x00000002) != 0)) {
gateways_ = gateways_.getUnmodifiableView();
}
if (((mutable_bitField0_ & 0x00000004) != 0)) {
http_ = java.util.Collections.unmodifiableList(http_);
}
if (((mutable_bitField0_ & 0x00000010) != 0)) {
tcp_ = java.util.Collections.unmodifiableList(tcp_);
}
if (((mutable_bitField0_ & 0x00000008) != 0)) {
tls_ = java.util.Collections.unmodifiableList(tls_);
}
if (((mutable_bitField0_ & 0x00000020) != 0)) {
exportTo_ = exportTo_.getUnmodifiableView();
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_VirtualService_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_VirtualService_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService.class, istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService.Builder.class);
}
public static final int HOSTS_FIELD_NUMBER = 1;
private com.google.protobuf.LazyStringList hosts_;
/**
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
*
* repeated string hosts = 1;
*/
public int getHostsCount() {
return hosts_.size();
}
/**
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
*
* repeated string hosts = 1;
*/
public com.google.protobuf.ByteString
getHostsBytes(int index) {
return hosts_.getByteString(index);
}
public static final int GATEWAYS_FIELD_NUMBER = 2;
private com.google.protobuf.LazyStringList gateways_;
/**
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
*
* repeated string gateways = 2;
*/
public int getGatewaysCount() {
return gateways_.size();
}
/**
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
*
* repeated string gateways = 2;
*/
public com.google.protobuf.ByteString
getGatewaysBytes(int index) {
return gateways_.getByteString(index);
}
public static final int HTTP_FIELD_NUMBER = 3;
private java.util.List http_;
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public int getHttpCount() {
return http_.size();
}
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteOrBuilder getHttpOrBuilder(
int index) {
return http_.get(index);
}
public static final int TLS_FIELD_NUMBER = 5;
private java.util.List tls_;
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public int getTlsCount() {
return tls_.size();
}
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRouteOrBuilder getTlsOrBuilder(
int index) {
return tls_.get(index);
}
public static final int TCP_FIELD_NUMBER = 4;
private java.util.List tcp_;
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public int getTcpCount() {
return tcp_.size();
}
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRouteOrBuilder getTcpOrBuilder(
int index) {
return tcp_.get(index);
}
public static final int EXPORT_TO_FIELD_NUMBER = 6;
private com.google.protobuf.LazyStringList exportTo_;
/**
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 6;
*/
public int getExportToCount() {
return exportTo_.size();
}
/**
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 6;
*/
public com.google.protobuf.ByteString
getExportToBytes(int index) {
return exportTo_.getByteString(index);
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
for (int i = 0; i < hosts_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 1, hosts_.getRaw(i));
}
for (int i = 0; i < gateways_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 2, gateways_.getRaw(i));
}
for (int i = 0; i < http_.size(); i++) {
output.writeMessage(3, http_.get(i));
}
for (int i = 0; i < tcp_.size(); i++) {
output.writeMessage(4, tcp_.get(i));
}
for (int i = 0; i < tls_.size(); i++) {
output.writeMessage(5, tls_.get(i));
}
for (int i = 0; i < exportTo_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 6, exportTo_.getRaw(i));
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
{
int dataSize = 0;
for (int i = 0; i < hosts_.size(); i++) {
dataSize += computeStringSizeNoTag(hosts_.getRaw(i));
}
size += dataSize;
size += 1 * getHostsList().size();
}
{
int dataSize = 0;
for (int i = 0; i < gateways_.size(); i++) {
dataSize += computeStringSizeNoTag(gateways_.getRaw(i));
}
size += dataSize;
size += 1 * getGatewaysList().size();
}
for (int i = 0; i < http_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, http_.get(i));
}
for (int i = 0; i < tcp_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, tcp_.get(i));
}
for (int i = 0; i < tls_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(5, tls_.get(i));
}
{
int dataSize = 0;
for (int i = 0; i < exportTo_.size(); i++) {
dataSize += computeStringSizeNoTag(exportTo_.getRaw(i));
}
size += dataSize;
size += 1 * getExportToList().size();
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService)) {
return super.equals(obj);
}
istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService other = (istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService) obj;
if (!getHostsList()
.equals(other.getHostsList())) return false;
if (!getGatewaysList()
.equals(other.getGatewaysList())) return false;
if (!getHttpList()
.equals(other.getHttpList())) return false;
if (!getTlsList()
.equals(other.getTlsList())) return false;
if (!getTcpList()
.equals(other.getTcpList())) return false;
if (!getExportToList()
.equals(other.getExportToList())) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (getHostsCount() > 0) {
hash = (37 * hash) + HOSTS_FIELD_NUMBER;
hash = (53 * hash) + getHostsList().hashCode();
}
if (getGatewaysCount() > 0) {
hash = (37 * hash) + GATEWAYS_FIELD_NUMBER;
hash = (53 * hash) + getGatewaysList().hashCode();
}
if (getHttpCount() > 0) {
hash = (37 * hash) + HTTP_FIELD_NUMBER;
hash = (53 * hash) + getHttpList().hashCode();
}
if (getTlsCount() > 0) {
hash = (37 * hash) + TLS_FIELD_NUMBER;
hash = (53 * hash) + getTlsList().hashCode();
}
if (getTcpCount() > 0) {
hash = (37 * hash) + TCP_FIELD_NUMBER;
hash = (53 * hash) + getTcpList().hashCode();
}
if (getExportToCount() > 0) {
hash = (37 * hash) + EXPORT_TO_FIELD_NUMBER;
hash = (53 * hash) + getExportToList().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* Configuration affecting traffic routing.
* <!-- crd generation tags
* +cue-gen:VirtualService:groupName:networking.istio.io
* +cue-gen:VirtualService:version:v1alpha3
* +cue-gen:VirtualService:storageVersion
* +cue-gen:VirtualService:annotations:helm.sh/resource-policy=keep
* +cue-gen:VirtualService:labels:app=istio-pilot,chart=istio,heritage=Tiller,release=istio
* +cue-gen:VirtualService:subresource:status
* +cue-gen:VirtualService:scope:Namespaced
* +cue-gen:VirtualService:resource:categories=istio-io,networking-istio-io,shortNames=vs
* +cue-gen:VirtualService:printerColumn:name=Gateways,type=string,JSONPath=.spec.gateways,description="The names of gateways and sidecars
* that should apply these routes"
* +cue-gen:VirtualService:printerColumn:name=Hosts,type=string,JSONPath=.spec.hosts,description="The destination hosts to which traffic is being sent"
* +cue-gen:VirtualService:printerColumn:name=Age,type=date,JSONPath=.metadata.creationTimestamp,description="CreationTimestamp is a timestamp
* representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations.
* Clients may not set this value. It is represented in RFC3339 form and is in UTC.
* Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
* +cue-gen:VirtualService:preserveUnknownFields:false
* -->
* <!-- go code generation tags
* +kubetype-gen
* +kubetype-gen:groupVersion=networking.istio.io/v1alpha3
* +genclient
* +k8s:deepcopy-gen=true
* -->
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
*
* repeated string hosts = 1;
*/
public int getHostsCount() {
return hosts_.size();
}
/**
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
*
* repeated string hosts = 1;
*/
public Builder setHosts(
int index, java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureHostsIsMutable();
hosts_.set(index, value);
onChanged();
return this;
}
/**
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The destination hosts to which traffic is being sent. Could
* be a DNS name with wildcard prefix or an IP address. Depending on the
* platform, short-names can also be used instead of a FQDN (i.e. has no
* dots in the name). In such a scenario, the FQDN of the host would be
* derived based on the underlying platform.
* A single VirtualService can be used to describe all the traffic
* properties of the corresponding hosts, including those for multiple
* HTTP and TCP ports. Alternatively, the traffic properties of a host
* can be defined using more than one VirtualService, with certain
* caveats. Refer to the
* [Operations Guide](https://istio.io/docs/ops/best-practices/traffic-management/#split-virtual-services)
* for details.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews" will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. _To avoid
* potential misconfigurations, it is recommended to always use fully
* qualified domain names over short names._
* The hosts field applies to both HTTP and TCP services. Service inside
* the mesh, i.e., those found in the service registry, must always be
* referred to using their alphanumeric names. IP addresses are allowed
* only for services defined via the Gateway.
* *Note*: It must be empty for a delegate VirtualService.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
*
* repeated string gateways = 2;
*/
public int getGatewaysCount() {
return gateways_.size();
}
/**
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
*
* repeated string gateways = 2;
*/
public Builder setGateways(
int index, java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureGatewaysIsMutable();
gateways_.set(index, value);
onChanged();
return this;
}
/**
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* The names of gateways and sidecars that should apply these routes.
* Gateways in other namespaces may be referred to by
* `<gateway namespace>/<gateway name>`; specifying a gateway with no
* namespace qualifier is the same as specifying the VirtualService's
* namespace. A single VirtualService is used for sidecars inside the mesh as
* well as for one or more gateways. The selection condition imposed by this
* field can be overridden using the source field in the match conditions
* of protocol-specific routes. The reserved word `mesh` is used to imply
* all the sidecars in the mesh. When this field is omitted, the default
* gateway (`mesh`) will be used, which would apply the rule to all
* sidecars in the mesh. If a list of gateway names is provided, the
* rules will apply only to the gateways. To apply the rules to both
* gateways and sidecars, specify `mesh` as one of the gateway names.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public int getHttpCount() {
if (httpBuilder_ == null) {
return http_.size();
} else {
return httpBuilder_.getCount();
}
}
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public Builder setHttp(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRoute value) {
if (httpBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureHttpIsMutable();
http_.set(index, value);
onChanged();
} else {
httpBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public Builder addHttp(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRoute value) {
if (httpBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureHttpIsMutable();
http_.add(value);
onChanged();
} else {
httpBuilder_.addMessage(value);
}
return this;
}
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public Builder addHttp(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRoute value) {
if (httpBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureHttpIsMutable();
http_.add(index, value);
onChanged();
} else {
httpBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRoute.Builder getHttpBuilder(
int index) {
return getHttpFieldBuilder().getBuilder(index);
}
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.HTTPRoute http = 3;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteOrBuilder getHttpOrBuilder(
int index) {
if (httpBuilder_ == null) {
return http_.get(index); } else {
return httpBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rules for HTTP traffic. HTTP routes will be
* applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway
* ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service
* entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching
* an incoming request is used.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public int getTlsCount() {
if (tlsBuilder_ == null) {
return tls_.size();
} else {
return tlsBuilder_.getCount();
}
}
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public Builder setTls(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute value) {
if (tlsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureTlsIsMutable();
tls_.set(index, value);
onChanged();
} else {
tlsBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public Builder addTls(istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute value) {
if (tlsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureTlsIsMutable();
tls_.add(value);
onChanged();
} else {
tlsBuilder_.addMessage(value);
}
return this;
}
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public Builder addTls(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute value) {
if (tlsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureTlsIsMutable();
tls_.add(index, value);
onChanged();
} else {
tlsBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute.Builder getTlsBuilder(
int index) {
return getTlsFieldBuilder().getBuilder(index);
}
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
*
* repeated .istio.networking.v1alpha3.TLSRoute tls = 5;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRouteOrBuilder getTlsOrBuilder(
int index) {
if (tlsBuilder_ == null) {
return tls_.get(index); } else {
return tlsBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rule for non-terminated TLS & HTTPS
* traffic. Routing is typically performed using the SNI value presented
* by the ClientHello message. TLS routes will be applied to platform
* service ports named 'https-*', 'tls-*', unterminated gateway ports using
* HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service
* entry ports using HTTPS/TLS protocols. The first rule matching an
* incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports
* without associated virtual service will be treated as opaque TCP
* traffic.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public int getTcpCount() {
if (tcpBuilder_ == null) {
return tcp_.size();
} else {
return tcpBuilder_.getCount();
}
}
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public Builder setTcp(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute value) {
if (tcpBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureTcpIsMutable();
tcp_.set(index, value);
onChanged();
} else {
tcpBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public Builder addTcp(istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute value) {
if (tcpBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureTcpIsMutable();
tcp_.add(value);
onChanged();
} else {
tcpBuilder_.addMessage(value);
}
return this;
}
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public Builder addTcp(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute value) {
if (tcpBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureTcpIsMutable();
tcp_.add(index, value);
onChanged();
} else {
tcpBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute.Builder getTcpBuilder(
int index) {
return getTcpFieldBuilder().getBuilder(index);
}
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
*
* repeated .istio.networking.v1alpha3.TCPRoute tcp = 4;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRouteOrBuilder getTcpOrBuilder(
int index) {
if (tcpBuilder_ == null) {
return tcp_.get(index); } else {
return tcpBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* An ordered list of route rules for opaque TCP traffic. TCP routes will
* be applied to any port that is not a HTTP or TLS port. The first rule
* matching an incoming request is used.
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 6;
*/
public int getExportToCount() {
return exportTo_.size();
}
/**
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 6;
*/
public Builder setExportTo(
int index, java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureExportToIsMutable();
exportTo_.set(index, value);
onChanged();
return this;
}
/**
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
* A list of namespaces to which this virtual service is exported. Exporting a
* virtual service allows it to be used by sidecars and gateways defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of virtual services
* across namespace boundaries.
* If no namespaces are specified then the virtual service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the virtual service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 6;
*/
public Builder addExportToBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
ensureExportToIsMutable();
exportTo_.add(value);
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:istio.networking.v1alpha3.VirtualService)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.VirtualService)
private static final istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService();
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public VirtualService parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new VirtualService(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.VirtualService getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface DestinationOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.Destination)
com.google.protobuf.MessageOrBuilder {
/**
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Destination indicates the network addressable service to which the
* request/connection will be sent after processing a routing rule. The
* destination.host should unambiguously refer to a service in the service
* registry. Istio's service registry is composed of all the services found
* in the platform's service registry (e.g., Kubernetes services, Consul
* services), as well as services declared through the
* [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry) resource.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of the
* actual namespace associated with the reviews service. _To avoid potential
* misconfigurations, it is recommended to always use fully qualified
* domain names over short names._
* The following Kubernetes example routes all traffic by default to pods
* of the reviews service with label "version: v1" (i.e., subset v1), and
* some to subset v2, in a Kubernetes environment.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: reviews-route
* namespace: foo
* spec:
* hosts:
* - reviews # interpreted as reviews.foo.svc.cluster.local
* http:
* - match:
* - uri:
* prefix: "/wpcatalog"
* - uri:
* prefix: "/consumercatalog"
* rewrite:
* uri: "/newcatalog"
* route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v2
* - route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v1
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: VirtualService
* metadata:
* name: reviews-route
* namespace: foo
* spec:
* hosts:
* - reviews # interpreted as reviews.foo.svc.cluster.local
* http:
* - match:
* - uri:
* prefix: "/wpcatalog"
* - uri:
* prefix: "/consumercatalog"
* rewrite:
* uri: "/newcatalog"
* route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v2
* - route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v1
* ```
* {{</tab>}}
* {{</tabset>}}
* And the associated DestinationRule
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: DestinationRule
* metadata:
* name: reviews-destination
* namespace: foo
* spec:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subsets:
* - name: v1
* labels:
* version: v1
* - name: v2
* labels:
* version: v2
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: DestinationRule
* metadata:
* name: reviews-destination
* namespace: foo
* spec:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subsets:
* - name: v1
* labels:
* version: v1
* - name: v2
* labels:
* version: v2
* ```
* {{</tab>}}
* {{</tabset>}}
* The following VirtualService sets a timeout of 5s for all calls to
* productpage.prod.svc.cluster.local service in Kubernetes. Notice that
* there are no subsets defined in this rule. Istio will fetch all
* instances of productpage.prod.svc.cluster.local service from the service
* registry and populate the sidecar's load balancing pool. Also, notice
* that this rule is set in the istio-system namespace but uses the fully
* qualified domain name of the productpage service,
* productpage.prod.svc.cluster.local. Therefore the rule's namespace does
* not have an impact in resolving the name of the productpage service.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: my-productpage-rule
* namespace: istio-system
* spec:
* hosts:
* - productpage.prod.svc.cluster.local # ignores rule namespace
* http:
* - timeout: 5s
* route:
* - destination:
* host: productpage.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: VirtualService
* metadata:
* name: my-productpage-rule
* namespace: istio-system
* spec:
* hosts:
* - productpage.prod.svc.cluster.local # ignores rule namespace
* http:
* - timeout: 5s
* route:
* - destination:
* host: productpage.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{</tabset>}}
* To control routing for traffic bound to services outside the mesh, external
* services must first be added to Istio's internal service registry using the
* ServiceEntry resource. VirtualServices can then be defined to control traffic
* bound to these external services. For example, the following rules define a
* Service for wikipedia.org and set a timeout of 5s for HTTP requests.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: ServiceEntry
* metadata:
* name: external-svc-wikipedia
* spec:
* hosts:
* - wikipedia.org
* location: MESH_EXTERNAL
* ports:
* - number: 80
* name: example-http
* protocol: HTTP
* resolution: DNS
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: my-wiki-rule
* spec:
* hosts:
* - wikipedia.org
* http:
* - timeout: 5s
* route:
* - destination:
* host: wikipedia.org
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: ServiceEntry
* metadata:
* name: external-svc-wikipedia
* spec:
* hosts:
* - wikipedia.org
* location: MESH_EXTERNAL
* ports:
* - number: 80
* name: example-http
* protocol: HTTP
* resolution: DNS
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: my-wiki-rule
* spec:
* hosts:
* - wikipedia.org
* http:
* - timeout: 5s
* route:
* - destination:
* host: wikipedia.org
* ```
* {{</tab>}}
* {{</tabset>}}
*
*
* Protobuf type {@code istio.networking.v1alpha3.Destination}
*/
public static final class Destination extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.Destination)
DestinationOrBuilder {
private static final long serialVersionUID = 0L;
// Use Destination.newBuilder() to construct.
private Destination(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private Destination() {
host_ = "";
subset_ = "";
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new Destination();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private Destination(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
java.lang.String s = input.readStringRequireUtf8();
host_ = s;
break;
}
case 18: {
java.lang.String s = input.readStringRequireUtf8();
subset_ = s;
break;
}
case 26: {
istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector.Builder subBuilder = null;
if (port_ != null) {
subBuilder = port_.toBuilder();
}
port_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(port_);
port_ = subBuilder.buildPartial();
}
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_Destination_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_Destination_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.class, istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.Builder.class);
}
public static final int HOST_FIELD_NUMBER = 1;
private volatile java.lang.Object host_;
/**
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
*
* string host = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public com.google.protobuf.ByteString
getHostBytes() {
java.lang.Object ref = host_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
host_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
public static final int SUBSET_FIELD_NUMBER = 2;
private volatile java.lang.Object subset_;
/**
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
*
* string subset = 2;
*/
public com.google.protobuf.ByteString
getSubsetBytes() {
java.lang.Object ref = subset_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
subset_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
public static final int PORT_FIELD_NUMBER = 3;
private istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector port_;
/**
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
*
* .istio.networking.v1alpha3.PortSelector port = 3;
*/
public boolean hasPort() {
return port_ != null;
}
/**
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
*
* .istio.networking.v1alpha3.PortSelector port = 3;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelectorOrBuilder getPortOrBuilder() {
return getPort();
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (!getHostBytes().isEmpty()) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 1, host_);
}
if (!getSubsetBytes().isEmpty()) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 2, subset_);
}
if (port_ != null) {
output.writeMessage(3, getPort());
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (!getHostBytes().isEmpty()) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, host_);
}
if (!getSubsetBytes().isEmpty()) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, subset_);
}
if (port_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, getPort());
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof istio.networking.v1alpha3.VirtualServiceOuterClass.Destination)) {
return super.equals(obj);
}
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination other = (istio.networking.v1alpha3.VirtualServiceOuterClass.Destination) obj;
if (!getHost()
.equals(other.getHost())) return false;
if (!getSubset()
.equals(other.getSubset())) return false;
if (hasPort() != other.hasPort()) return false;
if (hasPort()) {
if (!getPort()
.equals(other.getPort())) return false;
}
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + HOST_FIELD_NUMBER;
hash = (53 * hash) + getHost().hashCode();
hash = (37 * hash) + SUBSET_FIELD_NUMBER;
hash = (53 * hash) + getSubset().hashCode();
if (hasPort()) {
hash = (37 * hash) + PORT_FIELD_NUMBER;
hash = (53 * hash) + getPort().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(istio.networking.v1alpha3.VirtualServiceOuterClass.Destination prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* Destination indicates the network addressable service to which the
* request/connection will be sent after processing a routing rule. The
* destination.host should unambiguously refer to a service in the service
* registry. Istio's service registry is composed of all the services found
* in the platform's service registry (e.g., Kubernetes services, Consul
* services), as well as services declared through the
* [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry) resource.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of the
* actual namespace associated with the reviews service. _To avoid potential
* misconfigurations, it is recommended to always use fully qualified
* domain names over short names._
* The following Kubernetes example routes all traffic by default to pods
* of the reviews service with label "version: v1" (i.e., subset v1), and
* some to subset v2, in a Kubernetes environment.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: reviews-route
* namespace: foo
* spec:
* hosts:
* - reviews # interpreted as reviews.foo.svc.cluster.local
* http:
* - match:
* - uri:
* prefix: "/wpcatalog"
* - uri:
* prefix: "/consumercatalog"
* rewrite:
* uri: "/newcatalog"
* route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v2
* - route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v1
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: VirtualService
* metadata:
* name: reviews-route
* namespace: foo
* spec:
* hosts:
* - reviews # interpreted as reviews.foo.svc.cluster.local
* http:
* - match:
* - uri:
* prefix: "/wpcatalog"
* - uri:
* prefix: "/consumercatalog"
* rewrite:
* uri: "/newcatalog"
* route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v2
* - route:
* - destination:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subset: v1
* ```
* {{</tab>}}
* {{</tabset>}}
* And the associated DestinationRule
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: DestinationRule
* metadata:
* name: reviews-destination
* namespace: foo
* spec:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subsets:
* - name: v1
* labels:
* version: v1
* - name: v2
* labels:
* version: v2
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: DestinationRule
* metadata:
* name: reviews-destination
* namespace: foo
* spec:
* host: reviews # interpreted as reviews.foo.svc.cluster.local
* subsets:
* - name: v1
* labels:
* version: v1
* - name: v2
* labels:
* version: v2
* ```
* {{</tab>}}
* {{</tabset>}}
* The following VirtualService sets a timeout of 5s for all calls to
* productpage.prod.svc.cluster.local service in Kubernetes. Notice that
* there are no subsets defined in this rule. Istio will fetch all
* instances of productpage.prod.svc.cluster.local service from the service
* registry and populate the sidecar's load balancing pool. Also, notice
* that this rule is set in the istio-system namespace but uses the fully
* qualified domain name of the productpage service,
* productpage.prod.svc.cluster.local. Therefore the rule's namespace does
* not have an impact in resolving the name of the productpage service.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: my-productpage-rule
* namespace: istio-system
* spec:
* hosts:
* - productpage.prod.svc.cluster.local # ignores rule namespace
* http:
* - timeout: 5s
* route:
* - destination:
* host: productpage.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: VirtualService
* metadata:
* name: my-productpage-rule
* namespace: istio-system
* spec:
* hosts:
* - productpage.prod.svc.cluster.local # ignores rule namespace
* http:
* - timeout: 5s
* route:
* - destination:
* host: productpage.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{</tabset>}}
* To control routing for traffic bound to services outside the mesh, external
* services must first be added to Istio's internal service registry using the
* ServiceEntry resource. VirtualServices can then be defined to control traffic
* bound to these external services. For example, the following rules define a
* Service for wikipedia.org and set a timeout of 5s for HTTP requests.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: ServiceEntry
* metadata:
* name: external-svc-wikipedia
* spec:
* hosts:
* - wikipedia.org
* location: MESH_EXTERNAL
* ports:
* - number: 80
* name: example-http
* protocol: HTTP
* resolution: DNS
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: my-wiki-rule
* spec:
* hosts:
* - wikipedia.org
* http:
* - timeout: 5s
* route:
* - destination:
* host: wikipedia.org
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: ServiceEntry
* metadata:
* name: external-svc-wikipedia
* spec:
* hosts:
* - wikipedia.org
* location: MESH_EXTERNAL
* ports:
* - number: 80
* name: example-http
* protocol: HTTP
* resolution: DNS
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: my-wiki-rule
* spec:
* hosts:
* - wikipedia.org
* http:
* - timeout: 5s
* route:
* - destination:
* host: wikipedia.org
* ```
* {{</tab>}}
* {{</tabset>}}
*
*
* Protobuf type {@code istio.networking.v1alpha3.Destination}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:istio.networking.v1alpha3.Destination)
istio.networking.v1alpha3.VirtualServiceOuterClass.DestinationOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_Destination_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_Destination_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.class, istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.Builder.class);
}
// Construct using istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
host_ = "";
subset_ = "";
if (portBuilder_ == null) {
port_ = null;
} else {
port_ = null;
portBuilder_ = null;
}
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_Destination_descriptor;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.Destination getDefaultInstanceForType() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.getDefaultInstance();
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.Destination build() {
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.Destination buildPartial() {
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination result = new istio.networking.v1alpha3.VirtualServiceOuterClass.Destination(this);
result.host_ = host_;
result.subset_ = subset_;
if (portBuilder_ == null) {
result.port_ = port_;
} else {
result.port_ = portBuilder_.build();
}
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof istio.networking.v1alpha3.VirtualServiceOuterClass.Destination) {
return mergeFrom((istio.networking.v1alpha3.VirtualServiceOuterClass.Destination)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(istio.networking.v1alpha3.VirtualServiceOuterClass.Destination other) {
if (other == istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.getDefaultInstance()) return this;
if (!other.getHost().isEmpty()) {
host_ = other.host_;
onChanged();
}
if (!other.getSubset().isEmpty()) {
subset_ = other.subset_;
onChanged();
}
if (other.hasPort()) {
mergePort(other.getPort());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (istio.networking.v1alpha3.VirtualServiceOuterClass.Destination) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private java.lang.Object host_ = "";
/**
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a service from the service registry. Service
* names are looked up from the platform's service registry (e.g.,
* Kubernetes services, Consul services, etc.) and from the hosts
* declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/service-entry/#ServiceEntry). Traffic forwarded to
* destinations that are not found in either of the two, will be dropped.
* *Note for Kubernetes users*: When short names are used (e.g. "reviews"
* instead of "reviews.default.svc.cluster.local"), Istio will interpret
* the short name based on the namespace of the rule, not the service. A
* rule in the "default" namespace containing a host "reviews will be
* interpreted as "reviews.default.svc.cluster.local", irrespective of
* the actual namespace associated with the reviews service. To avoid
* potential misconfiguration, it is recommended to always use fully
* qualified domain names over short names.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* The name of a subset within the service. Applicable only to services
* within the mesh. The subset must be defined in a corresponding
* DestinationRule.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
*
* .istio.networking.v1alpha3.PortSelector port = 3;
*/
public Builder setPort(istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector value) {
if (portBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
port_ = value;
onChanged();
} else {
portBuilder_.setMessage(value);
}
return this;
}
/**
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
*
* .istio.networking.v1alpha3.PortSelector port = 3;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector.Builder getPortBuilder() {
onChanged();
return getPortFieldBuilder().getBuilder();
}
/**
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
* Specifies the port on the host that is being addressed. If a service
* exposes only a single port it is not required to explicitly select the
* port.
*
*
* .istio.networking.v1alpha3.PortSelector port = 3;
*/
private com.google.protobuf.SingleFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector, istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelectorOrBuilder>
getPortFieldBuilder() {
if (portBuilder_ == null) {
portBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector, istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelector.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.PortSelectorOrBuilder>(
getPort(),
getParentForChildren(),
isClean());
port_ = null;
}
return portBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:istio.networking.v1alpha3.Destination)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Destination)
private static final istio.networking.v1alpha3.VirtualServiceOuterClass.Destination DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.VirtualServiceOuterClass.Destination();
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Destination getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public Destination parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new Destination(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.Destination getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface HTTPRouteOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.HTTPRoute)
com.google.protobuf.MessageOrBuilder {
/**
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
int getMatchCount();
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequestOrBuilder getMatchOrBuilder(
int index);
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Describes match conditions and actions for routing HTTP/1.1, HTTP2, and
* gRPC traffic. See VirtualService for usage examples.
*
*
* Protobuf type {@code istio.networking.v1alpha3.HTTPRoute}
*/
public static final class HTTPRoute extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.HTTPRoute)
HTTPRouteOrBuilder {
private static final long serialVersionUID = 0L;
// Use HTTPRoute.newBuilder() to construct.
private HTTPRoute(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private HTTPRoute() {
name_ = "";
match_ = java.util.Collections.emptyList();
route_ = java.util.Collections.emptyList();
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new HTTPRoute();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private HTTPRoute(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
match_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000001;
}
match_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.parser(), extensionRegistry));
break;
}
case 18: {
if (!((mutable_bitField0_ & 0x00000002) != 0)) {
route_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000002;
}
route_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteDestination.parser(), extensionRegistry));
break;
}
case 26: {
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRedirect.Builder subBuilder = null;
if (redirect_ != null) {
subBuilder = redirect_.toBuilder();
}
redirect_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRedirect.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(redirect_);
redirect_ = subBuilder.buildPartial();
}
break;
}
case 34: {
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRewrite.Builder subBuilder = null;
if (rewrite_ != null) {
subBuilder = rewrite_.toBuilder();
}
rewrite_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRewrite.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(rewrite_);
rewrite_ = subBuilder.buildPartial();
}
break;
}
case 50: {
com.google.protobuf.Duration.Builder subBuilder = null;
if (timeout_ != null) {
subBuilder = timeout_.toBuilder();
}
timeout_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(timeout_);
timeout_ = subBuilder.buildPartial();
}
break;
}
case 58: {
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRetry.Builder subBuilder = null;
if (retries_ != null) {
subBuilder = retries_.toBuilder();
}
retries_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRetry.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(retries_);
retries_ = subBuilder.buildPartial();
}
break;
}
case 66: {
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPFaultInjection.Builder subBuilder = null;
if (fault_ != null) {
subBuilder = fault_.toBuilder();
}
fault_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPFaultInjection.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(fault_);
fault_ = subBuilder.buildPartial();
}
break;
}
case 74: {
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.Builder subBuilder = null;
if (mirror_ != null) {
subBuilder = mirror_.toBuilder();
}
mirror_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(mirror_);
mirror_ = subBuilder.buildPartial();
}
break;
}
case 82: {
istio.networking.v1alpha3.VirtualServiceOuterClass.CorsPolicy.Builder subBuilder = null;
if (corsPolicy_ != null) {
subBuilder = corsPolicy_.toBuilder();
}
corsPolicy_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.CorsPolicy.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(corsPolicy_);
corsPolicy_ = subBuilder.buildPartial();
}
break;
}
case 130: {
istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.Builder subBuilder = null;
if (headers_ != null) {
subBuilder = headers_.toBuilder();
}
headers_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(headers_);
headers_ = subBuilder.buildPartial();
}
break;
}
case 138: {
java.lang.String s = input.readStringRequireUtf8();
name_ = s;
break;
}
case 146: {
com.google.protobuf.UInt32Value.Builder subBuilder = null;
if (mirrorPercent_ != null) {
subBuilder = mirrorPercent_.toBuilder();
}
mirrorPercent_ = input.readMessage(com.google.protobuf.UInt32Value.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(mirrorPercent_);
mirrorPercent_ = subBuilder.buildPartial();
}
break;
}
case 154: {
istio.networking.v1alpha3.VirtualServiceOuterClass.Percent.Builder subBuilder = null;
if (mirrorPercentage_ != null) {
subBuilder = mirrorPercentage_.toBuilder();
}
mirrorPercentage_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.Percent.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(mirrorPercentage_);
mirrorPercentage_ = subBuilder.buildPartial();
}
break;
}
case 162: {
istio.networking.v1alpha3.VirtualServiceOuterClass.Delegate.Builder subBuilder = null;
if (delegate_ != null) {
subBuilder = delegate_.toBuilder();
}
delegate_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.Delegate.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(delegate_);
delegate_ = subBuilder.buildPartial();
}
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
match_ = java.util.Collections.unmodifiableList(match_);
}
if (((mutable_bitField0_ & 0x00000002) != 0)) {
route_ = java.util.Collections.unmodifiableList(route_);
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPRoute_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPRoute_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRoute.class, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRoute.Builder.class);
}
public static final int NAME_FIELD_NUMBER = 17;
private volatile java.lang.Object name_;
/**
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
*
* string name = 17;
*/
public com.google.protobuf.ByteString
getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
public static final int MATCH_FIELD_NUMBER = 1;
private java.util.List match_;
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public java.util.List getMatchList() {
return match_;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public java.util.List extends istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequestOrBuilder>
getMatchOrBuilderList() {
return match_;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public int getMatchCount() {
return match_.size();
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest getMatch(int index) {
return match_.get(index);
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequestOrBuilder getMatchOrBuilder(
int index) {
return match_.get(index);
}
public static final int ROUTE_FIELD_NUMBER = 2;
private java.util.List route_;
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public int getRouteCount() {
return route_.size();
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteDestinationOrBuilder getRouteOrBuilder(
int index) {
return route_.get(index);
}
public static final int REDIRECT_FIELD_NUMBER = 3;
private istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRedirect redirect_;
/**
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
*
* .istio.networking.v1alpha3.HTTPRedirect redirect = 3;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRedirectOrBuilder getRedirectOrBuilder() {
return getRedirect();
}
public static final int DELEGATE_FIELD_NUMBER = 20;
private istio.networking.v1alpha3.VirtualServiceOuterClass.Delegate delegate_;
/**
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
*
* .istio.networking.v1alpha3.Delegate delegate = 20;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.DelegateOrBuilder getDelegateOrBuilder() {
return getDelegate();
}
public static final int REWRITE_FIELD_NUMBER = 4;
private istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRewrite rewrite_;
/**
*
* Rewrite HTTP URIs and Authority headers. Rewrite cannot be used with
* Redirect primitive. Rewrite will be performed before forwarding.
*
*
* .istio.networking.v1alpha3.HTTPRetry retries = 7;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRetryOrBuilder getRetriesOrBuilder() {
return getRetries();
}
public static final int FAULT_FIELD_NUMBER = 8;
private istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPFaultInjection fault_;
/**
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
*
* .istio.networking.v1alpha3.HTTPFaultInjection fault = 8;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPFaultInjectionOrBuilder getFaultOrBuilder() {
return getFault();
}
public static final int MIRROR_FIELD_NUMBER = 9;
private istio.networking.v1alpha3.VirtualServiceOuterClass.Destination mirror_;
/**
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
*
* .istio.networking.v1alpha3.Destination mirror = 9;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.DestinationOrBuilder getMirrorOrBuilder() {
return getMirror();
}
public static final int MIRROR_PERCENT_FIELD_NUMBER = 18;
private com.google.protobuf.UInt32Value mirrorPercent_;
/**
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
*
* .google.protobuf.UInt32Value mirror_percent = 18 [deprecated = true];
*/
@java.lang.Deprecated public com.google.protobuf.UInt32ValueOrBuilder getMirrorPercentOrBuilder() {
return getMirrorPercent();
}
public static final int MIRROR_PERCENTAGE_FIELD_NUMBER = 19;
private istio.networking.v1alpha3.VirtualServiceOuterClass.Percent mirrorPercentage_;
/**
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
*
* .istio.networking.v1alpha3.Percent mirror_percentage = 19;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.PercentOrBuilder getMirrorPercentageOrBuilder() {
return getMirrorPercentage();
}
public static final int CORS_POLICY_FIELD_NUMBER = 10;
private istio.networking.v1alpha3.VirtualServiceOuterClass.CorsPolicy corsPolicy_;
/**
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
*
* .istio.networking.v1alpha3.CorsPolicy cors_policy = 10;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.CorsPolicyOrBuilder getCorsPolicyOrBuilder() {
return getCorsPolicy();
}
public static final int HEADERS_FIELD_NUMBER = 16;
private istio.networking.v1alpha3.VirtualServiceOuterClass.Headers headers_;
/**
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
*
* string name = 17;
*/
public Builder setName(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
name_ = value;
onChanged();
return this;
}
/**
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
*
* string name = 17;
*/
public Builder clearName() {
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
/**
*
* The name assigned to the route for debugging purposes. The
* route's name will be concatenated with the match's name and will
* be logged in the access logs for requests matching this
* route/match.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public java.util.List getMatchList() {
if (matchBuilder_ == null) {
return java.util.Collections.unmodifiableList(match_);
} else {
return matchBuilder_.getMessageList();
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public int getMatchCount() {
if (matchBuilder_ == null) {
return match_.size();
} else {
return matchBuilder_.getCount();
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest getMatch(int index) {
if (matchBuilder_ == null) {
return match_.get(index);
} else {
return matchBuilder_.getMessage(index);
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public Builder setMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.set(index, value);
onChanged();
} else {
matchBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public Builder setMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.Builder builderForValue) {
if (matchBuilder_ == null) {
ensureMatchIsMutable();
match_.set(index, builderForValue.build());
onChanged();
} else {
matchBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public Builder addMatch(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.add(value);
onChanged();
} else {
matchBuilder_.addMessage(value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public Builder addMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.add(index, value);
onChanged();
} else {
matchBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public Builder addMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.Builder builderForValue) {
if (matchBuilder_ == null) {
ensureMatchIsMutable();
match_.add(index, builderForValue.build());
onChanged();
} else {
matchBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.Builder getMatchBuilder(
int index) {
return getMatchFieldBuilder().getBuilder(index);
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequestOrBuilder getMatchOrBuilder(
int index) {
if (matchBuilder_ == null) {
return match_.get(index); } else {
return matchBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public java.util.List extends istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequestOrBuilder>
getMatchOrBuilderList() {
if (matchBuilder_ != null) {
return matchBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(match_);
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.Builder addMatchBuilder() {
return getMatchFieldBuilder().addBuilder(
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.getDefaultInstance());
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.HTTPMatchRequest match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.Builder addMatchBuilder(
int index) {
return getMatchFieldBuilder().addBuilder(
index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.getDefaultInstance());
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public int getRouteCount() {
if (routeBuilder_ == null) {
return route_.size();
} else {
return routeBuilder_.getCount();
}
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public Builder setRoute(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteDestination value) {
if (routeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureRouteIsMutable();
route_.set(index, value);
onChanged();
} else {
routeBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public Builder addRoute(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteDestination value) {
if (routeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureRouteIsMutable();
route_.add(value);
onChanged();
} else {
routeBuilder_.addMessage(value);
}
return this;
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public Builder addRoute(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteDestination value) {
if (routeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureRouteIsMutable();
route_.add(index, value);
onChanged();
} else {
routeBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteDestination.Builder getRouteBuilder(
int index) {
return getRouteFieldBuilder().getBuilder(index);
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
*
* repeated .istio.networking.v1alpha3.HTTPRouteDestination route = 2;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRouteDestinationOrBuilder getRouteOrBuilder(
int index) {
if (routeBuilder_ == null) {
return route_.get(index); } else {
return routeBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. The
* forwarding target can be one of several versions of a service (see
* glossary in beginning of document). Weights associated with the
* service version determine the proportion of traffic it receives.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
*
* .istio.networking.v1alpha3.HTTPRedirect redirect = 3;
*/
public Builder setRedirect(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPRedirect value) {
if (redirectBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
redirect_ = value;
onChanged();
} else {
redirectBuilder_.setMessage(value);
}
return this;
}
/**
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* A HTTP rule can either redirect or forward (default) traffic. If
* traffic passthrough option is specified in the rule,
* route/redirect will be ignored. The redirect primitive can be used to
* send a HTTP 301 redirect to a different URI or Authority.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
*
* .istio.networking.v1alpha3.Delegate delegate = 20;
*/
public Builder setDelegate(istio.networking.v1alpha3.VirtualServiceOuterClass.Delegate value) {
if (delegateBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
delegate_ = value;
onChanged();
} else {
delegateBuilder_.setMessage(value);
}
return this;
}
/**
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Delegate is used to specify the particular VirtualService which
* can be used to define delegate HTTPRoute.
* It can be set only when `Route` and `Redirect` are empty, and the route rules of the
* delegate VirtualService will be merged with that in the current one.
* **NOTE**:
* 1. Only one level delegation is supported.
* 2. The delegate's HTTPMatchRequest must be a strict subset of the root's,
* otherwise there is a conflict and the HTTPRoute will not take effect.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
*
* .istio.networking.v1alpha3.HTTPFaultInjection fault = 8;
*/
public Builder setFault(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPFaultInjection value) {
if (faultBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
fault_ = value;
onChanged();
} else {
faultBuilder_.setMessage(value);
}
return this;
}
/**
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Fault injection policy to apply on HTTP traffic at the client side.
* Note that timeouts or retries will not be enabled when faults are
* enabled on the client side.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
*
* .istio.networking.v1alpha3.Destination mirror = 9;
*/
public Builder setMirror(istio.networking.v1alpha3.VirtualServiceOuterClass.Destination value) {
if (mirrorBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
mirror_ = value;
onChanged();
} else {
mirrorBuilder_.setMessage(value);
}
return this;
}
/**
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Mirror HTTP traffic to a another destination in addition to forwarding
* the requests to the intended destination. Mirrored traffic is on a
* best effort basis where the sidecar/gateway will not wait for the
* mirrored cluster to respond before returning the response from the
* original destination. Statistics will be generated for the mirrored
* destination.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* Use of integer `mirror_percent` value is deprecated. Use the
* double `mirror_percentage` field instead
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
*
* .istio.networking.v1alpha3.Percent mirror_percentage = 19;
*/
public Builder setMirrorPercentage(istio.networking.v1alpha3.VirtualServiceOuterClass.Percent value) {
if (mirrorPercentageBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
mirrorPercentage_ = value;
onChanged();
} else {
mirrorPercentageBuilder_.setMessage(value);
}
return this;
}
/**
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Percentage of the traffic to be mirrored by the `mirror` field.
* If this field is absent, all the traffic (100%) will be mirrored.
* Max value is 100.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
*
* .istio.networking.v1alpha3.CorsPolicy cors_policy = 10;
*/
public Builder setCorsPolicy(istio.networking.v1alpha3.VirtualServiceOuterClass.CorsPolicy value) {
if (corsPolicyBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
corsPolicy_ = value;
onChanged();
} else {
corsPolicyBuilder_.setMessage(value);
}
return this;
}
/**
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Cross-Origin Resource Sharing policy (CORS). Refer to
* [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* for further details about cross origin resource sharing.
*
* Header manipulation rules to apply before returning a response
* to the caller
*
*
* .istio.networking.v1alpha3.Headers.HeaderOperations response = 2;
*/
private com.google.protobuf.SingleFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.HeaderOperations, istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.HeaderOperations.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.HeaderOperationsOrBuilder>
getResponseFieldBuilder() {
if (responseBuilder_ == null) {
responseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.HeaderOperations, istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.HeaderOperations.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.Headers.HeaderOperationsOrBuilder>(
getResponse(),
getParentForChildren(),
isClean());
response_ = null;
}
return responseBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:istio.networking.v1alpha3.Headers)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Headers)
private static final istio.networking.v1alpha3.VirtualServiceOuterClass.Headers DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.VirtualServiceOuterClass.Headers();
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.Headers getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public Headers parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new Headers(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.Headers getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface TLSRouteOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.TLSRoute)
com.google.protobuf.MessageOrBuilder {
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
int getMatchCount();
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributesOrBuilder getMatchOrBuilder(
int index);
/**
*
* The destination to which the connection should be forwarded to.
*
*
* Protobuf type {@code istio.networking.v1alpha3.TLSRoute}
*/
public static final class TLSRoute extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.TLSRoute)
TLSRouteOrBuilder {
private static final long serialVersionUID = 0L;
// Use TLSRoute.newBuilder() to construct.
private TLSRoute(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private TLSRoute() {
match_ = java.util.Collections.emptyList();
route_ = java.util.Collections.emptyList();
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new TLSRoute();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private TLSRoute(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
match_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000001;
}
match_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes.parser(), extensionRegistry));
break;
}
case 18: {
if (!((mutable_bitField0_ & 0x00000002) != 0)) {
route_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000002;
}
route_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.parser(), extensionRegistry));
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
match_ = java.util.Collections.unmodifiableList(match_);
}
if (((mutable_bitField0_ & 0x00000002) != 0)) {
route_ = java.util.Collections.unmodifiableList(route_);
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_TLSRoute_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_TLSRoute_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute.class, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute.Builder.class);
}
public static final int MATCH_FIELD_NUMBER = 1;
private java.util.List match_;
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public java.util.List getMatchList() {
return match_;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public int getMatchCount() {
return match_.size();
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributesOrBuilder getMatchOrBuilder(
int index) {
return match_.get(index);
}
public static final int ROUTE_FIELD_NUMBER = 2;
private java.util.List route_;
/**
*
* The destination to which the connection should be forwarded to.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public int getMatchCount() {
if (matchBuilder_ == null) {
return match_.size();
} else {
return matchBuilder_.getCount();
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public Builder setMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.set(index, value);
onChanged();
} else {
matchBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public Builder setMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes.Builder builderForValue) {
if (matchBuilder_ == null) {
ensureMatchIsMutable();
match_.set(index, builderForValue.build());
onChanged();
} else {
matchBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public Builder addMatch(istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.add(value);
onChanged();
} else {
matchBuilder_.addMessage(value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public Builder addMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.add(index, value);
onChanged();
} else {
matchBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public Builder addMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes.Builder builderForValue) {
if (matchBuilder_ == null) {
ensureMatchIsMutable();
match_.add(index, builderForValue.build());
onChanged();
} else {
matchBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes.Builder getMatchBuilder(
int index) {
return getMatchFieldBuilder().getBuilder(index);
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributesOrBuilder getMatchOrBuilder(
int index) {
if (matchBuilder_ == null) {
return match_.get(index); } else {
return matchBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.TLSMatchAttributes match = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes.Builder addMatchBuilder(
int index) {
return getMatchFieldBuilder().addBuilder(
index, istio.networking.v1alpha3.VirtualServiceOuterClass.TLSMatchAttributes.getDefaultInstance());
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* The destination to which the connection should be forwarded to.
*
*
* repeated .istio.networking.v1alpha3.RouteDestination route = 2;
*/
public java.util.List
getRouteBuilderList() {
return getRouteFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestinationOrBuilder>
getRouteFieldBuilder() {
if (routeBuilder_ == null) {
routeBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestinationOrBuilder>(
route_,
((bitField0_ & 0x00000002) != 0),
getParentForChildren(),
isClean());
route_ = null;
}
return routeBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:istio.networking.v1alpha3.TLSRoute)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.TLSRoute)
private static final istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute();
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public TLSRoute parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new TLSRoute(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.TLSRoute getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface TCPRouteOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.TCPRoute)
com.google.protobuf.MessageOrBuilder {
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
int getMatchCount();
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributesOrBuilder getMatchOrBuilder(
int index);
/**
*
* The destination to which the connection should be forwarded to.
*
*
* Protobuf type {@code istio.networking.v1alpha3.TCPRoute}
*/
public static final class TCPRoute extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.TCPRoute)
TCPRouteOrBuilder {
private static final long serialVersionUID = 0L;
// Use TCPRoute.newBuilder() to construct.
private TCPRoute(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private TCPRoute() {
match_ = java.util.Collections.emptyList();
route_ = java.util.Collections.emptyList();
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new TCPRoute();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private TCPRoute(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
match_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000001;
}
match_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.parser(), extensionRegistry));
break;
}
case 18: {
if (!((mutable_bitField0_ & 0x00000002) != 0)) {
route_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000002;
}
route_.add(
input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.parser(), extensionRegistry));
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
match_ = java.util.Collections.unmodifiableList(match_);
}
if (((mutable_bitField0_ & 0x00000002) != 0)) {
route_ = java.util.Collections.unmodifiableList(route_);
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_TCPRoute_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_TCPRoute_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute.class, istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute.Builder.class);
}
public static final int MATCH_FIELD_NUMBER = 1;
private java.util.List match_;
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public java.util.List getMatchList() {
return match_;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public java.util.List extends istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributesOrBuilder>
getMatchOrBuilderList() {
return match_;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public int getMatchCount() {
return match_.size();
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes getMatch(int index) {
return match_.get(index);
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributesOrBuilder getMatchOrBuilder(
int index) {
return match_.get(index);
}
public static final int ROUTE_FIELD_NUMBER = 2;
private java.util.List route_;
/**
*
* The destination to which the connection should be forwarded to.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public java.util.List getMatchList() {
if (matchBuilder_ == null) {
return java.util.Collections.unmodifiableList(match_);
} else {
return matchBuilder_.getMessageList();
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public int getMatchCount() {
if (matchBuilder_ == null) {
return match_.size();
} else {
return matchBuilder_.getCount();
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes getMatch(int index) {
if (matchBuilder_ == null) {
return match_.get(index);
} else {
return matchBuilder_.getMessage(index);
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public Builder setMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.set(index, value);
onChanged();
} else {
matchBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public Builder setMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.Builder builderForValue) {
if (matchBuilder_ == null) {
ensureMatchIsMutable();
match_.set(index, builderForValue.build());
onChanged();
} else {
matchBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public Builder addMatch(istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.add(value);
onChanged();
} else {
matchBuilder_.addMessage(value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public Builder addMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes value) {
if (matchBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMatchIsMutable();
match_.add(index, value);
onChanged();
} else {
matchBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public Builder addMatch(
int index, istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.Builder builderForValue) {
if (matchBuilder_ == null) {
ensureMatchIsMutable();
match_.add(index, builderForValue.build());
onChanged();
} else {
matchBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.Builder getMatchBuilder(
int index) {
return getMatchFieldBuilder().getBuilder(index);
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributesOrBuilder getMatchOrBuilder(
int index) {
if (matchBuilder_ == null) {
return match_.get(index); } else {
return matchBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public java.util.List extends istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributesOrBuilder>
getMatchOrBuilderList() {
if (matchBuilder_ != null) {
return matchBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(match_);
}
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.Builder addMatchBuilder() {
return getMatchFieldBuilder().addBuilder(
istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.getDefaultInstance());
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
*
* repeated .istio.networking.v1alpha3.L4MatchAttributes match = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.Builder addMatchBuilder(
int index) {
return getMatchFieldBuilder().addBuilder(
index, istio.networking.v1alpha3.VirtualServiceOuterClass.L4MatchAttributes.getDefaultInstance());
}
/**
*
* Match conditions to be satisfied for the rule to be
* activated. All conditions inside a single match block have AND
* semantics, while the list of match blocks have OR semantics. The rule
* is matched if any one of the match blocks succeed.
*
* The destination to which the connection should be forwarded to.
*
*
* repeated .istio.networking.v1alpha3.RouteDestination route = 2;
*/
public java.util.List
getRouteBuilderList() {
return getRouteFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestinationOrBuilder>
getRouteFieldBuilder() {
if (routeBuilder_ == null) {
routeBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestinationOrBuilder>(
route_,
((bitField0_ & 0x00000002) != 0),
getParentForChildren(),
isClean());
route_ = null;
}
return routeBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:istio.networking.v1alpha3.TCPRoute)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.TCPRoute)
private static final istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute();
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public TCPRoute parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new TCPRoute(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.TCPRoute getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface HTTPMatchRequestOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.HTTPMatchRequest)
com.google.protobuf.MessageOrBuilder {
/**
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* Specifies the ports on the host that is being addressed. Many services
* only expose a single port or label ports with the protocols they support,
* in these cases it is not required to explicitly select the port.
*
*
* uint32 port = 6;
*/
int getPort();
/**
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Flag to specify whether the URI matching should be case-insensitive.
* **Note:** The case will be ignored only in the case of `exact` and `prefix`
* URI matches.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* HttpMatchRequest specifies a set of criterion to be met in order for the
* rule to be applied to the HTTP request. For example, the following
* restricts the rule to match only requests where the URL path
* starts with /ratings/v2/ and the request contains a custom `end-user` header
* with value `jason`.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: ratings-route
* spec:
* hosts:
* - ratings.prod.svc.cluster.local
* http:
* - match:
* - headers:
* end-user:
* exact: jason
* uri:
* prefix: "/ratings/v2/"
* ignoreUriCase: true
* route:
* - destination:
* host: ratings.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: VirtualService
* metadata:
* name: ratings-route
* spec:
* hosts:
* - ratings.prod.svc.cluster.local
* http:
* - match:
* - headers:
* end-user:
* exact: jason
* uri:
* prefix: "/ratings/v2/"
* ignoreUriCase: true
* route:
* - destination:
* host: ratings.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{</tabset>}}
* HTTPMatchRequest CANNOT be empty.
* **Note:** No regex string match can be set when delegate VirtualService is specified.
*
*
* Protobuf type {@code istio.networking.v1alpha3.HTTPMatchRequest}
*/
public static final class HTTPMatchRequest extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.HTTPMatchRequest)
HTTPMatchRequestOrBuilder {
private static final long serialVersionUID = 0L;
// Use HTTPMatchRequest.newBuilder() to construct.
private HTTPMatchRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private HTTPMatchRequest() {
name_ = "";
gateways_ = com.google.protobuf.LazyStringArrayList.EMPTY;
sourceNamespace_ = "";
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new HTTPMatchRequest();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private HTTPMatchRequest(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.Builder subBuilder = null;
if (uri_ != null) {
subBuilder = uri_.toBuilder();
}
uri_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(uri_);
uri_ = subBuilder.buildPartial();
}
break;
}
case 18: {
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.Builder subBuilder = null;
if (scheme_ != null) {
subBuilder = scheme_.toBuilder();
}
scheme_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(scheme_);
scheme_ = subBuilder.buildPartial();
}
break;
}
case 26: {
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.Builder subBuilder = null;
if (method_ != null) {
subBuilder = method_.toBuilder();
}
method_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(method_);
method_ = subBuilder.buildPartial();
}
break;
}
case 34: {
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.Builder subBuilder = null;
if (authority_ != null) {
subBuilder = authority_.toBuilder();
}
authority_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(authority_);
authority_ = subBuilder.buildPartial();
}
break;
}
case 42: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
headers_ = com.google.protobuf.MapField.newMapField(
HeadersDefaultEntryHolder.defaultEntry);
mutable_bitField0_ |= 0x00000001;
}
com.google.protobuf.MapEntry
headers__ = input.readMessage(
HeadersDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
headers_.getMutableMap().put(
headers__.getKey(), headers__.getValue());
break;
}
case 48: {
port_ = input.readUInt32();
break;
}
case 58: {
if (!((mutable_bitField0_ & 0x00000002) != 0)) {
sourceLabels_ = com.google.protobuf.MapField.newMapField(
SourceLabelsDefaultEntryHolder.defaultEntry);
mutable_bitField0_ |= 0x00000002;
}
com.google.protobuf.MapEntry
sourceLabels__ = input.readMessage(
SourceLabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
sourceLabels_.getMutableMap().put(
sourceLabels__.getKey(), sourceLabels__.getValue());
break;
}
case 66: {
java.lang.String s = input.readStringRequireUtf8();
if (!((mutable_bitField0_ & 0x00000004) != 0)) {
gateways_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000004;
}
gateways_.add(s);
break;
}
case 74: {
if (!((mutable_bitField0_ & 0x00000008) != 0)) {
queryParams_ = com.google.protobuf.MapField.newMapField(
QueryParamsDefaultEntryHolder.defaultEntry);
mutable_bitField0_ |= 0x00000008;
}
com.google.protobuf.MapEntry
queryParams__ = input.readMessage(
QueryParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
queryParams_.getMutableMap().put(
queryParams__.getKey(), queryParams__.getValue());
break;
}
case 80: {
ignoreUriCase_ = input.readBool();
break;
}
case 90: {
java.lang.String s = input.readStringRequireUtf8();
name_ = s;
break;
}
case 98: {
if (!((mutable_bitField0_ & 0x00000010) != 0)) {
withoutHeaders_ = com.google.protobuf.MapField.newMapField(
WithoutHeadersDefaultEntryHolder.defaultEntry);
mutable_bitField0_ |= 0x00000010;
}
com.google.protobuf.MapEntry
withoutHeaders__ = input.readMessage(
WithoutHeadersDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
withoutHeaders_.getMutableMap().put(
withoutHeaders__.getKey(), withoutHeaders__.getValue());
break;
}
case 106: {
java.lang.String s = input.readStringRequireUtf8();
sourceNamespace_ = s;
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000004) != 0)) {
gateways_ = gateways_.getUnmodifiableView();
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_descriptor;
}
@SuppressWarnings({"rawtypes"})
@java.lang.Override
protected com.google.protobuf.MapField internalGetMapField(
int number) {
switch (number) {
case 5:
return internalGetHeaders();
case 7:
return internalGetSourceLabels();
case 9:
return internalGetQueryParams();
case 12:
return internalGetWithoutHeaders();
default:
throw new RuntimeException(
"Invalid map field number: " + number);
}
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.class, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.Builder.class);
}
public static final int NAME_FIELD_NUMBER = 11;
private volatile java.lang.Object name_;
/**
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
*
* string name = 11;
*/
public com.google.protobuf.ByteString
getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
public static final int URI_FIELD_NUMBER = 1;
private istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch uri_;
/**
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
*
* .istio.networking.v1alpha3.StringMatch uri = 1;
*/
public boolean hasUri() {
return uri_ != null;
}
/**
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
*
* .istio.networking.v1alpha3.StringMatch uri = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatchOrBuilder getUriOrBuilder() {
return getUri();
}
public static final int SCHEME_FIELD_NUMBER = 2;
private istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch scheme_;
/**
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
*
* .istio.networking.v1alpha3.StringMatch scheme = 2;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatchOrBuilder getSchemeOrBuilder() {
return getScheme();
}
public static final int METHOD_FIELD_NUMBER = 3;
private istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch method_;
/**
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
*
* .istio.networking.v1alpha3.StringMatch method = 3;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatchOrBuilder getMethodOrBuilder() {
return getMethod();
}
public static final int AUTHORITY_FIELD_NUMBER = 4;
private istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch authority_;
/**
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
*
* .istio.networking.v1alpha3.StringMatch authority = 4;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatchOrBuilder getAuthorityOrBuilder() {
return getAuthority();
}
public static final int HEADERS_FIELD_NUMBER = 5;
private static final class HeadersDefaultEntryHolder {
static final com.google.protobuf.MapEntry<
java.lang.String, istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch> defaultEntry =
com.google.protobuf.MapEntry
.newDefaultInstance(
istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_HeadersEntry_descriptor,
com.google.protobuf.WireFormat.FieldType.STRING,
"",
com.google.protobuf.WireFormat.FieldType.MESSAGE,
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.getDefaultInstance());
}
private com.google.protobuf.MapField<
java.lang.String, istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch> headers_;
private com.google.protobuf.MapField
internalGetHeaders() {
if (headers_ == null) {
return com.google.protobuf.MapField.emptyMapField(
HeadersDefaultEntryHolder.defaultEntry);
}
return headers_;
}
public int getHeadersCount() {
return internalGetHeaders().getMap().size();
}
/**
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> headers = 5;
*/
public boolean containsHeaders(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetHeaders().getMap().containsKey(key);
}
/**
* Use {@link #getHeadersMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getHeaders() {
return getHeadersMap();
}
/**
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> headers = 5;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch getHeadersOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetHeaders().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public static final int PORT_FIELD_NUMBER = 6;
private int port_;
/**
*
* Specifies the ports on the host that is being addressed. Many services
* only expose a single port or label ports with the protocols they support,
* in these cases it is not required to explicitly select the port.
*
*
* uint32 port = 6;
*/
public int getPort() {
return port_;
}
public static final int SOURCE_LABELS_FIELD_NUMBER = 7;
private static final class SourceLabelsDefaultEntryHolder {
static final com.google.protobuf.MapEntry<
java.lang.String, java.lang.String> defaultEntry =
com.google.protobuf.MapEntry
.newDefaultInstance(
istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_SourceLabelsEntry_descriptor,
com.google.protobuf.WireFormat.FieldType.STRING,
"",
com.google.protobuf.WireFormat.FieldType.STRING,
"");
}
private com.google.protobuf.MapField<
java.lang.String, java.lang.String> sourceLabels_;
private com.google.protobuf.MapField
internalGetSourceLabels() {
if (sourceLabels_ == null) {
return com.google.protobuf.MapField.emptyMapField(
SourceLabelsDefaultEntryHolder.defaultEntry);
}
return sourceLabels_;
}
public int getSourceLabelsCount() {
return internalGetSourceLabels().getMap().size();
}
/**
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
*
* map<string, string> source_labels = 7;
*/
public boolean containsSourceLabels(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetSourceLabels().getMap().containsKey(key);
}
/**
* Use {@link #getSourceLabelsMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getSourceLabels() {
return getSourceLabelsMap();
}
/**
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
*
* map<string, string> source_labels = 7;
*/
public java.lang.String getSourceLabelsOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetSourceLabels().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public static final int GATEWAYS_FIELD_NUMBER = 8;
private com.google.protobuf.LazyStringList gateways_;
/**
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
*
* repeated string gateways = 8;
*/
public int getGatewaysCount() {
return gateways_.size();
}
/**
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
*
* repeated string gateways = 8;
*/
public com.google.protobuf.ByteString
getGatewaysBytes(int index) {
return gateways_.getByteString(index);
}
public static final int QUERY_PARAMS_FIELD_NUMBER = 9;
private static final class QueryParamsDefaultEntryHolder {
static final com.google.protobuf.MapEntry<
java.lang.String, istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch> defaultEntry =
com.google.protobuf.MapEntry
.newDefaultInstance(
istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_QueryParamsEntry_descriptor,
com.google.protobuf.WireFormat.FieldType.STRING,
"",
com.google.protobuf.WireFormat.FieldType.MESSAGE,
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.getDefaultInstance());
}
private com.google.protobuf.MapField<
java.lang.String, istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch> queryParams_;
private com.google.protobuf.MapField
internalGetQueryParams() {
if (queryParams_ == null) {
return com.google.protobuf.MapField.emptyMapField(
QueryParamsDefaultEntryHolder.defaultEntry);
}
return queryParams_;
}
public int getQueryParamsCount() {
return internalGetQueryParams().getMap().size();
}
/**
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> query_params = 9;
*/
public boolean containsQueryParams(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetQueryParams().getMap().containsKey(key);
}
/**
* Use {@link #getQueryParamsMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getQueryParams() {
return getQueryParamsMap();
}
/**
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> query_params = 9;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch getQueryParamsOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetQueryParams().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public static final int IGNORE_URI_CASE_FIELD_NUMBER = 10;
private boolean ignoreUriCase_;
/**
*
* Flag to specify whether the URI matching should be case-insensitive.
* **Note:** The case will be ignored only in the case of `exact` and `prefix`
* URI matches.
*
*
* bool ignore_uri_case = 10;
*/
public boolean getIgnoreUriCase() {
return ignoreUriCase_;
}
public static final int WITHOUT_HEADERS_FIELD_NUMBER = 12;
private static final class WithoutHeadersDefaultEntryHolder {
static final com.google.protobuf.MapEntry<
java.lang.String, istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch> defaultEntry =
com.google.protobuf.MapEntry
.newDefaultInstance(
istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_WithoutHeadersEntry_descriptor,
com.google.protobuf.WireFormat.FieldType.STRING,
"",
com.google.protobuf.WireFormat.FieldType.MESSAGE,
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.getDefaultInstance());
}
private com.google.protobuf.MapField<
java.lang.String, istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch> withoutHeaders_;
private com.google.protobuf.MapField
internalGetWithoutHeaders() {
if (withoutHeaders_ == null) {
return com.google.protobuf.MapField.emptyMapField(
WithoutHeadersDefaultEntryHolder.defaultEntry);
}
return withoutHeaders_;
}
public int getWithoutHeadersCount() {
return internalGetWithoutHeaders().getMap().size();
}
/**
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> without_headers = 12;
*/
public boolean containsWithoutHeaders(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetWithoutHeaders().getMap().containsKey(key);
}
/**
* Use {@link #getWithoutHeadersMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getWithoutHeaders() {
return getWithoutHeadersMap();
}
/**
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> without_headers = 12;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch getWithoutHeadersOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetWithoutHeaders().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public static final int SOURCE_NAMESPACE_FIELD_NUMBER = 13;
private volatile java.lang.Object sourceNamespace_;
/**
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* HttpMatchRequest specifies a set of criterion to be met in order for the
* rule to be applied to the HTTP request. For example, the following
* restricts the rule to match only requests where the URL path
* starts with /ratings/v2/ and the request contains a custom `end-user` header
* with value `jason`.
* {{<tabset category-name="example">}}
* {{<tab name="v1alpha3" category-value="v1alpha3">}}
* ```yaml
* apiVersion: networking.istio.io/v1alpha3
* kind: VirtualService
* metadata:
* name: ratings-route
* spec:
* hosts:
* - ratings.prod.svc.cluster.local
* http:
* - match:
* - headers:
* end-user:
* exact: jason
* uri:
* prefix: "/ratings/v2/"
* ignoreUriCase: true
* route:
* - destination:
* host: ratings.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{<tab name="v1beta1" category-value="v1beta1">}}
* ```yaml
* apiVersion: networking.istio.io/v1beta1
* kind: VirtualService
* metadata:
* name: ratings-route
* spec:
* hosts:
* - ratings.prod.svc.cluster.local
* http:
* - match:
* - headers:
* end-user:
* exact: jason
* uri:
* prefix: "/ratings/v2/"
* ignoreUriCase: true
* route:
* - destination:
* host: ratings.prod.svc.cluster.local
* ```
* {{</tab>}}
* {{</tabset>}}
* HTTPMatchRequest CANNOT be empty.
* **Note:** No regex string match can be set when delegate VirtualService is specified.
*
*
* Protobuf type {@code istio.networking.v1alpha3.HTTPMatchRequest}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:istio.networking.v1alpha3.HTTPMatchRequest)
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequestOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_descriptor;
}
@SuppressWarnings({"rawtypes"})
protected com.google.protobuf.MapField internalGetMapField(
int number) {
switch (number) {
case 5:
return internalGetHeaders();
case 7:
return internalGetSourceLabels();
case 9:
return internalGetQueryParams();
case 12:
return internalGetWithoutHeaders();
default:
throw new RuntimeException(
"Invalid map field number: " + number);
}
}
@SuppressWarnings({"rawtypes"})
protected com.google.protobuf.MapField internalGetMutableMapField(
int number) {
switch (number) {
case 5:
return internalGetMutableHeaders();
case 7:
return internalGetMutableSourceLabels();
case 9:
return internalGetMutableQueryParams();
case 12:
return internalGetMutableWithoutHeaders();
default:
throw new RuntimeException(
"Invalid map field number: " + number);
}
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.class, istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.Builder.class);
}
// Construct using istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
name_ = "";
if (uriBuilder_ == null) {
uri_ = null;
} else {
uri_ = null;
uriBuilder_ = null;
}
if (schemeBuilder_ == null) {
scheme_ = null;
} else {
scheme_ = null;
schemeBuilder_ = null;
}
if (methodBuilder_ == null) {
method_ = null;
} else {
method_ = null;
methodBuilder_ = null;
}
if (authorityBuilder_ == null) {
authority_ = null;
} else {
authority_ = null;
authorityBuilder_ = null;
}
internalGetMutableHeaders().clear();
port_ = 0;
internalGetMutableSourceLabels().clear();
gateways_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000004);
internalGetMutableQueryParams().clear();
ignoreUriCase_ = false;
internalGetMutableWithoutHeaders().clear();
sourceNamespace_ = "";
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_HTTPMatchRequest_descriptor;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest getDefaultInstanceForType() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.getDefaultInstance();
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest build() {
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest buildPartial() {
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest result = new istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest(this);
int from_bitField0_ = bitField0_;
result.name_ = name_;
if (uriBuilder_ == null) {
result.uri_ = uri_;
} else {
result.uri_ = uriBuilder_.build();
}
if (schemeBuilder_ == null) {
result.scheme_ = scheme_;
} else {
result.scheme_ = schemeBuilder_.build();
}
if (methodBuilder_ == null) {
result.method_ = method_;
} else {
result.method_ = methodBuilder_.build();
}
if (authorityBuilder_ == null) {
result.authority_ = authority_;
} else {
result.authority_ = authorityBuilder_.build();
}
result.headers_ = internalGetHeaders();
result.headers_.makeImmutable();
result.port_ = port_;
result.sourceLabels_ = internalGetSourceLabels();
result.sourceLabels_.makeImmutable();
if (((bitField0_ & 0x00000004) != 0)) {
gateways_ = gateways_.getUnmodifiableView();
bitField0_ = (bitField0_ & ~0x00000004);
}
result.gateways_ = gateways_;
result.queryParams_ = internalGetQueryParams();
result.queryParams_.makeImmutable();
result.ignoreUriCase_ = ignoreUriCase_;
result.withoutHeaders_ = internalGetWithoutHeaders();
result.withoutHeaders_.makeImmutable();
result.sourceNamespace_ = sourceNamespace_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest) {
return mergeFrom((istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest other) {
if (other == istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest.getDefaultInstance()) return this;
if (!other.getName().isEmpty()) {
name_ = other.name_;
onChanged();
}
if (other.hasUri()) {
mergeUri(other.getUri());
}
if (other.hasScheme()) {
mergeScheme(other.getScheme());
}
if (other.hasMethod()) {
mergeMethod(other.getMethod());
}
if (other.hasAuthority()) {
mergeAuthority(other.getAuthority());
}
internalGetMutableHeaders().mergeFrom(
other.internalGetHeaders());
if (other.getPort() != 0) {
setPort(other.getPort());
}
internalGetMutableSourceLabels().mergeFrom(
other.internalGetSourceLabels());
if (!other.gateways_.isEmpty()) {
if (gateways_.isEmpty()) {
gateways_ = other.gateways_;
bitField0_ = (bitField0_ & ~0x00000004);
} else {
ensureGatewaysIsMutable();
gateways_.addAll(other.gateways_);
}
onChanged();
}
internalGetMutableQueryParams().mergeFrom(
other.internalGetQueryParams());
if (other.getIgnoreUriCase() != false) {
setIgnoreUriCase(other.getIgnoreUriCase());
}
internalGetMutableWithoutHeaders().mergeFrom(
other.internalGetWithoutHeaders());
if (!other.getSourceNamespace().isEmpty()) {
sourceNamespace_ = other.sourceNamespace_;
onChanged();
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int bitField0_;
private java.lang.Object name_ = "";
/**
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
*
* string name = 11;
*/
public Builder setName(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
name_ = value;
onChanged();
return this;
}
/**
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
*
* string name = 11;
*/
public Builder clearName() {
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
/**
*
* The name assigned to a match. The match's name will be
* concatenated with the parent route's name and will be logged in
* the access logs for requests matching this route.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
*
* .istio.networking.v1alpha3.StringMatch uri = 1;
*/
public Builder setUri(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch value) {
if (uriBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
uri_ = value;
onChanged();
} else {
uriBuilder_.setMessage(value);
}
return this;
}
/**
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
*
* .istio.networking.v1alpha3.StringMatch uri = 1;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch.Builder getUriBuilder() {
onChanged();
return getUriFieldBuilder().getBuilder();
}
/**
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI to match
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* **Note:** Case-insensitive matching could be enabled via the
* `ignore_uri_case` flag.
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
*
* .istio.networking.v1alpha3.StringMatch scheme = 2;
*/
public Builder setScheme(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch value) {
if (schemeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
scheme_ = value;
onChanged();
} else {
schemeBuilder_.setMessage(value);
}
return this;
}
/**
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* URI Scheme
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
*
* .istio.networking.v1alpha3.StringMatch method = 3;
*/
public Builder setMethod(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch value) {
if (methodBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
method_ = value;
onChanged();
} else {
methodBuilder_.setMessage(value);
}
return this;
}
/**
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Method
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
*
* .istio.networking.v1alpha3.StringMatch authority = 4;
*/
public Builder setAuthority(istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch value) {
if (authorityBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
authority_ = value;
onChanged();
} else {
authorityBuilder_.setMessage(value);
}
return this;
}
/**
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* HTTP Authority
* values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> headers = 5;
*/
public boolean containsHeaders(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetHeaders().getMap().containsKey(key);
}
/**
* Use {@link #getHeadersMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getHeaders() {
return getHeadersMap();
}
/**
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> headers = 5;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch getHeadersOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetHeaders().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public Builder clearHeaders() {
internalGetMutableHeaders().getMutableMap()
.clear();
return this;
}
/**
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> headers = 5;
*/
public Builder removeHeaders(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
internalGetMutableHeaders().getMutableMap()
.remove(key);
return this;
}
/**
* Use alternate mutation accessors instead.
*/
@java.lang.Deprecated
public java.util.Map
getMutableHeaders() {
return internalGetMutableHeaders().getMutableMap();
}
/**
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> headers = 5;
*/
public Builder putHeaders(
java.lang.String key,
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch value) {
if (key == null) { throw new java.lang.NullPointerException(); }
if (value == null) { throw new java.lang.NullPointerException(); }
internalGetMutableHeaders().getMutableMap()
.put(key, value);
return this;
}
/**
*
* The header keys must be lowercase and use hyphen as the separator,
* e.g. _x-request-id_.
* Header values are case-sensitive and formatted as follows:
* - `exact: "value"` for exact string match
* - `prefix: "value"` for prefix-based match
* - `regex: "value"` for ECMAscript style regex-based match
* If the value is empty and only the name of header is specfied, presence of the header is checked.
* **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
*
* Specifies the ports on the host that is being addressed. Many services
* only expose a single port or label ports with the protocols they support,
* in these cases it is not required to explicitly select the port.
*
*
* uint32 port = 6;
*/
public int getPort() {
return port_;
}
/**
*
* Specifies the ports on the host that is being addressed. Many services
* only expose a single port or label ports with the protocols they support,
* in these cases it is not required to explicitly select the port.
*
* Specifies the ports on the host that is being addressed. Many services
* only expose a single port or label ports with the protocols they support,
* in these cases it is not required to explicitly select the port.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
*
* map<string, string> source_labels = 7;
*/
public boolean containsSourceLabels(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetSourceLabels().getMap().containsKey(key);
}
/**
* Use {@link #getSourceLabelsMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getSourceLabels() {
return getSourceLabelsMap();
}
/**
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
*
* map<string, string> source_labels = 7;
*/
public java.lang.String getSourceLabelsOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetSourceLabels().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public Builder clearSourceLabels() {
internalGetMutableSourceLabels().getMutableMap()
.clear();
return this;
}
/**
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
*
* map<string, string> source_labels = 7;
*/
public Builder removeSourceLabels(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
internalGetMutableSourceLabels().getMutableMap()
.remove(key);
return this;
}
/**
* Use alternate mutation accessors instead.
*/
@java.lang.Deprecated
public java.util.Map
getMutableSourceLabels() {
return internalGetMutableSourceLabels().getMutableMap();
}
/**
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
*
* map<string, string> source_labels = 7;
*/
public Builder putSourceLabels(
java.lang.String key,
java.lang.String value) {
if (key == null) { throw new java.lang.NullPointerException(); }
if (value == null) { throw new java.lang.NullPointerException(); }
internalGetMutableSourceLabels().getMutableMap()
.put(key, value);
return this;
}
/**
*
* One or more labels that constrain the applicability of a rule to
* workloads with the given labels. If the VirtualService has a list of
* gateways specified in the top-level `gateways` field, it must include the reserved gateway
* `mesh` for this field to be applicable.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
*
* repeated string gateways = 8;
*/
public int getGatewaysCount() {
return gateways_.size();
}
/**
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
*
* repeated string gateways = 8;
*/
public Builder setGateways(
int index, java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureGatewaysIsMutable();
gateways_.set(index, value);
onChanged();
return this;
}
/**
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Names of gateways where the rule should be applied. Gateway names
* in the top-level `gateways` field of the VirtualService (if any) are overridden. The gateway
* match is independent of sourceLabels.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> query_params = 9;
*/
public boolean containsQueryParams(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetQueryParams().getMap().containsKey(key);
}
/**
* Use {@link #getQueryParamsMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getQueryParams() {
return getQueryParamsMap();
}
/**
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> query_params = 9;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch getQueryParamsOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetQueryParams().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public Builder clearQueryParams() {
internalGetMutableQueryParams().getMutableMap()
.clear();
return this;
}
/**
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> query_params = 9;
*/
public Builder removeQueryParams(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
internalGetMutableQueryParams().getMutableMap()
.remove(key);
return this;
}
/**
* Use alternate mutation accessors instead.
*/
@java.lang.Deprecated
public java.util.Map
getMutableQueryParams() {
return internalGetMutableQueryParams().getMutableMap();
}
/**
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> query_params = 9;
*/
public Builder putQueryParams(
java.lang.String key,
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch value) {
if (key == null) { throw new java.lang.NullPointerException(); }
if (value == null) { throw new java.lang.NullPointerException(); }
internalGetMutableQueryParams().getMutableMap()
.put(key, value);
return this;
}
/**
*
* Query parameters for matching.
* Ex:
* - For a query parameter like "?key=true", the map key would be "key" and
* the string match could be defined as `exact: "true"`.
* - For a query parameter like "?key", the map key would be "key" and the
* string match could be defined as `exact: ""`.
* - For a query parameter like "?key=123", the map key would be "key" and the
* string match could be defined as `regex: "\d+$"`. Note that this
* configuration will only match values like "123" but not "a123" or "123a".
* **Note:** `prefix` matching is currently not supported.
*
* Flag to specify whether the URI matching should be case-insensitive.
* **Note:** The case will be ignored only in the case of `exact` and `prefix`
* URI matches.
*
* Flag to specify whether the URI matching should be case-insensitive.
* **Note:** The case will be ignored only in the case of `exact` and `prefix`
* URI matches.
*
* Flag to specify whether the URI matching should be case-insensitive.
* **Note:** The case will be ignored only in the case of `exact` and `prefix`
* URI matches.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> without_headers = 12;
*/
public boolean containsWithoutHeaders(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
return internalGetWithoutHeaders().getMap().containsKey(key);
}
/**
* Use {@link #getWithoutHeadersMap()} instead.
*/
@java.lang.Deprecated
public java.util.Map getWithoutHeaders() {
return getWithoutHeadersMap();
}
/**
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> without_headers = 12;
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch getWithoutHeadersOrThrow(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
java.util.Map map =
internalGetWithoutHeaders().getMap();
if (!map.containsKey(key)) {
throw new java.lang.IllegalArgumentException();
}
return map.get(key);
}
public Builder clearWithoutHeaders() {
internalGetMutableWithoutHeaders().getMutableMap()
.clear();
return this;
}
/**
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> without_headers = 12;
*/
public Builder removeWithoutHeaders(
java.lang.String key) {
if (key == null) { throw new java.lang.NullPointerException(); }
internalGetMutableWithoutHeaders().getMutableMap()
.remove(key);
return this;
}
/**
* Use alternate mutation accessors instead.
*/
@java.lang.Deprecated
public java.util.Map
getMutableWithoutHeaders() {
return internalGetMutableWithoutHeaders().getMutableMap();
}
/**
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
*
* map<string, .istio.networking.v1alpha3.StringMatch> without_headers = 12;
*/
public Builder putWithoutHeaders(
java.lang.String key,
istio.networking.v1alpha3.VirtualServiceOuterClass.StringMatch value) {
if (key == null) { throw new java.lang.NullPointerException(); }
if (value == null) { throw new java.lang.NullPointerException(); }
internalGetMutableWithoutHeaders().getMutableMap()
.put(key, value);
return this;
}
/**
*
* withoutHeader has the same syntax with the header, but has opposite meaning.
* If a header is matched with a matching rule among withoutHeader, the traffic becomes not matched one.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
* Source namespace constraining the applicability of a rule to workloads in that namespace.
* If the VirtualService has a list of gateways specified in the top-level `gateways` field,
* it must include the reserved gateway `mesh` for this field to be applicable.
*
*
* string source_namespace = 13;
*/
public Builder setSourceNamespaceBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
sourceNamespace_ = value;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:istio.networking.v1alpha3.HTTPMatchRequest)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPMatchRequest)
private static final istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest();
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public HTTPMatchRequest parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new HTTPMatchRequest(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.HTTPMatchRequest getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface HTTPRouteDestinationOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.HTTPRouteDestination)
com.google.protobuf.MessageOrBuilder {
/**
*
* Destination uniquely identifies the instances of a service
* to which the request/connection should be forwarded to.
*
* The proportion of traffic to be forwarded to the service
* version. (0-100). Sum of weights across destinations SHOULD BE == 100.
* If there is only one destination in a rule, the weight value is assumed to
* be 100.
*
* Destination uniquely identifies the instances of a service
* to which the request/connection should be forwarded to.
*
*
* .istio.networking.v1alpha3.Destination destination = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.DestinationOrBuilder getDestinationOrBuilder() {
return getDestination();
}
public static final int WEIGHT_FIELD_NUMBER = 2;
private int weight_;
/**
*
* The proportion of traffic to be forwarded to the service
* version. (0-100). Sum of weights across destinations SHOULD BE == 100.
* If there is only one destination in a rule, the weight value is assumed to
* be 100.
*
*
* int32 weight = 2;
*/
public int getWeight() {
return weight_;
}
public static final int HEADERS_FIELD_NUMBER = 7;
private istio.networking.v1alpha3.VirtualServiceOuterClass.Headers headers_;
/**
*
* The proportion of traffic to be forwarded to the service
* version. (0-100). Sum of weights across destinations SHOULD BE == 100.
* If there is only one destination in a rule, the weight value is assumed to
* be 100.
*
*
* int32 weight = 2;
*/
public int getWeight() {
return weight_;
}
/**
*
* The proportion of traffic to be forwarded to the service
* version. (0-100). Sum of weights across destinations SHOULD BE == 100.
* If there is only one destination in a rule, the weight value is assumed to
* be 100.
*
* The proportion of traffic to be forwarded to the service
* version. (0-100). Sum of weights across destinations SHOULD BE == 100.
* If there is only one destination in a rule, the weight value is assumed to
* be 100.
*
* The proportion of traffic to be forwarded to the service
* version. If there is only one destination in a rule, all traffic will be
* routed to it irrespective of the weight.
*
*
* int32 weight = 2;
*/
int getWeight();
}
/**
*
* L4 routing rule weighted destination.
*
*
* Protobuf type {@code istio.networking.v1alpha3.RouteDestination}
*/
public static final class RouteDestination extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.RouteDestination)
RouteDestinationOrBuilder {
private static final long serialVersionUID = 0L;
// Use RouteDestination.newBuilder() to construct.
private RouteDestination(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private RouteDestination() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new RouteDestination();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private RouteDestination(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.Builder subBuilder = null;
if (destination_ != null) {
subBuilder = destination_.toBuilder();
}
destination_ = input.readMessage(istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(destination_);
destination_ = subBuilder.buildPartial();
}
break;
}
case 16: {
weight_ = input.readInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_RouteDestination_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_RouteDestination_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.class, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.Builder.class);
}
public static final int DESTINATION_FIELD_NUMBER = 1;
private istio.networking.v1alpha3.VirtualServiceOuterClass.Destination destination_;
/**
*
* Destination uniquely identifies the instances of a service
* to which the request/connection should be forwarded to.
*
* Destination uniquely identifies the instances of a service
* to which the request/connection should be forwarded to.
*
*
* .istio.networking.v1alpha3.Destination destination = 1 [(.google.api.field_behavior) = REQUIRED];
*/
public istio.networking.v1alpha3.VirtualServiceOuterClass.DestinationOrBuilder getDestinationOrBuilder() {
return getDestination();
}
public static final int WEIGHT_FIELD_NUMBER = 2;
private int weight_;
/**
*
* The proportion of traffic to be forwarded to the service
* version. If there is only one destination in a rule, all traffic will be
* routed to it irrespective of the weight.
*
*
* int32 weight = 2;
*/
public int getWeight() {
return weight_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (destination_ != null) {
output.writeMessage(1, getDestination());
}
if (weight_ != 0) {
output.writeInt32(2, weight_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (destination_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, getDestination());
}
if (weight_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, weight_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination)) {
return super.equals(obj);
}
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination other = (istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination) obj;
if (hasDestination() != other.hasDestination()) return false;
if (hasDestination()) {
if (!getDestination()
.equals(other.getDestination())) return false;
}
if (getWeight()
!= other.getWeight()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (hasDestination()) {
hash = (37 * hash) + DESTINATION_FIELD_NUMBER;
hash = (53 * hash) + getDestination().hashCode();
}
hash = (37 * hash) + WEIGHT_FIELD_NUMBER;
hash = (53 * hash) + getWeight();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* L4 routing rule weighted destination.
*
*
* Protobuf type {@code istio.networking.v1alpha3.RouteDestination}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:istio.networking.v1alpha3.RouteDestination)
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestinationOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_RouteDestination_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_RouteDestination_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.class, istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.Builder.class);
}
// Construct using istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
if (destinationBuilder_ == null) {
destination_ = null;
} else {
destination_ = null;
destinationBuilder_ = null;
}
weight_ = 0;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.internal_static_istio_networking_v1alpha3_RouteDestination_descriptor;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination getDefaultInstanceForType() {
return istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.getDefaultInstance();
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination build() {
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination buildPartial() {
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination result = new istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination(this);
if (destinationBuilder_ == null) {
result.destination_ = destination_;
} else {
result.destination_ = destinationBuilder_.build();
}
result.weight_ = weight_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination) {
return mergeFrom((istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination other) {
if (other == istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination.getDefaultInstance()) return this;
if (other.hasDestination()) {
mergeDestination(other.getDestination());
}
if (other.getWeight() != 0) {
setWeight(other.getWeight());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private istio.networking.v1alpha3.VirtualServiceOuterClass.Destination destination_;
private com.google.protobuf.SingleFieldBuilderV3<
istio.networking.v1alpha3.VirtualServiceOuterClass.Destination, istio.networking.v1alpha3.VirtualServiceOuterClass.Destination.Builder, istio.networking.v1alpha3.VirtualServiceOuterClass.DestinationOrBuilder> destinationBuilder_;
/**
*
* Destination uniquely identifies the instances of a service
* to which the request/connection should be forwarded to.
*
* The proportion of traffic to be forwarded to the service
* version. If there is only one destination in a rule, all traffic will be
* routed to it irrespective of the weight.
*
*
* int32 weight = 2;
*/
public int getWeight() {
return weight_;
}
/**
*
* The proportion of traffic to be forwarded to the service
* version. If there is only one destination in a rule, all traffic will be
* routed to it irrespective of the weight.
*
* The proportion of traffic to be forwarded to the service
* version. If there is only one destination in a rule, all traffic will be
* routed to it irrespective of the weight.
*
*
* int32 weight = 2;
*/
public Builder clearWeight() {
weight_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:istio.networking.v1alpha3.RouteDestination)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.RouteDestination)
private static final istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination();
}
public static istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public RouteDestination parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new RouteDestination(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public istio.networking.v1alpha3.VirtualServiceOuterClass.RouteDestination getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface L4MatchAttributesOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.L4MatchAttributes)
com.google.protobuf.MessageOrBuilder {
/**
*