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/service_entry.proto
package istio.networking.v1alpha3;
public final class ServiceEntryOuterClass {
private ServiceEntryOuterClass() {}
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 ServiceEntryOrBuilder extends
// @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.ServiceEntry)
com.google.protobuf.MessageOrBuilder {
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @return A list containing the hosts.
*/
java.util.List
getHostsList();
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @return The count of hosts.
*/
int getHostsCount();
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param index The index of the element to return.
* @return The hosts at the given index.
*/
java.lang.String getHosts(int index);
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param index The index of the value to return.
* @return The bytes of the hosts at the given index.
*/
com.google.protobuf.ByteString
getHostsBytes(int index);
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @return A list containing the addresses.
*/
java.util.List
getAddressesList();
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @return The count of addresses.
*/
int getAddressesCount();
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param index The index of the element to return.
* @return The addresses at the given index.
*/
java.lang.String getAddresses(int index);
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param index The index of the value to return.
* @return The bytes of the addresses at the given index.
*/
com.google.protobuf.ByteString
getAddressesBytes(int index);
/**
*
* The ports associated with the external service. If the
* Endpoints are Unix domain socket addresses, there must be exactly one
* port.
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @return The enum numeric value on the wire for location.
*/
int getLocationValue();
/**
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
*
* .istio.networking.v1alpha3.ServiceEntry.Resolution resolution = 5 [(.google.api.field_behavior) = REQUIRED];
* @return The enum numeric value on the wire for resolution.
*/
int getResolutionValue();
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
*
* .istio.networking.v1alpha3.WorkloadSelector workload_selector = 9;
* @return Whether the workloadSelector field is set.
*/
boolean hasWorkloadSelector();
/**
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @return A list containing the exportTo.
*/
java.util.List
getExportToList();
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @return The count of exportTo.
*/
int getExportToCount();
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param index The index of the element to return.
* @return The exportTo at the given index.
*/
java.lang.String getExportTo(int index);
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param index The index of the value to return.
* @return The bytes of the exportTo at the given index.
*/
com.google.protobuf.ByteString
getExportToBytes(int index);
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @return A list containing the subjectAltNames.
*/
java.util.List
getSubjectAltNamesList();
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @return The count of subjectAltNames.
*/
int getSubjectAltNamesCount();
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param index The index of the element to return.
* @return The subjectAltNames at the given index.
*/
java.lang.String getSubjectAltNames(int index);
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param index The index of the value to return.
* @return The bytes of the subjectAltNames at the given index.
*/
com.google.protobuf.ByteString
getSubjectAltNamesBytes(int index);
}
/**
*
* ServiceEntry enables adding additional entries into Istio's internal
* service registry.
* <!-- crd generation tags
* +cue-gen:ServiceEntry:groupName:networking.istio.io
* +cue-gen:ServiceEntry:version:v1alpha3
* +cue-gen:ServiceEntry:storageVersion
* +cue-gen:ServiceEntry:annotations:helm.sh/resource-policy=keep
* +cue-gen:ServiceEntry:labels:app=istio-pilot,chart=istio,heritage=Tiller,release=istio
* +cue-gen:ServiceEntry:subresource:status
* +cue-gen:ServiceEntry:scope:Namespaced
* +cue-gen:ServiceEntry:resource:categories=istio-io,networking-istio-io,shortNames=se,plural=serviceentries
* +cue-gen:ServiceEntry:printerColumn:name=Hosts,type=string,JSONPath=.spec.hosts,description="The hosts associated with the ServiceEntry"
* +cue-gen:ServiceEntry:printerColumn:name=Location,type=string,JSONPath=.spec.location,description="Whether the service is external to the
* mesh or part of the mesh (MESH_EXTERNAL or MESH_INTERNAL)"
* +cue-gen:ServiceEntry:printerColumn:name=Resolution,type=string,JSONPath=.spec.resolution,description="Service discovery mode for the hosts
* (NONE, STATIC, or DNS)"
* +cue-gen:ServiceEntry: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:ServiceEntry: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.ServiceEntry}
*/
public static final class ServiceEntry extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.ServiceEntry)
ServiceEntryOrBuilder {
private static final long serialVersionUID = 0L;
// Use ServiceEntry.newBuilder() to construct.
private ServiceEntry(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private ServiceEntry() {
hosts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
addresses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
ports_ = java.util.Collections.emptyList();
location_ = 0;
resolution_ = 0;
endpoints_ = java.util.Collections.emptyList();
exportTo_ = com.google.protobuf.LazyStringArrayList.EMPTY;
subjectAltNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new ServiceEntry();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private ServiceEntry(
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)) {
addresses_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000002;
}
addresses_.add(s);
break;
}
case 26: {
if (!((mutable_bitField0_ & 0x00000004) != 0)) {
ports_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000004;
}
ports_.add(
input.readMessage(istio.networking.v1alpha3.GatewayOuterClass.Port.parser(), extensionRegistry));
break;
}
case 32: {
int rawValue = input.readEnum();
location_ = rawValue;
break;
}
case 40: {
int rawValue = input.readEnum();
resolution_ = rawValue;
break;
}
case 50: {
if (!((mutable_bitField0_ & 0x00000008) != 0)) {
endpoints_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000008;
}
endpoints_.add(
input.readMessage(istio.networking.v1alpha3.WorkloadEntryOuterClass.WorkloadEntry.parser(), extensionRegistry));
break;
}
case 58: {
java.lang.String s = input.readStringRequireUtf8();
if (!((mutable_bitField0_ & 0x00000010) != 0)) {
exportTo_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000010;
}
exportTo_.add(s);
break;
}
case 66: {
java.lang.String s = input.readStringRequireUtf8();
if (!((mutable_bitField0_ & 0x00000020) != 0)) {
subjectAltNames_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000020;
}
subjectAltNames_.add(s);
break;
}
case 74: {
istio.networking.v1alpha3.SidecarOuterClass.WorkloadSelector.Builder subBuilder = null;
if (workloadSelector_ != null) {
subBuilder = workloadSelector_.toBuilder();
}
workloadSelector_ = input.readMessage(istio.networking.v1alpha3.SidecarOuterClass.WorkloadSelector.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(workloadSelector_);
workloadSelector_ = 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)) {
hosts_ = hosts_.getUnmodifiableView();
}
if (((mutable_bitField0_ & 0x00000002) != 0)) {
addresses_ = addresses_.getUnmodifiableView();
}
if (((mutable_bitField0_ & 0x00000004) != 0)) {
ports_ = java.util.Collections.unmodifiableList(ports_);
}
if (((mutable_bitField0_ & 0x00000008) != 0)) {
endpoints_ = java.util.Collections.unmodifiableList(endpoints_);
}
if (((mutable_bitField0_ & 0x00000010) != 0)) {
exportTo_ = exportTo_.getUnmodifiableView();
}
if (((mutable_bitField0_ & 0x00000020) != 0)) {
subjectAltNames_ = subjectAltNames_.getUnmodifiableView();
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return istio.networking.v1alpha3.ServiceEntryOuterClass.internal_static_istio_networking_v1alpha3_ServiceEntry_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return istio.networking.v1alpha3.ServiceEntryOuterClass.internal_static_istio_networking_v1alpha3_ServiceEntry_fieldAccessorTable
.ensureFieldAccessorsInitialized(
istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.class, istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Builder.class);
}
/**
*
* Location specifies whether the service is part of Istio mesh or
* outside the mesh. Location determines the behavior of several
* features, such as service-to-service mTLS authentication, policy
* enforcement, etc. When communicating with services outside the mesh,
* Istio's mTLS authentication is disabled, and policy enforcement is
* performed on the client-side as opposed to server-side.
*
* Signifies that the service is external to the mesh. Typically used
* to indicate external services consumed through APIs.
*
*
* MESH_EXTERNAL = 0;
*/
MESH_EXTERNAL(0),
/**
*
* Signifies that the service is part of the mesh. Typically used to
* indicate services added explicitly as part of expanding the service
* mesh to include unmanaged infrastructure (e.g., VMs added to a
* Kubernetes based service mesh).
*
* Signifies that the service is external to the mesh. Typically used
* to indicate external services consumed through APIs.
*
*
* MESH_EXTERNAL = 0;
*/
public static final int MESH_EXTERNAL_VALUE = 0;
/**
*
* Signifies that the service is part of the mesh. Typically used to
* indicate services added explicitly as part of expanding the service
* mesh to include unmanaged infrastructure (e.g., VMs added to a
* Kubernetes based service mesh).
*
*
* MESH_INTERNAL = 1;
*/
public static final int MESH_INTERNAL_VALUE = 1;
public final int getNumber() {
if (this == UNRECOGNIZED) {
throw new java.lang.IllegalArgumentException(
"Can't get the number of an unknown enum value.");
}
return value;
}
/**
* @param value The numeric wire value of the corresponding enum entry.
* @return The enum associated with the given numeric wire value.
* @deprecated Use {@link #forNumber(int)} instead.
*/
@java.lang.Deprecated
public static Location valueOf(int value) {
return forNumber(value);
}
/**
* @param value The numeric wire value of the corresponding enum entry.
* @return The enum associated with the given numeric wire value.
*/
public static Location forNumber(int value) {
switch (value) {
case 0: return MESH_EXTERNAL;
case 1: return MESH_INTERNAL;
default: return null;
}
}
public static com.google.protobuf.Internal.EnumLiteMap
internalGetValueMap() {
return internalValueMap;
}
private static final com.google.protobuf.Internal.EnumLiteMap<
Location> internalValueMap =
new com.google.protobuf.Internal.EnumLiteMap() {
public Location findValueByNumber(int number) {
return Location.forNumber(number);
}
};
public final com.google.protobuf.Descriptors.EnumValueDescriptor
getValueDescriptor() {
if (this == UNRECOGNIZED) {
throw new java.lang.IllegalStateException(
"Can't get the descriptor of an unrecognized enum value.");
}
return getDescriptor().getValues().get(ordinal());
}
public final com.google.protobuf.Descriptors.EnumDescriptor
getDescriptorForType() {
return getDescriptor();
}
public static final com.google.protobuf.Descriptors.EnumDescriptor
getDescriptor() {
return istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.getDescriptor().getEnumTypes().get(0);
}
private static final Location[] VALUES = values();
public static Location valueOf(
com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
if (desc.getType() != getDescriptor()) {
throw new java.lang.IllegalArgumentException(
"EnumValueDescriptor is not for this type.");
}
if (desc.getIndex() == -1) {
return UNRECOGNIZED;
}
return VALUES[desc.getIndex()];
}
private final int value;
private Location(int value) {
this.value = value;
}
// @@protoc_insertion_point(enum_scope:istio.networking.v1alpha3.ServiceEntry.Location)
}
/**
*
* Resolution determines how the proxy will resolve the IP addresses of
* the network endpoints associated with the service, so that it can
* route to one of them. The resolution mode specified here has no impact
* on how the application resolves the IP address associated with the
* service. The application may still have to use DNS to resolve the
* service to an IP so that the outbound traffic can be captured by the
* Proxy. Alternatively, for HTTP services, the application could
* directly communicate with the proxy (e.g., by setting HTTP_PROXY) to
* talk to these services.
*
* Assume that incoming connections have already been resolved (to a
* specific destination IP address). Such connections are typically
* routed via the proxy using mechanisms such as IP table REDIRECT/
* eBPF. After performing any routing related transformations, the
* proxy will forward the connection to the IP address to which the
* connection was bound.
*
*
* NONE = 0;
*/
NONE(0),
/**
*
* Use the static IP addresses specified in endpoints (see below) as the
* backing instances associated with the service.
*
*
* STATIC = 1;
*/
STATIC(1),
/**
*
* Attempt to resolve the IP address by querying the ambient DNS,
* during request processing. If no endpoints are specified, the proxy
* will resolve the DNS address specified in the hosts field, if
* wildcards are not used. If endpoints are specified, the DNS
* addresses specified in the endpoints will be resolved to determine
* the destination IP address. DNS resolution cannot be used with Unix
* domain socket endpoints.
*
*
* DNS = 2;
*/
DNS(2),
UNRECOGNIZED(-1),
;
/**
*
* Assume that incoming connections have already been resolved (to a
* specific destination IP address). Such connections are typically
* routed via the proxy using mechanisms such as IP table REDIRECT/
* eBPF. After performing any routing related transformations, the
* proxy will forward the connection to the IP address to which the
* connection was bound.
*
*
* NONE = 0;
*/
public static final int NONE_VALUE = 0;
/**
*
* Use the static IP addresses specified in endpoints (see below) as the
* backing instances associated with the service.
*
*
* STATIC = 1;
*/
public static final int STATIC_VALUE = 1;
/**
*
* Attempt to resolve the IP address by querying the ambient DNS,
* during request processing. If no endpoints are specified, the proxy
* will resolve the DNS address specified in the hosts field, if
* wildcards are not used. If endpoints are specified, the DNS
* addresses specified in the endpoints will be resolved to determine
* the destination IP address. DNS resolution cannot be used with Unix
* domain socket endpoints.
*
*
* DNS = 2;
*/
public static final int DNS_VALUE = 2;
public final int getNumber() {
if (this == UNRECOGNIZED) {
throw new java.lang.IllegalArgumentException(
"Can't get the number of an unknown enum value.");
}
return value;
}
/**
* @param value The numeric wire value of the corresponding enum entry.
* @return The enum associated with the given numeric wire value.
* @deprecated Use {@link #forNumber(int)} instead.
*/
@java.lang.Deprecated
public static Resolution valueOf(int value) {
return forNumber(value);
}
/**
* @param value The numeric wire value of the corresponding enum entry.
* @return The enum associated with the given numeric wire value.
*/
public static Resolution forNumber(int value) {
switch (value) {
case 0: return NONE;
case 1: return STATIC;
case 2: return DNS;
default: return null;
}
}
public static com.google.protobuf.Internal.EnumLiteMap
internalGetValueMap() {
return internalValueMap;
}
private static final com.google.protobuf.Internal.EnumLiteMap<
Resolution> internalValueMap =
new com.google.protobuf.Internal.EnumLiteMap() {
public Resolution findValueByNumber(int number) {
return Resolution.forNumber(number);
}
};
public final com.google.protobuf.Descriptors.EnumValueDescriptor
getValueDescriptor() {
if (this == UNRECOGNIZED) {
throw new java.lang.IllegalStateException(
"Can't get the descriptor of an unrecognized enum value.");
}
return getDescriptor().getValues().get(ordinal());
}
public final com.google.protobuf.Descriptors.EnumDescriptor
getDescriptorForType() {
return getDescriptor();
}
public static final com.google.protobuf.Descriptors.EnumDescriptor
getDescriptor() {
return istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.getDescriptor().getEnumTypes().get(1);
}
private static final Resolution[] VALUES = values();
public static Resolution valueOf(
com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
if (desc.getType() != getDescriptor()) {
throw new java.lang.IllegalArgumentException(
"EnumValueDescriptor is not for this type.");
}
if (desc.getIndex() == -1) {
return UNRECOGNIZED;
}
return VALUES[desc.getIndex()];
}
private final int value;
private Resolution(int value) {
this.value = value;
}
// @@protoc_insertion_point(enum_scope:istio.networking.v1alpha3.ServiceEntry.Resolution)
}
public static final int HOSTS_FIELD_NUMBER = 1;
private com.google.protobuf.LazyStringList hosts_;
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @return A list containing the hosts.
*/
public com.google.protobuf.ProtocolStringList
getHostsList() {
return hosts_;
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @return The count of hosts.
*/
public int getHostsCount() {
return hosts_.size();
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param index The index of the element to return.
* @return The hosts at the given index.
*/
public java.lang.String getHosts(int index) {
return hosts_.get(index);
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param index The index of the value to return.
* @return The bytes of the hosts at the given index.
*/
public com.google.protobuf.ByteString
getHostsBytes(int index) {
return hosts_.getByteString(index);
}
public static final int ADDRESSES_FIELD_NUMBER = 2;
private com.google.protobuf.LazyStringList addresses_;
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @return A list containing the addresses.
*/
public com.google.protobuf.ProtocolStringList
getAddressesList() {
return addresses_;
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @return The count of addresses.
*/
public int getAddressesCount() {
return addresses_.size();
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param index The index of the element to return.
* @return The addresses at the given index.
*/
public java.lang.String getAddresses(int index) {
return addresses_.get(index);
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param index The index of the value to return.
* @return The bytes of the addresses at the given index.
*/
public com.google.protobuf.ByteString
getAddressesBytes(int index) {
return addresses_.getByteString(index);
}
public static final int PORTS_FIELD_NUMBER = 3;
private java.util.List ports_;
/**
*
* The ports associated with the external service. If the
* Endpoints are Unix domain socket addresses, there must be exactly one
* port.
*
* The ports associated with the external service. If the
* Endpoints are Unix domain socket addresses, there must be exactly one
* port.
*
*
* repeated .istio.networking.v1alpha3.Port ports = 3 [(.google.api.field_behavior) = REQUIRED];
*/
@java.lang.Override
public istio.networking.v1alpha3.GatewayOuterClass.PortOrBuilder getPortsOrBuilder(
int index) {
return ports_.get(index);
}
public static final int LOCATION_FIELD_NUMBER = 4;
private int location_;
/**
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @return The enum numeric value on the wire for location.
*/
@java.lang.Override public int getLocationValue() {
return location_;
}
/**
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @return The location.
*/
@java.lang.Override public istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location getLocation() {
@SuppressWarnings("deprecation")
istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location result = istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location.valueOf(location_);
return result == null ? istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location.UNRECOGNIZED : result;
}
public static final int RESOLUTION_FIELD_NUMBER = 5;
private int resolution_;
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
*
* .istio.networking.v1alpha3.ServiceEntry.Resolution resolution = 5 [(.google.api.field_behavior) = REQUIRED];
* @return The enum numeric value on the wire for resolution.
*/
@java.lang.Override public int getResolutionValue() {
return resolution_;
}
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
*
* .istio.networking.v1alpha3.ServiceEntry.Resolution resolution = 5 [(.google.api.field_behavior) = REQUIRED];
* @return The resolution.
*/
@java.lang.Override public istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution getResolution() {
@SuppressWarnings("deprecation")
istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution result = istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution.valueOf(resolution_);
return result == null ? istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution.UNRECOGNIZED : result;
}
public static final int ENDPOINTS_FIELD_NUMBER = 6;
private java.util.List endpoints_;
/**
*
* One or more endpoints associated with the service. Only one of
* `endpoints` or `workloadSelector` can be specified.
*
* One or more endpoints associated with the service. Only one of
* `endpoints` or `workloadSelector` can be specified.
*
*
* repeated .istio.networking.v1alpha3.WorkloadEntry endpoints = 6;
*/
@java.lang.Override
public istio.networking.v1alpha3.WorkloadEntryOuterClass.WorkloadEntryOrBuilder getEndpointsOrBuilder(
int index) {
return endpoints_.get(index);
}
public static final int WORKLOAD_SELECTOR_FIELD_NUMBER = 9;
private istio.networking.v1alpha3.SidecarOuterClass.WorkloadSelector workloadSelector_;
/**
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
*
* .istio.networking.v1alpha3.WorkloadSelector workload_selector = 9;
* @return Whether the workloadSelector field is set.
*/
@java.lang.Override
public boolean hasWorkloadSelector() {
return workloadSelector_ != null;
}
/**
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
*
* .istio.networking.v1alpha3.WorkloadSelector workload_selector = 9;
*/
@java.lang.Override
public istio.networking.v1alpha3.SidecarOuterClass.WorkloadSelectorOrBuilder getWorkloadSelectorOrBuilder() {
return getWorkloadSelector();
}
public static final int EXPORT_TO_FIELD_NUMBER = 7;
private com.google.protobuf.LazyStringList exportTo_;
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @return A list containing the exportTo.
*/
public com.google.protobuf.ProtocolStringList
getExportToList() {
return exportTo_;
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @return The count of exportTo.
*/
public int getExportToCount() {
return exportTo_.size();
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param index The index of the element to return.
* @return The exportTo at the given index.
*/
public java.lang.String getExportTo(int index) {
return exportTo_.get(index);
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param index The index of the value to return.
* @return The bytes of the exportTo at the given index.
*/
public com.google.protobuf.ByteString
getExportToBytes(int index) {
return exportTo_.getByteString(index);
}
public static final int SUBJECT_ALT_NAMES_FIELD_NUMBER = 8;
private com.google.protobuf.LazyStringList subjectAltNames_;
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @return A list containing the subjectAltNames.
*/
public com.google.protobuf.ProtocolStringList
getSubjectAltNamesList() {
return subjectAltNames_;
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @return The count of subjectAltNames.
*/
public int getSubjectAltNamesCount() {
return subjectAltNames_.size();
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param index The index of the element to return.
* @return The subjectAltNames at the given index.
*/
public java.lang.String getSubjectAltNames(int index) {
return subjectAltNames_.get(index);
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param index The index of the value to return.
* @return The bytes of the subjectAltNames at the given index.
*/
public com.google.protobuf.ByteString
getSubjectAltNamesBytes(int index) {
return subjectAltNames_.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 < addresses_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 2, addresses_.getRaw(i));
}
for (int i = 0; i < ports_.size(); i++) {
output.writeMessage(3, ports_.get(i));
}
if (location_ != istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location.MESH_EXTERNAL.getNumber()) {
output.writeEnum(4, location_);
}
if (resolution_ != istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution.NONE.getNumber()) {
output.writeEnum(5, resolution_);
}
for (int i = 0; i < endpoints_.size(); i++) {
output.writeMessage(6, endpoints_.get(i));
}
for (int i = 0; i < exportTo_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 7, exportTo_.getRaw(i));
}
for (int i = 0; i < subjectAltNames_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 8, subjectAltNames_.getRaw(i));
}
if (workloadSelector_ != null) {
output.writeMessage(9, getWorkloadSelector());
}
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 < addresses_.size(); i++) {
dataSize += computeStringSizeNoTag(addresses_.getRaw(i));
}
size += dataSize;
size += 1 * getAddressesList().size();
}
for (int i = 0; i < ports_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, ports_.get(i));
}
if (location_ != istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location.MESH_EXTERNAL.getNumber()) {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(4, location_);
}
if (resolution_ != istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution.NONE.getNumber()) {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(5, resolution_);
}
for (int i = 0; i < endpoints_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(6, endpoints_.get(i));
}
{
int dataSize = 0;
for (int i = 0; i < exportTo_.size(); i++) {
dataSize += computeStringSizeNoTag(exportTo_.getRaw(i));
}
size += dataSize;
size += 1 * getExportToList().size();
}
{
int dataSize = 0;
for (int i = 0; i < subjectAltNames_.size(); i++) {
dataSize += computeStringSizeNoTag(subjectAltNames_.getRaw(i));
}
size += dataSize;
size += 1 * getSubjectAltNamesList().size();
}
if (workloadSelector_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(9, getWorkloadSelector());
}
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.ServiceEntryOuterClass.ServiceEntry)) {
return super.equals(obj);
}
istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry other = (istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry) obj;
if (!getHostsList()
.equals(other.getHostsList())) return false;
if (!getAddressesList()
.equals(other.getAddressesList())) return false;
if (!getPortsList()
.equals(other.getPortsList())) return false;
if (location_ != other.location_) return false;
if (resolution_ != other.resolution_) return false;
if (!getEndpointsList()
.equals(other.getEndpointsList())) return false;
if (hasWorkloadSelector() != other.hasWorkloadSelector()) return false;
if (hasWorkloadSelector()) {
if (!getWorkloadSelector()
.equals(other.getWorkloadSelector())) return false;
}
if (!getExportToList()
.equals(other.getExportToList())) return false;
if (!getSubjectAltNamesList()
.equals(other.getSubjectAltNamesList())) 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 (getAddressesCount() > 0) {
hash = (37 * hash) + ADDRESSES_FIELD_NUMBER;
hash = (53 * hash) + getAddressesList().hashCode();
}
if (getPortsCount() > 0) {
hash = (37 * hash) + PORTS_FIELD_NUMBER;
hash = (53 * hash) + getPortsList().hashCode();
}
hash = (37 * hash) + LOCATION_FIELD_NUMBER;
hash = (53 * hash) + location_;
hash = (37 * hash) + RESOLUTION_FIELD_NUMBER;
hash = (53 * hash) + resolution_;
if (getEndpointsCount() > 0) {
hash = (37 * hash) + ENDPOINTS_FIELD_NUMBER;
hash = (53 * hash) + getEndpointsList().hashCode();
}
if (hasWorkloadSelector()) {
hash = (37 * hash) + WORKLOAD_SELECTOR_FIELD_NUMBER;
hash = (53 * hash) + getWorkloadSelector().hashCode();
}
if (getExportToCount() > 0) {
hash = (37 * hash) + EXPORT_TO_FIELD_NUMBER;
hash = (53 * hash) + getExportToList().hashCode();
}
if (getSubjectAltNamesCount() > 0) {
hash = (37 * hash) + SUBJECT_ALT_NAMES_FIELD_NUMBER;
hash = (53 * hash) + getSubjectAltNamesList().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry 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.ServiceEntryOuterClass.ServiceEntry parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry 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.ServiceEntryOuterClass.ServiceEntry parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry 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.ServiceEntryOuterClass.ServiceEntry parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry 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.ServiceEntryOuterClass.ServiceEntry parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry 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.ServiceEntryOuterClass.ServiceEntry 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;
}
/**
*
* ServiceEntry enables adding additional entries into Istio's internal
* service registry.
* <!-- crd generation tags
* +cue-gen:ServiceEntry:groupName:networking.istio.io
* +cue-gen:ServiceEntry:version:v1alpha3
* +cue-gen:ServiceEntry:storageVersion
* +cue-gen:ServiceEntry:annotations:helm.sh/resource-policy=keep
* +cue-gen:ServiceEntry:labels:app=istio-pilot,chart=istio,heritage=Tiller,release=istio
* +cue-gen:ServiceEntry:subresource:status
* +cue-gen:ServiceEntry:scope:Namespaced
* +cue-gen:ServiceEntry:resource:categories=istio-io,networking-istio-io,shortNames=se,plural=serviceentries
* +cue-gen:ServiceEntry:printerColumn:name=Hosts,type=string,JSONPath=.spec.hosts,description="The hosts associated with the ServiceEntry"
* +cue-gen:ServiceEntry:printerColumn:name=Location,type=string,JSONPath=.spec.location,description="Whether the service is external to the
* mesh or part of the mesh (MESH_EXTERNAL or MESH_INTERNAL)"
* +cue-gen:ServiceEntry:printerColumn:name=Resolution,type=string,JSONPath=.spec.resolution,description="Service discovery mode for the hosts
* (NONE, STATIC, or DNS)"
* +cue-gen:ServiceEntry: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:ServiceEntry:preserveUnknownFields:false
* -->
* <!-- go code generation tags
* +kubetype-gen
* +kubetype-gen:groupVersion=networking.istio.io/v1alpha3
* +genclient
* +k8s:deepcopy-gen=true
* -->
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @return A list containing the hosts.
*/
public com.google.protobuf.ProtocolStringList
getHostsList() {
return hosts_.getUnmodifiableView();
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @return The count of hosts.
*/
public int getHostsCount() {
return hosts_.size();
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param index The index of the element to return.
* @return The hosts at the given index.
*/
public java.lang.String getHosts(int index) {
return hosts_.get(index);
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param index The index of the value to return.
* @return The bytes of the hosts at the given index.
*/
public com.google.protobuf.ByteString
getHostsBytes(int index) {
return hosts_.getByteString(index);
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param index The index to set the value at.
* @param value The hosts to set.
* @return This builder for chaining.
*/
public Builder setHosts(
int index, java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureHostsIsMutable();
hosts_.set(index, value);
onChanged();
return this;
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param value The hosts to add.
* @return This builder for chaining.
*/
public Builder addHosts(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureHostsIsMutable();
hosts_.add(value);
onChanged();
return this;
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param values The hosts to add.
* @return This builder for chaining.
*/
public Builder addAllHosts(
java.lang.Iterable values) {
ensureHostsIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
values, hosts_);
onChanged();
return this;
}
/**
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
* The hosts associated with the ServiceEntry. Could be a DNS
* name with wildcard prefix.
* 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
* 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
* 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
* will be matched against the hosts field.
* **NOTE 1:** When resolution is set to type DNS and no endpoints
* are specified, the host field will be used as the DNS name of the
* endpoint to route traffic to.
* **NOTE 2:** If the hostname matches with the name of a service
* from another service registry such as Kubernetes that also
* supplies its own set of endpoints, the ServiceEntry will be
* treated as a decorator of the existing Kubernetes
* service. Properties in the service entry will be added to the
* Kubernetes service if applicable. Currently, the only the
* following additional properties will be considered by `istiod`:
* 1. subjectAltNames: In addition to verifying the SANs of the
* service accounts associated with the pods of the service, the
* SANs specified here will also be verified.
*
*
* repeated string hosts = 1 [(.google.api.field_behavior) = REQUIRED];
* @param value The bytes of the hosts to add.
* @return This builder for chaining.
*/
public Builder addHostsBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
ensureHostsIsMutable();
hosts_.add(value);
onChanged();
return this;
}
private com.google.protobuf.LazyStringList addresses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
private void ensureAddressesIsMutable() {
if (!((bitField0_ & 0x00000002) != 0)) {
addresses_ = new com.google.protobuf.LazyStringArrayList(addresses_);
bitField0_ |= 0x00000002;
}
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @return A list containing the addresses.
*/
public com.google.protobuf.ProtocolStringList
getAddressesList() {
return addresses_.getUnmodifiableView();
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @return The count of addresses.
*/
public int getAddressesCount() {
return addresses_.size();
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param index The index of the element to return.
* @return The addresses at the given index.
*/
public java.lang.String getAddresses(int index) {
return addresses_.get(index);
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param index The index of the value to return.
* @return The bytes of the addresses at the given index.
*/
public com.google.protobuf.ByteString
getAddressesBytes(int index) {
return addresses_.getByteString(index);
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param index The index to set the value at.
* @param value The addresses to set.
* @return This builder for chaining.
*/
public Builder setAddresses(
int index, java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureAddressesIsMutable();
addresses_.set(index, value);
onChanged();
return this;
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param value The addresses to add.
* @return This builder for chaining.
*/
public Builder addAddresses(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureAddressesIsMutable();
addresses_.add(value);
onChanged();
return this;
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param values The addresses to add.
* @return This builder for chaining.
*/
public Builder addAllAddresses(
java.lang.Iterable values) {
ensureAddressesIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
values, addresses_);
onChanged();
return this;
}
/**
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
* The virtual IP addresses associated with the service. Could be CIDR
* prefix. For HTTP traffic, generated route configurations will include http route
* domains for both the `addresses` and `hosts` field values and the destination will
* be identified based on the HTTP Host/Authority header.
* If one or more IP addresses are specified,
* the incoming traffic will be identified as belonging to this service
* if the destination IP matches the IP/CIDRs specified in the addresses
* field. If the Addresses field is empty, traffic will be identified
* solely based on the destination port. In such scenarios, the port on
* which the service is being accessed must not be shared by any other
* service in the mesh. In other words, the sidecar will behave as a
* simple TCP proxy, forwarding incoming traffic on a specified port to
* the specified destination endpoint IP/host. Unix domain socket
* addresses are not supported in this field.
*
*
* repeated string addresses = 2;
* @param value The bytes of the addresses to add.
* @return This builder for chaining.
*/
public Builder addAddressesBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
ensureAddressesIsMutable();
addresses_.add(value);
onChanged();
return this;
}
private java.util.List ports_ =
java.util.Collections.emptyList();
private void ensurePortsIsMutable() {
if (!((bitField0_ & 0x00000004) != 0)) {
ports_ = new java.util.ArrayList(ports_);
bitField0_ |= 0x00000004;
}
}
private com.google.protobuf.RepeatedFieldBuilderV3<
istio.networking.v1alpha3.GatewayOuterClass.Port, istio.networking.v1alpha3.GatewayOuterClass.Port.Builder, istio.networking.v1alpha3.GatewayOuterClass.PortOrBuilder> portsBuilder_;
/**
*
* The ports associated with the external service. If the
* Endpoints are Unix domain socket addresses, there must be exactly one
* port.
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @return The enum numeric value on the wire for location.
*/
@java.lang.Override public int getLocationValue() {
return location_;
}
/**
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @param value The enum numeric value on the wire for location to set.
* @return This builder for chaining.
*/
public Builder setLocationValue(int value) {
location_ = value;
onChanged();
return this;
}
/**
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @return The location.
*/
@java.lang.Override
public istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location getLocation() {
@SuppressWarnings("deprecation")
istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location result = istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location.valueOf(location_);
return result == null ? istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location.UNRECOGNIZED : result;
}
/**
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @param value The location to set.
* @return This builder for chaining.
*/
public Builder setLocation(istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Location value) {
if (value == null) {
throw new NullPointerException();
}
location_ = value.getNumber();
onChanged();
return this;
}
/**
*
* Specify whether the service should be considered external to the mesh
* or part of the mesh.
*
*
* .istio.networking.v1alpha3.ServiceEntry.Location location = 4;
* @return This builder for chaining.
*/
public Builder clearLocation() {
location_ = 0;
onChanged();
return this;
}
private int resolution_ = 0;
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
*
* .istio.networking.v1alpha3.ServiceEntry.Resolution resolution = 5 [(.google.api.field_behavior) = REQUIRED];
* @return The enum numeric value on the wire for resolution.
*/
@java.lang.Override public int getResolutionValue() {
return resolution_;
}
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
*
* .istio.networking.v1alpha3.ServiceEntry.Resolution resolution = 5 [(.google.api.field_behavior) = REQUIRED];
* @param value The enum numeric value on the wire for resolution to set.
* @return This builder for chaining.
*/
public Builder setResolutionValue(int value) {
resolution_ = value;
onChanged();
return this;
}
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
*
* .istio.networking.v1alpha3.ServiceEntry.Resolution resolution = 5 [(.google.api.field_behavior) = REQUIRED];
* @return The resolution.
*/
@java.lang.Override
public istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution getResolution() {
@SuppressWarnings("deprecation")
istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution result = istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution.valueOf(resolution_);
return result == null ? istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution.UNRECOGNIZED : result;
}
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
*
* .istio.networking.v1alpha3.ServiceEntry.Resolution resolution = 5 [(.google.api.field_behavior) = REQUIRED];
* @param value The resolution to set.
* @return This builder for chaining.
*/
public Builder setResolution(istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry.Resolution value) {
if (value == null) {
throw new NullPointerException();
}
resolution_ = value.getNumber();
onChanged();
return this;
}
/**
*
* Service discovery mode for the hosts. Care must be taken
* when setting the resolution mode to NONE for a TCP port without
* accompanying IP addresses. In such cases, traffic to any IP on
* said port will be allowed (i.e. `0.0.0.0:<port>`).
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
*
* .istio.networking.v1alpha3.WorkloadSelector workload_selector = 9;
* @return Whether the workloadSelector field is set.
*/
public boolean hasWorkloadSelector() {
return workloadSelectorBuilder_ != null || workloadSelector_ != null;
}
/**
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
*
* .istio.networking.v1alpha3.WorkloadSelector workload_selector = 9;
*/
public Builder setWorkloadSelector(istio.networking.v1alpha3.SidecarOuterClass.WorkloadSelector value) {
if (workloadSelectorBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
workloadSelector_ = value;
onChanged();
} else {
workloadSelectorBuilder_.setMessage(value);
}
return this;
}
/**
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* Applicable only for MESH_INTERNAL services. Only one of
* `endpoints` or `workloadSelector` can be specified. Selects one
* or more Kubernetes pods or VM workloads (specified using
* `WorkloadEntry`) based on their labels. The `WorkloadEntry` object
* representing the VMs should be defined in the same namespace as
* the ServiceEntry.
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @return A list containing the exportTo.
*/
public com.google.protobuf.ProtocolStringList
getExportToList() {
return exportTo_.getUnmodifiableView();
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @return The count of exportTo.
*/
public int getExportToCount() {
return exportTo_.size();
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param index The index of the element to return.
* @return The exportTo at the given index.
*/
public java.lang.String getExportTo(int index) {
return exportTo_.get(index);
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param index The index of the value to return.
* @return The bytes of the exportTo at the given index.
*/
public com.google.protobuf.ByteString
getExportToBytes(int index) {
return exportTo_.getByteString(index);
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param index The index to set the value at.
* @param value The exportTo to set.
* @return This builder for chaining.
*/
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 service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param value The exportTo to add.
* @return This builder for chaining.
*/
public Builder addExportTo(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureExportToIsMutable();
exportTo_.add(value);
onChanged();
return this;
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param values The exportTo to add.
* @return This builder for chaining.
*/
public Builder addAllExportTo(
java.lang.Iterable values) {
ensureExportToIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
values, exportTo_);
onChanged();
return this;
}
/**
*
* A list of namespaces to which this service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* 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 service is exported. Exporting a service
* allows it to be used by sidecars, gateways and virtual services defined in
* other namespaces. This feature provides a mechanism for service owners
* and mesh administrators to control the visibility of services across
* namespace boundaries.
* If no namespaces are specified then the service is exported to all
* namespaces by default.
* The value "." is reserved and defines an export to the same namespace that
* the service is declared in. Similarly the value "*" is reserved and
* defines an export to all namespaces.
* For a Kubernetes Service, the equivalent effect can be achieved by setting
* the annotation "networking.istio.io/exportTo" to a comma-separated list
* of namespace names.
* NOTE: in the current release, the `exportTo` value is restricted to
* "." or "*" (i.e., the current namespace or all namespaces).
*
*
* repeated string export_to = 7;
* @param value The bytes of the exportTo to add.
* @return This builder for chaining.
*/
public Builder addExportToBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
ensureExportToIsMutable();
exportTo_.add(value);
onChanged();
return this;
}
private com.google.protobuf.LazyStringList subjectAltNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
private void ensureSubjectAltNamesIsMutable() {
if (!((bitField0_ & 0x00000020) != 0)) {
subjectAltNames_ = new com.google.protobuf.LazyStringArrayList(subjectAltNames_);
bitField0_ |= 0x00000020;
}
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @return A list containing the subjectAltNames.
*/
public com.google.protobuf.ProtocolStringList
getSubjectAltNamesList() {
return subjectAltNames_.getUnmodifiableView();
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @return The count of subjectAltNames.
*/
public int getSubjectAltNamesCount() {
return subjectAltNames_.size();
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param index The index of the element to return.
* @return The subjectAltNames at the given index.
*/
public java.lang.String getSubjectAltNames(int index) {
return subjectAltNames_.get(index);
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param index The index of the value to return.
* @return The bytes of the subjectAltNames at the given index.
*/
public com.google.protobuf.ByteString
getSubjectAltNamesBytes(int index) {
return subjectAltNames_.getByteString(index);
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param index The index to set the value at.
* @param value The subjectAltNames to set.
* @return This builder for chaining.
*/
public Builder setSubjectAltNames(
int index, java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureSubjectAltNamesIsMutable();
subjectAltNames_.set(index, value);
onChanged();
return this;
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param value The subjectAltNames to add.
* @return This builder for chaining.
*/
public Builder addSubjectAltNames(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
ensureSubjectAltNamesIsMutable();
subjectAltNames_.add(value);
onChanged();
return this;
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param values The subjectAltNames to add.
* @return This builder for chaining.
*/
public Builder addAllSubjectAltNames(
java.lang.Iterable values) {
ensureSubjectAltNamesIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
values, subjectAltNames_);
onChanged();
return this;
}
/**
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
* If specified, the proxy will verify that the server certificate's
* subject alternate name matches one of the specified values.
* NOTE: When using the workloadEntry with workloadSelectors, the
* service account specified in the workloadEntry will also be used
* to derive the additional subject alternate names that should be
* verified.
*
*
* repeated string subject_alt_names = 8;
* @param value The bytes of the subjectAltNames to add.
* @return This builder for chaining.
*/
public Builder addSubjectAltNamesBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
ensureSubjectAltNamesIsMutable();
subjectAltNames_.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.ServiceEntry)
}
// @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceEntry)
private static final istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry();
}
public static istio.networking.v1alpha3.ServiceEntryOuterClass.ServiceEntry getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public ServiceEntry parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new ServiceEntry(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.ServiceEntryOuterClass.ServiceEntry getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private static final com.google.protobuf.Descriptors.Descriptor
internal_static_istio_networking_v1alpha3_ServiceEntry_descriptor;
private static final
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_istio_networking_v1alpha3_ServiceEntry_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\'networking/v1alpha3/service_entry.prot" +
"o\022\031istio.networking.v1alpha3\032\037google/api" +
"/field_behavior.proto\032!networking/v1alph" +
"a3/gateway.proto\032!networking/v1alpha3/si" +
"decar.proto\032(networking/v1alpha3/workloa" +
"d_entry.proto\"\215\004\n\014ServiceEntry\022\022\n\005hosts\030" +
"\001 \003(\tB\003\340A\002\022\021\n\taddresses\030\002 \003(\t\0223\n\005ports\030\003" +
" \003(\0132\037.istio.networking.v1alpha3.PortB\003\340" +
"A\002\022B\n\010location\030\004 \001(\01620.istio.networking." +
"v1alpha3.ServiceEntry.Location\022K\n\nresolu" +
"tion\030\005 \001(\01622.istio.networking.v1alpha3.S" +
"erviceEntry.ResolutionB\003\340A\002\022;\n\tendpoints" +
"\030\006 \003(\0132(.istio.networking.v1alpha3.Workl" +
"oadEntry\022F\n\021workload_selector\030\t \001(\0132+.is" +
"tio.networking.v1alpha3.WorkloadSelector" +
"\022\021\n\texport_to\030\007 \003(\t\022\031\n\021subject_alt_names" +
"\030\010 \003(\t\"0\n\010Location\022\021\n\rMESH_EXTERNAL\020\000\022\021\n" +
"\rMESH_INTERNAL\020\001\"+\n\nResolution\022\010\n\004NONE\020\000" +
"\022\n\n\006STATIC\020\001\022\007\n\003DNS\020\002B\"Z istio.io/api/ne" +
"tworking/v1alpha3b\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
com.google.api.FieldBehaviorProto.getDescriptor(),
istio.networking.v1alpha3.GatewayOuterClass.getDescriptor(),
istio.networking.v1alpha3.SidecarOuterClass.getDescriptor(),
istio.networking.v1alpha3.WorkloadEntryOuterClass.getDescriptor(),
});
internal_static_istio_networking_v1alpha3_ServiceEntry_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_istio_networking_v1alpha3_ServiceEntry_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_istio_networking_v1alpha3_ServiceEntry_descriptor,
new java.lang.String[] { "Hosts", "Addresses", "Ports", "Location", "Resolution", "Endpoints", "WorkloadSelector", "ExportTo", "SubjectAltNames", });
com.google.protobuf.ExtensionRegistry registry =
com.google.protobuf.ExtensionRegistry.newInstance();
registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
com.google.protobuf.Descriptors.FileDescriptor
.internalUpdateFileDescriptor(descriptor, registry);
com.google.api.FieldBehaviorProto.getDescriptor();
istio.networking.v1alpha3.GatewayOuterClass.getDescriptor();
istio.networking.v1alpha3.SidecarOuterClass.getDescriptor();
istio.networking.v1alpha3.WorkloadEntryOuterClass.getDescriptor();
}
// @@protoc_insertion_point(outer_class_scope)
}