All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alibaba.nacos.istio.model.Server Maven / Gradle / Ivy

There is a newer version: 2.3.2
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: gateway.proto

package com.alibaba.nacos.istio.model;

/**
 * 
 * `Server` describes the properties of the proxy on a given load balancer
 * port. For example,
 * ```yaml
 * apiVersion: networking.istio.io/v1alpha3
 * kind: Gateway
 * metadata:
 *   name: my-ingress
 * spec:
 *   selector:
 *     app: my-ingress-gateway
 *   servers:
 *   - port:
 *       number: 80
 *       name: http2
 *       protocol: HTTP2
 *     hosts:
 *     - "*"
 * ```
 * Another example
 * ```yaml
 * apiVersion: networking.istio.io/v1alpha3
 * kind: Gateway
 * metadata:
 *   name: my-tcp-ingress
 * spec:
 *   selector:
 *     app: my-tcp-ingress-gateway
 *   servers:
 *   - port:
 *       number: 27018
 *       name: mongo
 *       protocol: MONGO
 *     hosts:
 *     - "*"
 * ```
 * The following is an example of TLS configuration for port 443
 * ```yaml
 * apiVersion: networking.istio.io/v1alpha3
 * kind: Gateway
 * metadata:
 *   name: my-tls-ingress
 * spec:
 *   selector:
 *     app: my-tls-ingress-gateway
 *   servers:
 *   - port:
 *       number: 443
 *       name: https
 *       protocol: HTTPS
 *     hosts:
 *     - "*"
 *     tls:
 *       mode: SIMPLE
 *       serverCertificate: /etc/certs/server.pem
 *       privateKey: /etc/certs/privatekey.pem
 * ```
 * 
* * Protobuf type {@code istio.networking.v1alpha3.Server} */ public final class Server extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.Server) ServerOrBuilder { private static final long serialVersionUID = 0L; // Use Server.newBuilder() to construct. private Server(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Server() { bind_ = ""; hosts_ = com.google.protobuf.LazyStringArrayList.EMPTY; defaultEndpoint_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Server(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private Server( 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: { com.alibaba.nacos.istio.model.Port.Builder subBuilder = null; if (port_ != null) { subBuilder = port_.toBuilder(); } port_ = input.readMessage(com.alibaba.nacos.istio.model.Port.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(port_); port_ = subBuilder.buildPartial(); } break; } case 18: { 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 26: { com.alibaba.nacos.istio.model.Server.TLSOptions.Builder subBuilder = null; if (tls_ != null) { subBuilder = tls_.toBuilder(); } tls_ = input.readMessage(com.alibaba.nacos.istio.model.Server.TLSOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(tls_); tls_ = subBuilder.buildPartial(); } break; } case 34: { java.lang.String s = input.readStringRequireUtf8(); bind_ = s; break; } case 42: { java.lang.String s = input.readStringRequireUtf8(); defaultEndpoint_ = s; break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { hosts_ = hosts_.getUnmodifiableView(); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_fieldAccessorTable .ensureFieldAccessorsInitialized( com.alibaba.nacos.istio.model.Server.class, com.alibaba.nacos.istio.model.Server.Builder.class); } public interface TLSOptionsOrBuilder extends // @@protoc_insertion_point(interface_extends:istio.networking.v1alpha3.Server.TLSOptions) com.google.protobuf.MessageOrBuilder { /** *
     * If set to true, the load balancer will send a 301 redirect for all
     * http connections, asking the clients to use HTTPS.
     * 
* * bool https_redirect = 1; * @return The httpsRedirect. */ boolean getHttpsRedirect(); /** *
     * Optional: Indicates whether connections to this port should be
     * secured using TLS. The value of this field determines how TLS is
     * enforced.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @return The enum numeric value on the wire for mode. */ int getModeValue(); /** *
     * Optional: Indicates whether connections to this port should be
     * secured using TLS. The value of this field determines how TLS is
     * enforced.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @return The mode. */ com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode getMode(); /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server-side TLS certificate to use.
     * 
* * string server_certificate = 3; * @return The serverCertificate. */ java.lang.String getServerCertificate(); /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server-side TLS certificate to use.
     * 
* * string server_certificate = 3; * @return The bytes for serverCertificate. */ com.google.protobuf.ByteString getServerCertificateBytes(); /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server's private key.
     * 
* * string private_key = 4; * @return The privateKey. */ java.lang.String getPrivateKey(); /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server's private key.
     * 
* * string private_key = 4; * @return The bytes for privateKey. */ com.google.protobuf.ByteString getPrivateKeyBytes(); /** *
     * REQUIRED if mode is `MUTUAL`. The path to a file containing
     * certificate authority certificates to use in verifying a presented
     * client side certificate.
     * 
* * string ca_certificates = 5; * @return The caCertificates. */ java.lang.String getCaCertificates(); /** *
     * REQUIRED if mode is `MUTUAL`. The path to a file containing
     * certificate authority certificates to use in verifying a presented
     * client side certificate.
     * 
* * string ca_certificates = 5; * @return The bytes for caCertificates. */ com.google.protobuf.ByteString getCaCertificatesBytes(); /** *
     * The credentialName stands for a unique identifier that can be used
     * to identify the serverCertificate and the privateKey. The
     * credentialName appended with suffix "-cacert" is used to identify
     * the CaCertificates associated with this server. Gateway workloads
     * capable of fetching credentials from a remote credential store such
     * as Kubernetes secrets, will be configured to retrieve the
     * serverCertificate and the privateKey using credentialName, instead
     * of using the file system paths specified above. If using mutual TLS,
     * gateway workload instances will retrieve the CaCertificates using
     * credentialName-cacert. The semantics of the name are platform
     * dependent.  In Kubernetes, the default Istio supplied credential
     * server expects the credentialName to match the name of the
     * Kubernetes secret that holds the server certificate, the private
     * key, and the CA certificate (if using mutual TLS). Set the
     * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
     * enable the dynamic credential fetching feature.
     * 
* * string credential_name = 10; * @return The credentialName. */ java.lang.String getCredentialName(); /** *
     * The credentialName stands for a unique identifier that can be used
     * to identify the serverCertificate and the privateKey. The
     * credentialName appended with suffix "-cacert" is used to identify
     * the CaCertificates associated with this server. Gateway workloads
     * capable of fetching credentials from a remote credential store such
     * as Kubernetes secrets, will be configured to retrieve the
     * serverCertificate and the privateKey using credentialName, instead
     * of using the file system paths specified above. If using mutual TLS,
     * gateway workload instances will retrieve the CaCertificates using
     * credentialName-cacert. The semantics of the name are platform
     * dependent.  In Kubernetes, the default Istio supplied credential
     * server expects the credentialName to match the name of the
     * Kubernetes secret that holds the server certificate, the private
     * key, and the CA certificate (if using mutual TLS). Set the
     * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
     * enable the dynamic credential fetching feature.
     * 
* * string credential_name = 10; * @return The bytes for credentialName. */ com.google.protobuf.ByteString getCredentialNameBytes(); /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @return A list containing the subjectAltNames. */ java.util.List getSubjectAltNamesList(); /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @return The count of subjectAltNames. */ int getSubjectAltNamesCount(); /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @param index The index of the element to return. * @return The subjectAltNames at the given index. */ java.lang.String getSubjectAltNames(int index); /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @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); /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @return A list containing the verifyCertificateSpki. */ java.util.List getVerifyCertificateSpkiList(); /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @return The count of verifyCertificateSpki. */ int getVerifyCertificateSpkiCount(); /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @param index The index of the element to return. * @return The verifyCertificateSpki at the given index. */ java.lang.String getVerifyCertificateSpki(int index); /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @param index The index of the value to return. * @return The bytes of the verifyCertificateSpki at the given index. */ com.google.protobuf.ByteString getVerifyCertificateSpkiBytes(int index); /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @return A list containing the verifyCertificateHash. */ java.util.List getVerifyCertificateHashList(); /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @return The count of verifyCertificateHash. */ int getVerifyCertificateHashCount(); /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @param index The index of the element to return. * @return The verifyCertificateHash at the given index. */ java.lang.String getVerifyCertificateHash(int index); /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @param index The index of the value to return. * @return The bytes of the verifyCertificateHash at the given index. */ com.google.protobuf.ByteString getVerifyCertificateHashBytes(int index); /** *
     * Optional: Minimum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @return The enum numeric value on the wire for minProtocolVersion. */ int getMinProtocolVersionValue(); /** *
     * Optional: Minimum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @return The minProtocolVersion. */ com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol getMinProtocolVersion(); /** *
     * Optional: Maximum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @return The enum numeric value on the wire for maxProtocolVersion. */ int getMaxProtocolVersionValue(); /** *
     * Optional: Maximum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @return The maxProtocolVersion. */ com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol getMaxProtocolVersion(); /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @return A list containing the cipherSuites. */ java.util.List getCipherSuitesList(); /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @return The count of cipherSuites. */ int getCipherSuitesCount(); /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @param index The index of the element to return. * @return The cipherSuites at the given index. */ java.lang.String getCipherSuites(int index); /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @param index The index of the value to return. * @return The bytes of the cipherSuites at the given index. */ com.google.protobuf.ByteString getCipherSuitesBytes(int index); } /** * Protobuf type {@code istio.networking.v1alpha3.Server.TLSOptions} */ public static final class TLSOptions extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:istio.networking.v1alpha3.Server.TLSOptions) TLSOptionsOrBuilder { private static final long serialVersionUID = 0L; // Use TLSOptions.newBuilder() to construct. private TLSOptions(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private TLSOptions() { mode_ = 0; serverCertificate_ = ""; privateKey_ = ""; caCertificates_ = ""; credentialName_ = ""; subjectAltNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; verifyCertificateSpki_ = com.google.protobuf.LazyStringArrayList.EMPTY; verifyCertificateHash_ = com.google.protobuf.LazyStringArrayList.EMPTY; minProtocolVersion_ = 0; maxProtocolVersion_ = 0; cipherSuites_ = com.google.protobuf.LazyStringArrayList.EMPTY; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new TLSOptions(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private TLSOptions( 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 8: { httpsRedirect_ = input.readBool(); break; } case 16: { int rawValue = input.readEnum(); mode_ = rawValue; break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); serverCertificate_ = s; break; } case 34: { java.lang.String s = input.readStringRequireUtf8(); privateKey_ = s; break; } case 42: { java.lang.String s = input.readStringRequireUtf8(); caCertificates_ = s; break; } case 50: { java.lang.String s = input.readStringRequireUtf8(); if (!((mutable_bitField0_ & 0x00000001) != 0)) { subjectAltNames_ = new com.google.protobuf.LazyStringArrayList(); mutable_bitField0_ |= 0x00000001; } subjectAltNames_.add(s); break; } case 56: { int rawValue = input.readEnum(); minProtocolVersion_ = rawValue; break; } case 64: { int rawValue = input.readEnum(); maxProtocolVersion_ = rawValue; break; } case 74: { java.lang.String s = input.readStringRequireUtf8(); if (!((mutable_bitField0_ & 0x00000008) != 0)) { cipherSuites_ = new com.google.protobuf.LazyStringArrayList(); mutable_bitField0_ |= 0x00000008; } cipherSuites_.add(s); break; } case 82: { java.lang.String s = input.readStringRequireUtf8(); credentialName_ = s; break; } case 90: { java.lang.String s = input.readStringRequireUtf8(); if (!((mutable_bitField0_ & 0x00000002) != 0)) { verifyCertificateSpki_ = new com.google.protobuf.LazyStringArrayList(); mutable_bitField0_ |= 0x00000002; } verifyCertificateSpki_.add(s); break; } case 98: { java.lang.String s = input.readStringRequireUtf8(); if (!((mutable_bitField0_ & 0x00000004) != 0)) { verifyCertificateHash_ = new com.google.protobuf.LazyStringArrayList(); mutable_bitField0_ |= 0x00000004; } verifyCertificateHash_.add(s); break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { subjectAltNames_ = subjectAltNames_.getUnmodifiableView(); } if (((mutable_bitField0_ & 0x00000008) != 0)) { cipherSuites_ = cipherSuites_.getUnmodifiableView(); } if (((mutable_bitField0_ & 0x00000002) != 0)) { verifyCertificateSpki_ = verifyCertificateSpki_.getUnmodifiableView(); } if (((mutable_bitField0_ & 0x00000004) != 0)) { verifyCertificateHash_ = verifyCertificateHash_.getUnmodifiableView(); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_TLSOptions_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_TLSOptions_fieldAccessorTable .ensureFieldAccessorsInitialized( com.alibaba.nacos.istio.model.Server.TLSOptions.class, com.alibaba.nacos.istio.model.Server.TLSOptions.Builder.class); } /** *
     * TLS modes enforced by the proxy
     * 
* * Protobuf enum {@code istio.networking.v1alpha3.Server.TLSOptions.TLSmode} */ public enum TLSmode implements com.google.protobuf.ProtocolMessageEnum { /** *
       * The SNI string presented by the client will be used as the match
       * criterion in a VirtualService TLS route to determine the
       * destination service from the service registry.
       * 
* * PASSTHROUGH = 0; */ PASSTHROUGH(0), /** *
       * Secure connections with standard TLS semantics.
       * 
* * SIMPLE = 1; */ SIMPLE(1), /** *
       * Secure connections to the downstream using mutual TLS by presenting
       * server certificates for authentication.
       * 
* * MUTUAL = 2; */ MUTUAL(2), /** *
       * Similar to the passthrough mode, except servers with this TLS mode
       * do not require an associated VirtualService to map from the SNI
       * value to service in the registry. The destination details such as
       * the service/subset/port are encoded in the SNI value. The proxy
       * will forward to the upstream (Envoy) cluster (a group of
       * endpoints) specified by the SNI value. This server is typically
       * used to provide connectivity between services in disparate L3
       * networks that otherwise do not have direct connectivity between
       * their respective endpoints. Use of this mode assumes that both the
       * source and the destination are using Istio mTLS to secure traffic.
       * 
* * AUTO_PASSTHROUGH = 3; */ AUTO_PASSTHROUGH(3), /** *
       * Secure connections from the downstream using mutual TLS by presenting
       * server certificates for authentication.
       * Compared to Mutual mode, this mode uses certificates, representing
       * gateway workload identity, generated automatically by Istio for
       * mTLS authentication. When this mode is used, all other fields in
       * `TLSOptions` should be empty.
       * 
* * ISTIO_MUTUAL = 4; */ ISTIO_MUTUAL(4), UNRECOGNIZED(-1), ; /** *
       * The SNI string presented by the client will be used as the match
       * criterion in a VirtualService TLS route to determine the
       * destination service from the service registry.
       * 
* * PASSTHROUGH = 0; */ public static final int PASSTHROUGH_VALUE = 0; /** *
       * Secure connections with standard TLS semantics.
       * 
* * SIMPLE = 1; */ public static final int SIMPLE_VALUE = 1; /** *
       * Secure connections to the downstream using mutual TLS by presenting
       * server certificates for authentication.
       * 
* * MUTUAL = 2; */ public static final int MUTUAL_VALUE = 2; /** *
       * Similar to the passthrough mode, except servers with this TLS mode
       * do not require an associated VirtualService to map from the SNI
       * value to service in the registry. The destination details such as
       * the service/subset/port are encoded in the SNI value. The proxy
       * will forward to the upstream (Envoy) cluster (a group of
       * endpoints) specified by the SNI value. This server is typically
       * used to provide connectivity between services in disparate L3
       * networks that otherwise do not have direct connectivity between
       * their respective endpoints. Use of this mode assumes that both the
       * source and the destination are using Istio mTLS to secure traffic.
       * 
* * AUTO_PASSTHROUGH = 3; */ public static final int AUTO_PASSTHROUGH_VALUE = 3; /** *
       * Secure connections from the downstream using mutual TLS by presenting
       * server certificates for authentication.
       * Compared to Mutual mode, this mode uses certificates, representing
       * gateway workload identity, generated automatically by Istio for
       * mTLS authentication. When this mode is used, all other fields in
       * `TLSOptions` should be empty.
       * 
* * ISTIO_MUTUAL = 4; */ public static final int ISTIO_MUTUAL_VALUE = 4; 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 TLSmode 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 TLSmode forNumber(int value) { switch (value) { case 0: return PASSTHROUGH; case 1: return SIMPLE; case 2: return MUTUAL; case 3: return AUTO_PASSTHROUGH; case 4: return ISTIO_MUTUAL; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< TLSmode> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public TLSmode findValueByNumber(int number) { return TLSmode.forNumber(number); } }; public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { 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 com.alibaba.nacos.istio.model.Server.TLSOptions.getDescriptor().getEnumTypes().get(0); } private static final TLSmode[] VALUES = values(); public static TLSmode 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 TLSmode(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:istio.networking.v1alpha3.Server.TLSOptions.TLSmode) } /** *
     * TLS protocol versions.
     * 
* * Protobuf enum {@code istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol} */ public enum TLSProtocol implements com.google.protobuf.ProtocolMessageEnum { /** *
       * Automatically choose the optimal TLS version.
       * 
* * TLS_AUTO = 0; */ TLS_AUTO(0), /** *
       * TLS version 1.0
       * 
* * TLSV1_0 = 1; */ TLSV1_0(1), /** *
       * TLS version 1.1
       * 
* * TLSV1_1 = 2; */ TLSV1_1(2), /** *
       * TLS version 1.2
       * 
* * TLSV1_2 = 3; */ TLSV1_2(3), /** *
       * TLS version 1.3
       * 
* * TLSV1_3 = 4; */ TLSV1_3(4), UNRECOGNIZED(-1), ; /** *
       * Automatically choose the optimal TLS version.
       * 
* * TLS_AUTO = 0; */ public static final int TLS_AUTO_VALUE = 0; /** *
       * TLS version 1.0
       * 
* * TLSV1_0 = 1; */ public static final int TLSV1_0_VALUE = 1; /** *
       * TLS version 1.1
       * 
* * TLSV1_1 = 2; */ public static final int TLSV1_1_VALUE = 2; /** *
       * TLS version 1.2
       * 
* * TLSV1_2 = 3; */ public static final int TLSV1_2_VALUE = 3; /** *
       * TLS version 1.3
       * 
* * TLSV1_3 = 4; */ public static final int TLSV1_3_VALUE = 4; 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 TLSProtocol 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 TLSProtocol forNumber(int value) { switch (value) { case 0: return TLS_AUTO; case 1: return TLSV1_0; case 2: return TLSV1_1; case 3: return TLSV1_2; case 4: return TLSV1_3; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< TLSProtocol> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public TLSProtocol findValueByNumber(int number) { return TLSProtocol.forNumber(number); } }; public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { 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 com.alibaba.nacos.istio.model.Server.TLSOptions.getDescriptor().getEnumTypes().get(1); } private static final TLSProtocol[] VALUES = values(); public static TLSProtocol 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 TLSProtocol(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol) } public static final int HTTPS_REDIRECT_FIELD_NUMBER = 1; private boolean httpsRedirect_; /** *
     * If set to true, the load balancer will send a 301 redirect for all
     * http connections, asking the clients to use HTTPS.
     * 
* * bool https_redirect = 1; * @return The httpsRedirect. */ public boolean getHttpsRedirect() { return httpsRedirect_; } public static final int MODE_FIELD_NUMBER = 2; private int mode_; /** *
     * Optional: Indicates whether connections to this port should be
     * secured using TLS. The value of this field determines how TLS is
     * enforced.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @return The enum numeric value on the wire for mode. */ public int getModeValue() { return mode_; } /** *
     * Optional: Indicates whether connections to this port should be
     * secured using TLS. The value of this field determines how TLS is
     * enforced.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @return The mode. */ public com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode getMode() { @SuppressWarnings("deprecation") com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode result = com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode.valueOf(mode_); return result == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode.UNRECOGNIZED : result; } public static final int SERVER_CERTIFICATE_FIELD_NUMBER = 3; private volatile java.lang.Object serverCertificate_; /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server-side TLS certificate to use.
     * 
* * string server_certificate = 3; * @return The serverCertificate. */ public java.lang.String getServerCertificate() { java.lang.Object ref = serverCertificate_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); serverCertificate_ = s; return s; } } /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server-side TLS certificate to use.
     * 
* * string server_certificate = 3; * @return The bytes for serverCertificate. */ public com.google.protobuf.ByteString getServerCertificateBytes() { java.lang.Object ref = serverCertificate_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); serverCertificate_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int PRIVATE_KEY_FIELD_NUMBER = 4; private volatile java.lang.Object privateKey_; /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server's private key.
     * 
* * string private_key = 4; * @return The privateKey. */ public java.lang.String getPrivateKey() { java.lang.Object ref = privateKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); privateKey_ = s; return s; } } /** *
     * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
     * holding the server's private key.
     * 
* * string private_key = 4; * @return The bytes for privateKey. */ public com.google.protobuf.ByteString getPrivateKeyBytes() { java.lang.Object ref = privateKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); privateKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CA_CERTIFICATES_FIELD_NUMBER = 5; private volatile java.lang.Object caCertificates_; /** *
     * REQUIRED if mode is `MUTUAL`. The path to a file containing
     * certificate authority certificates to use in verifying a presented
     * client side certificate.
     * 
* * string ca_certificates = 5; * @return The caCertificates. */ public java.lang.String getCaCertificates() { java.lang.Object ref = caCertificates_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); caCertificates_ = s; return s; } } /** *
     * REQUIRED if mode is `MUTUAL`. The path to a file containing
     * certificate authority certificates to use in verifying a presented
     * client side certificate.
     * 
* * string ca_certificates = 5; * @return The bytes for caCertificates. */ public com.google.protobuf.ByteString getCaCertificatesBytes() { java.lang.Object ref = caCertificates_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); caCertificates_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CREDENTIAL_NAME_FIELD_NUMBER = 10; private volatile java.lang.Object credentialName_; /** *
     * The credentialName stands for a unique identifier that can be used
     * to identify the serverCertificate and the privateKey. The
     * credentialName appended with suffix "-cacert" is used to identify
     * the CaCertificates associated with this server. Gateway workloads
     * capable of fetching credentials from a remote credential store such
     * as Kubernetes secrets, will be configured to retrieve the
     * serverCertificate and the privateKey using credentialName, instead
     * of using the file system paths specified above. If using mutual TLS,
     * gateway workload instances will retrieve the CaCertificates using
     * credentialName-cacert. The semantics of the name are platform
     * dependent.  In Kubernetes, the default Istio supplied credential
     * server expects the credentialName to match the name of the
     * Kubernetes secret that holds the server certificate, the private
     * key, and the CA certificate (if using mutual TLS). Set the
     * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
     * enable the dynamic credential fetching feature.
     * 
* * string credential_name = 10; * @return The credentialName. */ public java.lang.String getCredentialName() { java.lang.Object ref = credentialName_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); credentialName_ = s; return s; } } /** *
     * The credentialName stands for a unique identifier that can be used
     * to identify the serverCertificate and the privateKey. The
     * credentialName appended with suffix "-cacert" is used to identify
     * the CaCertificates associated with this server. Gateway workloads
     * capable of fetching credentials from a remote credential store such
     * as Kubernetes secrets, will be configured to retrieve the
     * serverCertificate and the privateKey using credentialName, instead
     * of using the file system paths specified above. If using mutual TLS,
     * gateway workload instances will retrieve the CaCertificates using
     * credentialName-cacert. The semantics of the name are platform
     * dependent.  In Kubernetes, the default Istio supplied credential
     * server expects the credentialName to match the name of the
     * Kubernetes secret that holds the server certificate, the private
     * key, and the CA certificate (if using mutual TLS). Set the
     * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
     * enable the dynamic credential fetching feature.
     * 
* * string credential_name = 10; * @return The bytes for credentialName. */ public com.google.protobuf.ByteString getCredentialNameBytes() { java.lang.Object ref = credentialName_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); credentialName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int SUBJECT_ALT_NAMES_FIELD_NUMBER = 6; private com.google.protobuf.LazyStringList subjectAltNames_; /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @return A list containing the subjectAltNames. */ public com.google.protobuf.ProtocolStringList getSubjectAltNamesList() { return subjectAltNames_; } /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @return The count of subjectAltNames. */ public int getSubjectAltNamesCount() { return subjectAltNames_.size(); } /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @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); } /** *
     * A list of alternate names to verify the subject identity in the
     * certificate presented by the client.
     * 
* * repeated string subject_alt_names = 6; * @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); } public static final int VERIFY_CERTIFICATE_SPKI_FIELD_NUMBER = 11; private com.google.protobuf.LazyStringList verifyCertificateSpki_; /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @return A list containing the verifyCertificateSpki. */ public com.google.protobuf.ProtocolStringList getVerifyCertificateSpkiList() { return verifyCertificateSpki_; } /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @return The count of verifyCertificateSpki. */ public int getVerifyCertificateSpkiCount() { return verifyCertificateSpki_.size(); } /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @param index The index of the element to return. * @return The verifyCertificateSpki at the given index. */ public java.lang.String getVerifyCertificateSpki(int index) { return verifyCertificateSpki_.get(index); } /** *
     * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
     * authorized client certificates.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_spki = 11; * @param index The index of the value to return. * @return The bytes of the verifyCertificateSpki at the given index. */ public com.google.protobuf.ByteString getVerifyCertificateSpkiBytes(int index) { return verifyCertificateSpki_.getByteString(index); } public static final int VERIFY_CERTIFICATE_HASH_FIELD_NUMBER = 12; private com.google.protobuf.LazyStringList verifyCertificateHash_; /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @return A list containing the verifyCertificateHash. */ public com.google.protobuf.ProtocolStringList getVerifyCertificateHashList() { return verifyCertificateHash_; } /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @return The count of verifyCertificateHash. */ public int getVerifyCertificateHashCount() { return verifyCertificateHash_.size(); } /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @param index The index of the element to return. * @return The verifyCertificateHash at the given index. */ public java.lang.String getVerifyCertificateHash(int index) { return verifyCertificateHash_.get(index); } /** *
     * An optional list of hex-encoded SHA-256 hashes of the
     * authorized client certificates. Both simple and colon separated
     * formats are acceptable.
     * Note: When both verify_certificate_hash and verify_certificate_spki
     * are specified, a hash matching either value will result in the
     * certificate being accepted.
     * 
* * repeated string verify_certificate_hash = 12; * @param index The index of the value to return. * @return The bytes of the verifyCertificateHash at the given index. */ public com.google.protobuf.ByteString getVerifyCertificateHashBytes(int index) { return verifyCertificateHash_.getByteString(index); } public static final int MIN_PROTOCOL_VERSION_FIELD_NUMBER = 7; private int minProtocolVersion_; /** *
     * Optional: Minimum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @return The enum numeric value on the wire for minProtocolVersion. */ public int getMinProtocolVersionValue() { return minProtocolVersion_; } /** *
     * Optional: Minimum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @return The minProtocolVersion. */ public com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol getMinProtocolVersion() { @SuppressWarnings("deprecation") com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol result = com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.valueOf(minProtocolVersion_); return result == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.UNRECOGNIZED : result; } public static final int MAX_PROTOCOL_VERSION_FIELD_NUMBER = 8; private int maxProtocolVersion_; /** *
     * Optional: Maximum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @return The enum numeric value on the wire for maxProtocolVersion. */ public int getMaxProtocolVersionValue() { return maxProtocolVersion_; } /** *
     * Optional: Maximum TLS protocol version.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @return The maxProtocolVersion. */ public com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol getMaxProtocolVersion() { @SuppressWarnings("deprecation") com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol result = com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.valueOf(maxProtocolVersion_); return result == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.UNRECOGNIZED : result; } public static final int CIPHER_SUITES_FIELD_NUMBER = 9; private com.google.protobuf.LazyStringList cipherSuites_; /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @return A list containing the cipherSuites. */ public com.google.protobuf.ProtocolStringList getCipherSuitesList() { return cipherSuites_; } /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @return The count of cipherSuites. */ public int getCipherSuitesCount() { return cipherSuites_.size(); } /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @param index The index of the element to return. * @return The cipherSuites at the given index. */ public java.lang.String getCipherSuites(int index) { return cipherSuites_.get(index); } /** *
     * Optional: If specified, only support the specified cipher list.
     * Otherwise default to the default cipher list supported by Envoy.
     * 
* * repeated string cipher_suites = 9; * @param index The index of the value to return. * @return The bytes of the cipherSuites at the given index. */ public com.google.protobuf.ByteString getCipherSuitesBytes(int index) { return cipherSuites_.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 { if (httpsRedirect_ != false) { output.writeBool(1, httpsRedirect_); } if (mode_ != com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode.PASSTHROUGH.getNumber()) { output.writeEnum(2, mode_); } if (!getServerCertificateBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, serverCertificate_); } if (!getPrivateKeyBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, privateKey_); } if (!getCaCertificatesBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, caCertificates_); } for (int i = 0; i < subjectAltNames_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, subjectAltNames_.getRaw(i)); } if (minProtocolVersion_ != com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.TLS_AUTO.getNumber()) { output.writeEnum(7, minProtocolVersion_); } if (maxProtocolVersion_ != com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.TLS_AUTO.getNumber()) { output.writeEnum(8, maxProtocolVersion_); } for (int i = 0; i < cipherSuites_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 9, cipherSuites_.getRaw(i)); } if (!getCredentialNameBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 10, credentialName_); } for (int i = 0; i < verifyCertificateSpki_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 11, verifyCertificateSpki_.getRaw(i)); } for (int i = 0; i < verifyCertificateHash_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 12, verifyCertificateHash_.getRaw(i)); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (httpsRedirect_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(1, httpsRedirect_); } if (mode_ != com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode.PASSTHROUGH.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(2, mode_); } if (!getServerCertificateBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, serverCertificate_); } if (!getPrivateKeyBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, privateKey_); } if (!getCaCertificatesBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, caCertificates_); } { int dataSize = 0; for (int i = 0; i < subjectAltNames_.size(); i++) { dataSize += computeStringSizeNoTag(subjectAltNames_.getRaw(i)); } size += dataSize; size += 1 * getSubjectAltNamesList().size(); } if (minProtocolVersion_ != com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.TLS_AUTO.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(7, minProtocolVersion_); } if (maxProtocolVersion_ != com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.TLS_AUTO.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(8, maxProtocolVersion_); } { int dataSize = 0; for (int i = 0; i < cipherSuites_.size(); i++) { dataSize += computeStringSizeNoTag(cipherSuites_.getRaw(i)); } size += dataSize; size += 1 * getCipherSuitesList().size(); } if (!getCredentialNameBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, credentialName_); } { int dataSize = 0; for (int i = 0; i < verifyCertificateSpki_.size(); i++) { dataSize += computeStringSizeNoTag(verifyCertificateSpki_.getRaw(i)); } size += dataSize; size += 1 * getVerifyCertificateSpkiList().size(); } { int dataSize = 0; for (int i = 0; i < verifyCertificateHash_.size(); i++) { dataSize += computeStringSizeNoTag(verifyCertificateHash_.getRaw(i)); } size += dataSize; size += 1 * getVerifyCertificateHashList().size(); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof com.alibaba.nacos.istio.model.Server.TLSOptions)) { return super.equals(obj); } com.alibaba.nacos.istio.model.Server.TLSOptions other = (com.alibaba.nacos.istio.model.Server.TLSOptions) obj; if (getHttpsRedirect() != other.getHttpsRedirect()) return false; if (mode_ != other.mode_) return false; if (!getServerCertificate() .equals(other.getServerCertificate())) return false; if (!getPrivateKey() .equals(other.getPrivateKey())) return false; if (!getCaCertificates() .equals(other.getCaCertificates())) return false; if (!getCredentialName() .equals(other.getCredentialName())) return false; if (!getSubjectAltNamesList() .equals(other.getSubjectAltNamesList())) return false; if (!getVerifyCertificateSpkiList() .equals(other.getVerifyCertificateSpkiList())) return false; if (!getVerifyCertificateHashList() .equals(other.getVerifyCertificateHashList())) return false; if (minProtocolVersion_ != other.minProtocolVersion_) return false; if (maxProtocolVersion_ != other.maxProtocolVersion_) return false; if (!getCipherSuitesList() .equals(other.getCipherSuitesList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + HTTPS_REDIRECT_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getHttpsRedirect()); hash = (37 * hash) + MODE_FIELD_NUMBER; hash = (53 * hash) + mode_; hash = (37 * hash) + SERVER_CERTIFICATE_FIELD_NUMBER; hash = (53 * hash) + getServerCertificate().hashCode(); hash = (37 * hash) + PRIVATE_KEY_FIELD_NUMBER; hash = (53 * hash) + getPrivateKey().hashCode(); hash = (37 * hash) + CA_CERTIFICATES_FIELD_NUMBER; hash = (53 * hash) + getCaCertificates().hashCode(); hash = (37 * hash) + CREDENTIAL_NAME_FIELD_NUMBER; hash = (53 * hash) + getCredentialName().hashCode(); if (getSubjectAltNamesCount() > 0) { hash = (37 * hash) + SUBJECT_ALT_NAMES_FIELD_NUMBER; hash = (53 * hash) + getSubjectAltNamesList().hashCode(); } if (getVerifyCertificateSpkiCount() > 0) { hash = (37 * hash) + VERIFY_CERTIFICATE_SPKI_FIELD_NUMBER; hash = (53 * hash) + getVerifyCertificateSpkiList().hashCode(); } if (getVerifyCertificateHashCount() > 0) { hash = (37 * hash) + VERIFY_CERTIFICATE_HASH_FIELD_NUMBER; hash = (53 * hash) + getVerifyCertificateHashList().hashCode(); } hash = (37 * hash) + MIN_PROTOCOL_VERSION_FIELD_NUMBER; hash = (53 * hash) + minProtocolVersion_; hash = (37 * hash) + MAX_PROTOCOL_VERSION_FIELD_NUMBER; hash = (53 * hash) + maxProtocolVersion_; if (getCipherSuitesCount() > 0) { hash = (37 * hash) + CIPHER_SUITES_FIELD_NUMBER; hash = (53 * hash) + getCipherSuitesList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.alibaba.nacos.istio.model.Server.TLSOptions 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 com.alibaba.nacos.istio.model.Server.TLSOptions parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static com.alibaba.nacos.istio.model.Server.TLSOptions 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 com.alibaba.nacos.istio.model.Server.TLSOptions parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.alibaba.nacos.istio.model.Server.TLSOptions 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(com.alibaba.nacos.istio.model.Server.TLSOptions 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; } /** * Protobuf type {@code istio.networking.v1alpha3.Server.TLSOptions} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:istio.networking.v1alpha3.Server.TLSOptions) com.alibaba.nacos.istio.model.Server.TLSOptionsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_TLSOptions_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_TLSOptions_fieldAccessorTable .ensureFieldAccessorsInitialized( com.alibaba.nacos.istio.model.Server.TLSOptions.class, com.alibaba.nacos.istio.model.Server.TLSOptions.Builder.class); } // Construct using com.alibaba.nacos.istio.model.Server.TLSOptions.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { } } @java.lang.Override public Builder clear() { super.clear(); httpsRedirect_ = false; mode_ = 0; serverCertificate_ = ""; privateKey_ = ""; caCertificates_ = ""; credentialName_ = ""; subjectAltNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); verifyCertificateSpki_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000002); verifyCertificateHash_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000004); minProtocolVersion_ = 0; maxProtocolVersion_ = 0; cipherSuites_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000008); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_TLSOptions_descriptor; } @java.lang.Override public com.alibaba.nacos.istio.model.Server.TLSOptions getDefaultInstanceForType() { return com.alibaba.nacos.istio.model.Server.TLSOptions.getDefaultInstance(); } @java.lang.Override public com.alibaba.nacos.istio.model.Server.TLSOptions build() { com.alibaba.nacos.istio.model.Server.TLSOptions result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public com.alibaba.nacos.istio.model.Server.TLSOptions buildPartial() { com.alibaba.nacos.istio.model.Server.TLSOptions result = new com.alibaba.nacos.istio.model.Server.TLSOptions(this); int from_bitField0_ = bitField0_; result.httpsRedirect_ = httpsRedirect_; result.mode_ = mode_; result.serverCertificate_ = serverCertificate_; result.privateKey_ = privateKey_; result.caCertificates_ = caCertificates_; result.credentialName_ = credentialName_; if (((bitField0_ & 0x00000001) != 0)) { subjectAltNames_ = subjectAltNames_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000001); } result.subjectAltNames_ = subjectAltNames_; if (((bitField0_ & 0x00000002) != 0)) { verifyCertificateSpki_ = verifyCertificateSpki_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000002); } result.verifyCertificateSpki_ = verifyCertificateSpki_; if (((bitField0_ & 0x00000004) != 0)) { verifyCertificateHash_ = verifyCertificateHash_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000004); } result.verifyCertificateHash_ = verifyCertificateHash_; result.minProtocolVersion_ = minProtocolVersion_; result.maxProtocolVersion_ = maxProtocolVersion_; if (((bitField0_ & 0x00000008) != 0)) { cipherSuites_ = cipherSuites_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000008); } result.cipherSuites_ = cipherSuites_; onBuilt(); return result; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.alibaba.nacos.istio.model.Server.TLSOptions) { return mergeFrom((com.alibaba.nacos.istio.model.Server.TLSOptions)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(com.alibaba.nacos.istio.model.Server.TLSOptions other) { if (other == com.alibaba.nacos.istio.model.Server.TLSOptions.getDefaultInstance()) return this; if (other.getHttpsRedirect() != false) { setHttpsRedirect(other.getHttpsRedirect()); } if (other.mode_ != 0) { setModeValue(other.getModeValue()); } if (!other.getServerCertificate().isEmpty()) { serverCertificate_ = other.serverCertificate_; onChanged(); } if (!other.getPrivateKey().isEmpty()) { privateKey_ = other.privateKey_; onChanged(); } if (!other.getCaCertificates().isEmpty()) { caCertificates_ = other.caCertificates_; onChanged(); } if (!other.getCredentialName().isEmpty()) { credentialName_ = other.credentialName_; onChanged(); } if (!other.subjectAltNames_.isEmpty()) { if (subjectAltNames_.isEmpty()) { subjectAltNames_ = other.subjectAltNames_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureSubjectAltNamesIsMutable(); subjectAltNames_.addAll(other.subjectAltNames_); } onChanged(); } if (!other.verifyCertificateSpki_.isEmpty()) { if (verifyCertificateSpki_.isEmpty()) { verifyCertificateSpki_ = other.verifyCertificateSpki_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureVerifyCertificateSpkiIsMutable(); verifyCertificateSpki_.addAll(other.verifyCertificateSpki_); } onChanged(); } if (!other.verifyCertificateHash_.isEmpty()) { if (verifyCertificateHash_.isEmpty()) { verifyCertificateHash_ = other.verifyCertificateHash_; bitField0_ = (bitField0_ & ~0x00000004); } else { ensureVerifyCertificateHashIsMutable(); verifyCertificateHash_.addAll(other.verifyCertificateHash_); } onChanged(); } if (other.minProtocolVersion_ != 0) { setMinProtocolVersionValue(other.getMinProtocolVersionValue()); } if (other.maxProtocolVersion_ != 0) { setMaxProtocolVersionValue(other.getMaxProtocolVersionValue()); } if (!other.cipherSuites_.isEmpty()) { if (cipherSuites_.isEmpty()) { cipherSuites_ = other.cipherSuites_; bitField0_ = (bitField0_ & ~0x00000008); } else { ensureCipherSuitesIsMutable(); cipherSuites_.addAll(other.cipherSuites_); } onChanged(); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { com.alibaba.nacos.istio.model.Server.TLSOptions parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (com.alibaba.nacos.istio.model.Server.TLSOptions) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private boolean httpsRedirect_ ; /** *
       * If set to true, the load balancer will send a 301 redirect for all
       * http connections, asking the clients to use HTTPS.
       * 
* * bool https_redirect = 1; * @return The httpsRedirect. */ public boolean getHttpsRedirect() { return httpsRedirect_; } /** *
       * If set to true, the load balancer will send a 301 redirect for all
       * http connections, asking the clients to use HTTPS.
       * 
* * bool https_redirect = 1; * @param value The httpsRedirect to set. * @return This builder for chaining. */ public Builder setHttpsRedirect(boolean value) { httpsRedirect_ = value; onChanged(); return this; } /** *
       * If set to true, the load balancer will send a 301 redirect for all
       * http connections, asking the clients to use HTTPS.
       * 
* * bool https_redirect = 1; * @return This builder for chaining. */ public Builder clearHttpsRedirect() { httpsRedirect_ = false; onChanged(); return this; } private int mode_ = 0; /** *
       * Optional: Indicates whether connections to this port should be
       * secured using TLS. The value of this field determines how TLS is
       * enforced.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @return The enum numeric value on the wire for mode. */ public int getModeValue() { return mode_; } /** *
       * Optional: Indicates whether connections to this port should be
       * secured using TLS. The value of this field determines how TLS is
       * enforced.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @param value The enum numeric value on the wire for mode to set. * @return This builder for chaining. */ public Builder setModeValue(int value) { mode_ = value; onChanged(); return this; } /** *
       * Optional: Indicates whether connections to this port should be
       * secured using TLS. The value of this field determines how TLS is
       * enforced.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @return The mode. */ public com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode getMode() { @SuppressWarnings("deprecation") com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode result = com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode.valueOf(mode_); return result == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode.UNRECOGNIZED : result; } /** *
       * Optional: Indicates whether connections to this port should be
       * secured using TLS. The value of this field determines how TLS is
       * enforced.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @param value The mode to set. * @return This builder for chaining. */ public Builder setMode(com.alibaba.nacos.istio.model.Server.TLSOptions.TLSmode value) { if (value == null) { throw new NullPointerException(); } mode_ = value.getNumber(); onChanged(); return this; } /** *
       * Optional: Indicates whether connections to this port should be
       * secured using TLS. The value of this field determines how TLS is
       * enforced.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSmode mode = 2; * @return This builder for chaining. */ public Builder clearMode() { mode_ = 0; onChanged(); return this; } private java.lang.Object serverCertificate_ = ""; /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server-side TLS certificate to use.
       * 
* * string server_certificate = 3; * @return The serverCertificate. */ public java.lang.String getServerCertificate() { java.lang.Object ref = serverCertificate_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); serverCertificate_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server-side TLS certificate to use.
       * 
* * string server_certificate = 3; * @return The bytes for serverCertificate. */ public com.google.protobuf.ByteString getServerCertificateBytes() { java.lang.Object ref = serverCertificate_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); serverCertificate_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server-side TLS certificate to use.
       * 
* * string server_certificate = 3; * @param value The serverCertificate to set. * @return This builder for chaining. */ public Builder setServerCertificate( java.lang.String value) { if (value == null) { throw new NullPointerException(); } serverCertificate_ = value; onChanged(); return this; } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server-side TLS certificate to use.
       * 
* * string server_certificate = 3; * @return This builder for chaining. */ public Builder clearServerCertificate() { serverCertificate_ = getDefaultInstance().getServerCertificate(); onChanged(); return this; } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server-side TLS certificate to use.
       * 
* * string server_certificate = 3; * @param value The bytes for serverCertificate to set. * @return This builder for chaining. */ public Builder setServerCertificateBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); serverCertificate_ = value; onChanged(); return this; } private java.lang.Object privateKey_ = ""; /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server's private key.
       * 
* * string private_key = 4; * @return The privateKey. */ public java.lang.String getPrivateKey() { java.lang.Object ref = privateKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); privateKey_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server's private key.
       * 
* * string private_key = 4; * @return The bytes for privateKey. */ public com.google.protobuf.ByteString getPrivateKeyBytes() { java.lang.Object ref = privateKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); privateKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server's private key.
       * 
* * string private_key = 4; * @param value The privateKey to set. * @return This builder for chaining. */ public Builder setPrivateKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } privateKey_ = value; onChanged(); return this; } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server's private key.
       * 
* * string private_key = 4; * @return This builder for chaining. */ public Builder clearPrivateKey() { privateKey_ = getDefaultInstance().getPrivateKey(); onChanged(); return this; } /** *
       * REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file
       * holding the server's private key.
       * 
* * string private_key = 4; * @param value The bytes for privateKey to set. * @return This builder for chaining. */ public Builder setPrivateKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); privateKey_ = value; onChanged(); return this; } private java.lang.Object caCertificates_ = ""; /** *
       * REQUIRED if mode is `MUTUAL`. The path to a file containing
       * certificate authority certificates to use in verifying a presented
       * client side certificate.
       * 
* * string ca_certificates = 5; * @return The caCertificates. */ public java.lang.String getCaCertificates() { java.lang.Object ref = caCertificates_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); caCertificates_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * REQUIRED if mode is `MUTUAL`. The path to a file containing
       * certificate authority certificates to use in verifying a presented
       * client side certificate.
       * 
* * string ca_certificates = 5; * @return The bytes for caCertificates. */ public com.google.protobuf.ByteString getCaCertificatesBytes() { java.lang.Object ref = caCertificates_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); caCertificates_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * REQUIRED if mode is `MUTUAL`. The path to a file containing
       * certificate authority certificates to use in verifying a presented
       * client side certificate.
       * 
* * string ca_certificates = 5; * @param value The caCertificates to set. * @return This builder for chaining. */ public Builder setCaCertificates( java.lang.String value) { if (value == null) { throw new NullPointerException(); } caCertificates_ = value; onChanged(); return this; } /** *
       * REQUIRED if mode is `MUTUAL`. The path to a file containing
       * certificate authority certificates to use in verifying a presented
       * client side certificate.
       * 
* * string ca_certificates = 5; * @return This builder for chaining. */ public Builder clearCaCertificates() { caCertificates_ = getDefaultInstance().getCaCertificates(); onChanged(); return this; } /** *
       * REQUIRED if mode is `MUTUAL`. The path to a file containing
       * certificate authority certificates to use in verifying a presented
       * client side certificate.
       * 
* * string ca_certificates = 5; * @param value The bytes for caCertificates to set. * @return This builder for chaining. */ public Builder setCaCertificatesBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); caCertificates_ = value; onChanged(); return this; } private java.lang.Object credentialName_ = ""; /** *
       * The credentialName stands for a unique identifier that can be used
       * to identify the serverCertificate and the privateKey. The
       * credentialName appended with suffix "-cacert" is used to identify
       * the CaCertificates associated with this server. Gateway workloads
       * capable of fetching credentials from a remote credential store such
       * as Kubernetes secrets, will be configured to retrieve the
       * serverCertificate and the privateKey using credentialName, instead
       * of using the file system paths specified above. If using mutual TLS,
       * gateway workload instances will retrieve the CaCertificates using
       * credentialName-cacert. The semantics of the name are platform
       * dependent.  In Kubernetes, the default Istio supplied credential
       * server expects the credentialName to match the name of the
       * Kubernetes secret that holds the server certificate, the private
       * key, and the CA certificate (if using mutual TLS). Set the
       * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
       * enable the dynamic credential fetching feature.
       * 
* * string credential_name = 10; * @return The credentialName. */ public java.lang.String getCredentialName() { java.lang.Object ref = credentialName_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); credentialName_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * The credentialName stands for a unique identifier that can be used
       * to identify the serverCertificate and the privateKey. The
       * credentialName appended with suffix "-cacert" is used to identify
       * the CaCertificates associated with this server. Gateway workloads
       * capable of fetching credentials from a remote credential store such
       * as Kubernetes secrets, will be configured to retrieve the
       * serverCertificate and the privateKey using credentialName, instead
       * of using the file system paths specified above. If using mutual TLS,
       * gateway workload instances will retrieve the CaCertificates using
       * credentialName-cacert. The semantics of the name are platform
       * dependent.  In Kubernetes, the default Istio supplied credential
       * server expects the credentialName to match the name of the
       * Kubernetes secret that holds the server certificate, the private
       * key, and the CA certificate (if using mutual TLS). Set the
       * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
       * enable the dynamic credential fetching feature.
       * 
* * string credential_name = 10; * @return The bytes for credentialName. */ public com.google.protobuf.ByteString getCredentialNameBytes() { java.lang.Object ref = credentialName_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); credentialName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * The credentialName stands for a unique identifier that can be used
       * to identify the serverCertificate and the privateKey. The
       * credentialName appended with suffix "-cacert" is used to identify
       * the CaCertificates associated with this server. Gateway workloads
       * capable of fetching credentials from a remote credential store such
       * as Kubernetes secrets, will be configured to retrieve the
       * serverCertificate and the privateKey using credentialName, instead
       * of using the file system paths specified above. If using mutual TLS,
       * gateway workload instances will retrieve the CaCertificates using
       * credentialName-cacert. The semantics of the name are platform
       * dependent.  In Kubernetes, the default Istio supplied credential
       * server expects the credentialName to match the name of the
       * Kubernetes secret that holds the server certificate, the private
       * key, and the CA certificate (if using mutual TLS). Set the
       * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
       * enable the dynamic credential fetching feature.
       * 
* * string credential_name = 10; * @param value The credentialName to set. * @return This builder for chaining. */ public Builder setCredentialName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } credentialName_ = value; onChanged(); return this; } /** *
       * The credentialName stands for a unique identifier that can be used
       * to identify the serverCertificate and the privateKey. The
       * credentialName appended with suffix "-cacert" is used to identify
       * the CaCertificates associated with this server. Gateway workloads
       * capable of fetching credentials from a remote credential store such
       * as Kubernetes secrets, will be configured to retrieve the
       * serverCertificate and the privateKey using credentialName, instead
       * of using the file system paths specified above. If using mutual TLS,
       * gateway workload instances will retrieve the CaCertificates using
       * credentialName-cacert. The semantics of the name are platform
       * dependent.  In Kubernetes, the default Istio supplied credential
       * server expects the credentialName to match the name of the
       * Kubernetes secret that holds the server certificate, the private
       * key, and the CA certificate (if using mutual TLS). Set the
       * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
       * enable the dynamic credential fetching feature.
       * 
* * string credential_name = 10; * @return This builder for chaining. */ public Builder clearCredentialName() { credentialName_ = getDefaultInstance().getCredentialName(); onChanged(); return this; } /** *
       * The credentialName stands for a unique identifier that can be used
       * to identify the serverCertificate and the privateKey. The
       * credentialName appended with suffix "-cacert" is used to identify
       * the CaCertificates associated with this server. Gateway workloads
       * capable of fetching credentials from a remote credential store such
       * as Kubernetes secrets, will be configured to retrieve the
       * serverCertificate and the privateKey using credentialName, instead
       * of using the file system paths specified above. If using mutual TLS,
       * gateway workload instances will retrieve the CaCertificates using
       * credentialName-cacert. The semantics of the name are platform
       * dependent.  In Kubernetes, the default Istio supplied credential
       * server expects the credentialName to match the name of the
       * Kubernetes secret that holds the server certificate, the private
       * key, and the CA certificate (if using mutual TLS). Set the
       * `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to
       * enable the dynamic credential fetching feature.
       * 
* * string credential_name = 10; * @param value The bytes for credentialName to set. * @return This builder for chaining. */ public Builder setCredentialNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); credentialName_ = value; onChanged(); return this; } private com.google.protobuf.LazyStringList subjectAltNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureSubjectAltNamesIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { subjectAltNames_ = new com.google.protobuf.LazyStringArrayList(subjectAltNames_); bitField0_ |= 0x00000001; } } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @return A list containing the subjectAltNames. */ public com.google.protobuf.ProtocolStringList getSubjectAltNamesList() { return subjectAltNames_.getUnmodifiableView(); } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @return The count of subjectAltNames. */ public int getSubjectAltNamesCount() { return subjectAltNames_.size(); } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @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); } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @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); } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @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; } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @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; } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @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; } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @return This builder for chaining. */ public Builder clearSubjectAltNames() { subjectAltNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** *
       * A list of alternate names to verify the subject identity in the
       * certificate presented by the client.
       * 
* * repeated string subject_alt_names = 6; * @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; } private com.google.protobuf.LazyStringList verifyCertificateSpki_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureVerifyCertificateSpkiIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { verifyCertificateSpki_ = new com.google.protobuf.LazyStringArrayList(verifyCertificateSpki_); bitField0_ |= 0x00000002; } } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @return A list containing the verifyCertificateSpki. */ public com.google.protobuf.ProtocolStringList getVerifyCertificateSpkiList() { return verifyCertificateSpki_.getUnmodifiableView(); } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @return The count of verifyCertificateSpki. */ public int getVerifyCertificateSpkiCount() { return verifyCertificateSpki_.size(); } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @param index The index of the element to return. * @return The verifyCertificateSpki at the given index. */ public java.lang.String getVerifyCertificateSpki(int index) { return verifyCertificateSpki_.get(index); } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @param index The index of the value to return. * @return The bytes of the verifyCertificateSpki at the given index. */ public com.google.protobuf.ByteString getVerifyCertificateSpkiBytes(int index) { return verifyCertificateSpki_.getByteString(index); } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @param index The index to set the value at. * @param value The verifyCertificateSpki to set. * @return This builder for chaining. */ public Builder setVerifyCertificateSpki( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureVerifyCertificateSpkiIsMutable(); verifyCertificateSpki_.set(index, value); onChanged(); return this; } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @param value The verifyCertificateSpki to add. * @return This builder for chaining. */ public Builder addVerifyCertificateSpki( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureVerifyCertificateSpkiIsMutable(); verifyCertificateSpki_.add(value); onChanged(); return this; } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @param values The verifyCertificateSpki to add. * @return This builder for chaining. */ public Builder addAllVerifyCertificateSpki( java.lang.Iterable values) { ensureVerifyCertificateSpkiIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, verifyCertificateSpki_); onChanged(); return this; } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @return This builder for chaining. */ public Builder clearVerifyCertificateSpki() { verifyCertificateSpki_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } /** *
       * An optional list of base64-encoded SHA-256 hashes of the SKPIs of
       * authorized client certificates.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_spki = 11; * @param value The bytes of the verifyCertificateSpki to add. * @return This builder for chaining. */ public Builder addVerifyCertificateSpkiBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureVerifyCertificateSpkiIsMutable(); verifyCertificateSpki_.add(value); onChanged(); return this; } private com.google.protobuf.LazyStringList verifyCertificateHash_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureVerifyCertificateHashIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { verifyCertificateHash_ = new com.google.protobuf.LazyStringArrayList(verifyCertificateHash_); bitField0_ |= 0x00000004; } } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @return A list containing the verifyCertificateHash. */ public com.google.protobuf.ProtocolStringList getVerifyCertificateHashList() { return verifyCertificateHash_.getUnmodifiableView(); } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @return The count of verifyCertificateHash. */ public int getVerifyCertificateHashCount() { return verifyCertificateHash_.size(); } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @param index The index of the element to return. * @return The verifyCertificateHash at the given index. */ public java.lang.String getVerifyCertificateHash(int index) { return verifyCertificateHash_.get(index); } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @param index The index of the value to return. * @return The bytes of the verifyCertificateHash at the given index. */ public com.google.protobuf.ByteString getVerifyCertificateHashBytes(int index) { return verifyCertificateHash_.getByteString(index); } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @param index The index to set the value at. * @param value The verifyCertificateHash to set. * @return This builder for chaining. */ public Builder setVerifyCertificateHash( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureVerifyCertificateHashIsMutable(); verifyCertificateHash_.set(index, value); onChanged(); return this; } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @param value The verifyCertificateHash to add. * @return This builder for chaining. */ public Builder addVerifyCertificateHash( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureVerifyCertificateHashIsMutable(); verifyCertificateHash_.add(value); onChanged(); return this; } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @param values The verifyCertificateHash to add. * @return This builder for chaining. */ public Builder addAllVerifyCertificateHash( java.lang.Iterable values) { ensureVerifyCertificateHashIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, verifyCertificateHash_); onChanged(); return this; } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @return This builder for chaining. */ public Builder clearVerifyCertificateHash() { verifyCertificateHash_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } /** *
       * An optional list of hex-encoded SHA-256 hashes of the
       * authorized client certificates. Both simple and colon separated
       * formats are acceptable.
       * Note: When both verify_certificate_hash and verify_certificate_spki
       * are specified, a hash matching either value will result in the
       * certificate being accepted.
       * 
* * repeated string verify_certificate_hash = 12; * @param value The bytes of the verifyCertificateHash to add. * @return This builder for chaining. */ public Builder addVerifyCertificateHashBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureVerifyCertificateHashIsMutable(); verifyCertificateHash_.add(value); onChanged(); return this; } private int minProtocolVersion_ = 0; /** *
       * Optional: Minimum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @return The enum numeric value on the wire for minProtocolVersion. */ public int getMinProtocolVersionValue() { return minProtocolVersion_; } /** *
       * Optional: Minimum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @param value The enum numeric value on the wire for minProtocolVersion to set. * @return This builder for chaining. */ public Builder setMinProtocolVersionValue(int value) { minProtocolVersion_ = value; onChanged(); return this; } /** *
       * Optional: Minimum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @return The minProtocolVersion. */ public com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol getMinProtocolVersion() { @SuppressWarnings("deprecation") com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol result = com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.valueOf(minProtocolVersion_); return result == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.UNRECOGNIZED : result; } /** *
       * Optional: Minimum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @param value The minProtocolVersion to set. * @return This builder for chaining. */ public Builder setMinProtocolVersion(com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol value) { if (value == null) { throw new NullPointerException(); } minProtocolVersion_ = value.getNumber(); onChanged(); return this; } /** *
       * Optional: Minimum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol min_protocol_version = 7; * @return This builder for chaining. */ public Builder clearMinProtocolVersion() { minProtocolVersion_ = 0; onChanged(); return this; } private int maxProtocolVersion_ = 0; /** *
       * Optional: Maximum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @return The enum numeric value on the wire for maxProtocolVersion. */ public int getMaxProtocolVersionValue() { return maxProtocolVersion_; } /** *
       * Optional: Maximum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @param value The enum numeric value on the wire for maxProtocolVersion to set. * @return This builder for chaining. */ public Builder setMaxProtocolVersionValue(int value) { maxProtocolVersion_ = value; onChanged(); return this; } /** *
       * Optional: Maximum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @return The maxProtocolVersion. */ public com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol getMaxProtocolVersion() { @SuppressWarnings("deprecation") com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol result = com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.valueOf(maxProtocolVersion_); return result == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol.UNRECOGNIZED : result; } /** *
       * Optional: Maximum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @param value The maxProtocolVersion to set. * @return This builder for chaining. */ public Builder setMaxProtocolVersion(com.alibaba.nacos.istio.model.Server.TLSOptions.TLSProtocol value) { if (value == null) { throw new NullPointerException(); } maxProtocolVersion_ = value.getNumber(); onChanged(); return this; } /** *
       * Optional: Maximum TLS protocol version.
       * 
* * .istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol max_protocol_version = 8; * @return This builder for chaining. */ public Builder clearMaxProtocolVersion() { maxProtocolVersion_ = 0; onChanged(); return this; } private com.google.protobuf.LazyStringList cipherSuites_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureCipherSuitesIsMutable() { if (!((bitField0_ & 0x00000008) != 0)) { cipherSuites_ = new com.google.protobuf.LazyStringArrayList(cipherSuites_); bitField0_ |= 0x00000008; } } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @return A list containing the cipherSuites. */ public com.google.protobuf.ProtocolStringList getCipherSuitesList() { return cipherSuites_.getUnmodifiableView(); } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @return The count of cipherSuites. */ public int getCipherSuitesCount() { return cipherSuites_.size(); } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @param index The index of the element to return. * @return The cipherSuites at the given index. */ public java.lang.String getCipherSuites(int index) { return cipherSuites_.get(index); } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @param index The index of the value to return. * @return The bytes of the cipherSuites at the given index. */ public com.google.protobuf.ByteString getCipherSuitesBytes(int index) { return cipherSuites_.getByteString(index); } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @param index The index to set the value at. * @param value The cipherSuites to set. * @return This builder for chaining. */ public Builder setCipherSuites( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureCipherSuitesIsMutable(); cipherSuites_.set(index, value); onChanged(); return this; } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @param value The cipherSuites to add. * @return This builder for chaining. */ public Builder addCipherSuites( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureCipherSuitesIsMutable(); cipherSuites_.add(value); onChanged(); return this; } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @param values The cipherSuites to add. * @return This builder for chaining. */ public Builder addAllCipherSuites( java.lang.Iterable values) { ensureCipherSuitesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, cipherSuites_); onChanged(); return this; } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @return This builder for chaining. */ public Builder clearCipherSuites() { cipherSuites_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000008); onChanged(); return this; } /** *
       * Optional: If specified, only support the specified cipher list.
       * Otherwise default to the default cipher list supported by Envoy.
       * 
* * repeated string cipher_suites = 9; * @param value The bytes of the cipherSuites to add. * @return This builder for chaining. */ public Builder addCipherSuitesBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureCipherSuitesIsMutable(); cipherSuites_.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.Server.TLSOptions) } // @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Server.TLSOptions) private static final com.alibaba.nacos.istio.model.Server.TLSOptions DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new com.alibaba.nacos.istio.model.Server.TLSOptions(); } public static com.alibaba.nacos.istio.model.Server.TLSOptions getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public TLSOptions parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new TLSOptions(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 com.alibaba.nacos.istio.model.Server.TLSOptions getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public static final int PORT_FIELD_NUMBER = 1; private com.alibaba.nacos.istio.model.Port port_; /** *
   * REQUIRED: The Port on which the proxy should listen for incoming
   * connections.
   * 
* * .istio.networking.v1alpha3.Port port = 1; * @return Whether the port field is set. */ public boolean hasPort() { return port_ != null; } /** *
   * REQUIRED: The Port on which the proxy should listen for incoming
   * connections.
   * 
* * .istio.networking.v1alpha3.Port port = 1; * @return The port. */ public com.alibaba.nacos.istio.model.Port getPort() { return port_ == null ? com.alibaba.nacos.istio.model.Port.getDefaultInstance() : port_; } /** *
   * REQUIRED: The Port on which the proxy should listen for incoming
   * connections.
   * 
* * .istio.networking.v1alpha3.Port port = 1; */ public com.alibaba.nacos.istio.model.PortOrBuilder getPortOrBuilder() { return getPort(); } public static final int BIND_FIELD_NUMBER = 4; private volatile java.lang.Object bind_; /** *
   * $hide_from_docs
   * The ip or the Unix domain socket to which the listener should be bound
   * to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar`
   * (Linux abstract namespace). When using Unix domain sockets, the port
   * number should be 0.
   * 
* * string bind = 4; * @return The bind. */ public java.lang.String getBind() { java.lang.Object ref = bind_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); bind_ = s; return s; } } /** *
   * $hide_from_docs
   * The ip or the Unix domain socket to which the listener should be bound
   * to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar`
   * (Linux abstract namespace). When using Unix domain sockets, the port
   * number should be 0.
   * 
* * string bind = 4; * @return The bytes for bind. */ public com.google.protobuf.ByteString getBindBytes() { java.lang.Object ref = bind_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); bind_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int HOSTS_FIELD_NUMBER = 2; private com.google.protobuf.LazyStringList hosts_; /** *
   * REQUIRED. One or more hosts exposed by this gateway.
   * While typically applicable to
   * HTTP services, it can also be used for TCP services using TLS with SNI.
   * A host is specified as a `dnsName` with an optional `namespace/` prefix.
   * The `dnsName` should be specified using FQDN format, optionally including
   * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
   * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
   * specified namespace (e.g.,`prod/*`).
   * The `namespace` can be set to `*` or `.`, representing any or the current
   * namespace, respectively. For example, `*/foo.example.com` selects the
   * service from any available namespace while `./foo.example.com` only selects
   * the service from the namespace of the sidecar. The default, if no `namespace/`
   * is specified, is `*/`, that is, select services from any namespace.
   * Any associated `DestinationRule` in the selected namespace will also be used.
   * A `VirtualService` must be bound to the gateway and must have one or
   * more hosts that match the hosts specified in a server. The match
   * could be an exact match or a suffix match with the server's hosts. For
   * example, if the server's hosts specifies `*.example.com`, a
   * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
   * match. However, a `VirtualService` with host `example.com` or
   * `newexample.com` will not match.
   * NOTE: Only virtual services exported to the gateway's namespace
   * (e.g., `exportTo` value of `*`) can be referenced.
   * Private configurations (e.g., `exportTo` set to `.`) will not be
   * available. Refer to the `exportTo` setting in `VirtualService`,
   * `DestinationRule`, and `ServiceEntry` configurations for details.
   * 
* * repeated string hosts = 2; * @return A list containing the hosts. */ public com.google.protobuf.ProtocolStringList getHostsList() { return hosts_; } /** *
   * REQUIRED. One or more hosts exposed by this gateway.
   * While typically applicable to
   * HTTP services, it can also be used for TCP services using TLS with SNI.
   * A host is specified as a `dnsName` with an optional `namespace/` prefix.
   * The `dnsName` should be specified using FQDN format, optionally including
   * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
   * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
   * specified namespace (e.g.,`prod/*`).
   * The `namespace` can be set to `*` or `.`, representing any or the current
   * namespace, respectively. For example, `*/foo.example.com` selects the
   * service from any available namespace while `./foo.example.com` only selects
   * the service from the namespace of the sidecar. The default, if no `namespace/`
   * is specified, is `*/`, that is, select services from any namespace.
   * Any associated `DestinationRule` in the selected namespace will also be used.
   * A `VirtualService` must be bound to the gateway and must have one or
   * more hosts that match the hosts specified in a server. The match
   * could be an exact match or a suffix match with the server's hosts. For
   * example, if the server's hosts specifies `*.example.com`, a
   * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
   * match. However, a `VirtualService` with host `example.com` or
   * `newexample.com` will not match.
   * NOTE: Only virtual services exported to the gateway's namespace
   * (e.g., `exportTo` value of `*`) can be referenced.
   * Private configurations (e.g., `exportTo` set to `.`) will not be
   * available. Refer to the `exportTo` setting in `VirtualService`,
   * `DestinationRule`, and `ServiceEntry` configurations for details.
   * 
* * repeated string hosts = 2; * @return The count of hosts. */ public int getHostsCount() { return hosts_.size(); } /** *
   * REQUIRED. One or more hosts exposed by this gateway.
   * While typically applicable to
   * HTTP services, it can also be used for TCP services using TLS with SNI.
   * A host is specified as a `dnsName` with an optional `namespace/` prefix.
   * The `dnsName` should be specified using FQDN format, optionally including
   * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
   * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
   * specified namespace (e.g.,`prod/*`).
   * The `namespace` can be set to `*` or `.`, representing any or the current
   * namespace, respectively. For example, `*/foo.example.com` selects the
   * service from any available namespace while `./foo.example.com` only selects
   * the service from the namespace of the sidecar. The default, if no `namespace/`
   * is specified, is `*/`, that is, select services from any namespace.
   * Any associated `DestinationRule` in the selected namespace will also be used.
   * A `VirtualService` must be bound to the gateway and must have one or
   * more hosts that match the hosts specified in a server. The match
   * could be an exact match or a suffix match with the server's hosts. For
   * example, if the server's hosts specifies `*.example.com`, a
   * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
   * match. However, a `VirtualService` with host `example.com` or
   * `newexample.com` will not match.
   * NOTE: Only virtual services exported to the gateway's namespace
   * (e.g., `exportTo` value of `*`) can be referenced.
   * Private configurations (e.g., `exportTo` set to `.`) will not be
   * available. Refer to the `exportTo` setting in `VirtualService`,
   * `DestinationRule`, and `ServiceEntry` configurations for details.
   * 
* * repeated string hosts = 2; * @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); } /** *
   * REQUIRED. One or more hosts exposed by this gateway.
   * While typically applicable to
   * HTTP services, it can also be used for TCP services using TLS with SNI.
   * A host is specified as a `dnsName` with an optional `namespace/` prefix.
   * The `dnsName` should be specified using FQDN format, optionally including
   * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
   * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
   * specified namespace (e.g.,`prod/*`).
   * The `namespace` can be set to `*` or `.`, representing any or the current
   * namespace, respectively. For example, `*/foo.example.com` selects the
   * service from any available namespace while `./foo.example.com` only selects
   * the service from the namespace of the sidecar. The default, if no `namespace/`
   * is specified, is `*/`, that is, select services from any namespace.
   * Any associated `DestinationRule` in the selected namespace will also be used.
   * A `VirtualService` must be bound to the gateway and must have one or
   * more hosts that match the hosts specified in a server. The match
   * could be an exact match or a suffix match with the server's hosts. For
   * example, if the server's hosts specifies `*.example.com`, a
   * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
   * match. However, a `VirtualService` with host `example.com` or
   * `newexample.com` will not match.
   * NOTE: Only virtual services exported to the gateway's namespace
   * (e.g., `exportTo` value of `*`) can be referenced.
   * Private configurations (e.g., `exportTo` set to `.`) will not be
   * available. Refer to the `exportTo` setting in `VirtualService`,
   * `DestinationRule`, and `ServiceEntry` configurations for details.
   * 
* * repeated string hosts = 2; * @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 TLS_FIELD_NUMBER = 3; private com.alibaba.nacos.istio.model.Server.TLSOptions tls_; /** *
   * Set of TLS related options that govern the server's behavior. Use
   * these options to control if all http requests should be redirected to
   * https, and the TLS modes to use.
   * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; * @return Whether the tls field is set. */ public boolean hasTls() { return tls_ != null; } /** *
   * Set of TLS related options that govern the server's behavior. Use
   * these options to control if all http requests should be redirected to
   * https, and the TLS modes to use.
   * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; * @return The tls. */ public com.alibaba.nacos.istio.model.Server.TLSOptions getTls() { return tls_ == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.getDefaultInstance() : tls_; } /** *
   * Set of TLS related options that govern the server's behavior. Use
   * these options to control if all http requests should be redirected to
   * https, and the TLS modes to use.
   * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ public com.alibaba.nacos.istio.model.Server.TLSOptionsOrBuilder getTlsOrBuilder() { return getTls(); } public static final int DEFAULT_ENDPOINT_FIELD_NUMBER = 5; private volatile java.lang.Object defaultEndpoint_; /** *
   * The loopback IP endpoint or Unix domain socket to which traffic should
   * be forwarded to by default. Format should be `127.0.0.1:PORT` or
   * `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).
   * 
* * string default_endpoint = 5; * @return The defaultEndpoint. */ public java.lang.String getDefaultEndpoint() { java.lang.Object ref = defaultEndpoint_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); defaultEndpoint_ = s; return s; } } /** *
   * The loopback IP endpoint or Unix domain socket to which traffic should
   * be forwarded to by default. Format should be `127.0.0.1:PORT` or
   * `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).
   * 
* * string default_endpoint = 5; * @return The bytes for defaultEndpoint. */ public com.google.protobuf.ByteString getDefaultEndpointBytes() { java.lang.Object ref = defaultEndpoint_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); defaultEndpoint_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (port_ != null) { output.writeMessage(1, getPort()); } for (int i = 0; i < hosts_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hosts_.getRaw(i)); } if (tls_ != null) { output.writeMessage(3, getTls()); } if (!getBindBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, bind_); } if (!getDefaultEndpointBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, defaultEndpoint_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (port_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getPort()); } { int dataSize = 0; for (int i = 0; i < hosts_.size(); i++) { dataSize += computeStringSizeNoTag(hosts_.getRaw(i)); } size += dataSize; size += 1 * getHostsList().size(); } if (tls_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getTls()); } if (!getBindBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, bind_); } if (!getDefaultEndpointBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, defaultEndpoint_); } 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 com.alibaba.nacos.istio.model.Server)) { return super.equals(obj); } com.alibaba.nacos.istio.model.Server other = (com.alibaba.nacos.istio.model.Server) obj; if (hasPort() != other.hasPort()) return false; if (hasPort()) { if (!getPort() .equals(other.getPort())) return false; } if (!getBind() .equals(other.getBind())) return false; if (!getHostsList() .equals(other.getHostsList())) return false; if (hasTls() != other.hasTls()) return false; if (hasTls()) { if (!getTls() .equals(other.getTls())) return false; } if (!getDefaultEndpoint() .equals(other.getDefaultEndpoint())) 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 (hasPort()) { hash = (37 * hash) + PORT_FIELD_NUMBER; hash = (53 * hash) + getPort().hashCode(); } hash = (37 * hash) + BIND_FIELD_NUMBER; hash = (53 * hash) + getBind().hashCode(); if (getHostsCount() > 0) { hash = (37 * hash) + HOSTS_FIELD_NUMBER; hash = (53 * hash) + getHostsList().hashCode(); } if (hasTls()) { hash = (37 * hash) + TLS_FIELD_NUMBER; hash = (53 * hash) + getTls().hashCode(); } hash = (37 * hash) + DEFAULT_ENDPOINT_FIELD_NUMBER; hash = (53 * hash) + getDefaultEndpoint().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static com.alibaba.nacos.istio.model.Server parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.alibaba.nacos.istio.model.Server parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.alibaba.nacos.istio.model.Server parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.alibaba.nacos.istio.model.Server parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.alibaba.nacos.istio.model.Server parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.alibaba.nacos.istio.model.Server parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.alibaba.nacos.istio.model.Server parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.alibaba.nacos.istio.model.Server 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 com.alibaba.nacos.istio.model.Server parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static com.alibaba.nacos.istio.model.Server 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 com.alibaba.nacos.istio.model.Server parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.alibaba.nacos.istio.model.Server 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(com.alibaba.nacos.istio.model.Server 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; } /** *
   * `Server` describes the properties of the proxy on a given load balancer
   * port. For example,
   * ```yaml
   * apiVersion: networking.istio.io/v1alpha3
   * kind: Gateway
   * metadata:
   *   name: my-ingress
   * spec:
   *   selector:
   *     app: my-ingress-gateway
   *   servers:
   *   - port:
   *       number: 80
   *       name: http2
   *       protocol: HTTP2
   *     hosts:
   *     - "*"
   * ```
   * Another example
   * ```yaml
   * apiVersion: networking.istio.io/v1alpha3
   * kind: Gateway
   * metadata:
   *   name: my-tcp-ingress
   * spec:
   *   selector:
   *     app: my-tcp-ingress-gateway
   *   servers:
   *   - port:
   *       number: 27018
   *       name: mongo
   *       protocol: MONGO
   *     hosts:
   *     - "*"
   * ```
   * The following is an example of TLS configuration for port 443
   * ```yaml
   * apiVersion: networking.istio.io/v1alpha3
   * kind: Gateway
   * metadata:
   *   name: my-tls-ingress
   * spec:
   *   selector:
   *     app: my-tls-ingress-gateway
   *   servers:
   *   - port:
   *       number: 443
   *       name: https
   *       protocol: HTTPS
   *     hosts:
   *     - "*"
   *     tls:
   *       mode: SIMPLE
   *       serverCertificate: /etc/certs/server.pem
   *       privateKey: /etc/certs/privatekey.pem
   * ```
   * 
* * Protobuf type {@code istio.networking.v1alpha3.Server} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:istio.networking.v1alpha3.Server) com.alibaba.nacos.istio.model.ServerOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_fieldAccessorTable .ensureFieldAccessorsInitialized( com.alibaba.nacos.istio.model.Server.class, com.alibaba.nacos.istio.model.Server.Builder.class); } // Construct using com.alibaba.nacos.istio.model.Server.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { } } @java.lang.Override public Builder clear() { super.clear(); if (portBuilder_ == null) { port_ = null; } else { port_ = null; portBuilder_ = null; } bind_ = ""; hosts_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); if (tlsBuilder_ == null) { tls_ = null; } else { tls_ = null; tlsBuilder_ = null; } defaultEndpoint_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return com.alibaba.nacos.istio.model.GatewayOuterClass.internal_static_istio_networking_v1alpha3_Server_descriptor; } @java.lang.Override public com.alibaba.nacos.istio.model.Server getDefaultInstanceForType() { return com.alibaba.nacos.istio.model.Server.getDefaultInstance(); } @java.lang.Override public com.alibaba.nacos.istio.model.Server build() { com.alibaba.nacos.istio.model.Server result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public com.alibaba.nacos.istio.model.Server buildPartial() { com.alibaba.nacos.istio.model.Server result = new com.alibaba.nacos.istio.model.Server(this); int from_bitField0_ = bitField0_; if (portBuilder_ == null) { result.port_ = port_; } else { result.port_ = portBuilder_.build(); } result.bind_ = bind_; if (((bitField0_ & 0x00000001) != 0)) { hosts_ = hosts_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000001); } result.hosts_ = hosts_; if (tlsBuilder_ == null) { result.tls_ = tls_; } else { result.tls_ = tlsBuilder_.build(); } result.defaultEndpoint_ = defaultEndpoint_; onBuilt(); return result; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.alibaba.nacos.istio.model.Server) { return mergeFrom((com.alibaba.nacos.istio.model.Server)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(com.alibaba.nacos.istio.model.Server other) { if (other == com.alibaba.nacos.istio.model.Server.getDefaultInstance()) return this; if (other.hasPort()) { mergePort(other.getPort()); } if (!other.getBind().isEmpty()) { bind_ = other.bind_; onChanged(); } if (!other.hosts_.isEmpty()) { if (hosts_.isEmpty()) { hosts_ = other.hosts_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureHostsIsMutable(); hosts_.addAll(other.hosts_); } onChanged(); } if (other.hasTls()) { mergeTls(other.getTls()); } if (!other.getDefaultEndpoint().isEmpty()) { defaultEndpoint_ = other.defaultEndpoint_; onChanged(); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { com.alibaba.nacos.istio.model.Server parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (com.alibaba.nacos.istio.model.Server) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private com.alibaba.nacos.istio.model.Port port_; private com.google.protobuf.SingleFieldBuilderV3< com.alibaba.nacos.istio.model.Port, com.alibaba.nacos.istio.model.Port.Builder, com.alibaba.nacos.istio.model.PortOrBuilder> portBuilder_; /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; * @return Whether the port field is set. */ public boolean hasPort() { return portBuilder_ != null || port_ != null; } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; * @return The port. */ public com.alibaba.nacos.istio.model.Port getPort() { if (portBuilder_ == null) { return port_ == null ? com.alibaba.nacos.istio.model.Port.getDefaultInstance() : port_; } else { return portBuilder_.getMessage(); } } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; */ public Builder setPort(com.alibaba.nacos.istio.model.Port value) { if (portBuilder_ == null) { if (value == null) { throw new NullPointerException(); } port_ = value; onChanged(); } else { portBuilder_.setMessage(value); } return this; } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; */ public Builder setPort( com.alibaba.nacos.istio.model.Port.Builder builderForValue) { if (portBuilder_ == null) { port_ = builderForValue.build(); onChanged(); } else { portBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; */ public Builder mergePort(com.alibaba.nacos.istio.model.Port value) { if (portBuilder_ == null) { if (port_ != null) { port_ = com.alibaba.nacos.istio.model.Port.newBuilder(port_).mergeFrom(value).buildPartial(); } else { port_ = value; } onChanged(); } else { portBuilder_.mergeFrom(value); } return this; } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; */ public Builder clearPort() { if (portBuilder_ == null) { port_ = null; onChanged(); } else { port_ = null; portBuilder_ = null; } return this; } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; */ public com.alibaba.nacos.istio.model.Port.Builder getPortBuilder() { onChanged(); return getPortFieldBuilder().getBuilder(); } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; */ public com.alibaba.nacos.istio.model.PortOrBuilder getPortOrBuilder() { if (portBuilder_ != null) { return portBuilder_.getMessageOrBuilder(); } else { return port_ == null ? com.alibaba.nacos.istio.model.Port.getDefaultInstance() : port_; } } /** *
     * REQUIRED: The Port on which the proxy should listen for incoming
     * connections.
     * 
* * .istio.networking.v1alpha3.Port port = 1; */ private com.google.protobuf.SingleFieldBuilderV3< com.alibaba.nacos.istio.model.Port, com.alibaba.nacos.istio.model.Port.Builder, com.alibaba.nacos.istio.model.PortOrBuilder> getPortFieldBuilder() { if (portBuilder_ == null) { portBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.alibaba.nacos.istio.model.Port, com.alibaba.nacos.istio.model.Port.Builder, com.alibaba.nacos.istio.model.PortOrBuilder>( getPort(), getParentForChildren(), isClean()); port_ = null; } return portBuilder_; } private java.lang.Object bind_ = ""; /** *
     * $hide_from_docs
     * The ip or the Unix domain socket to which the listener should be bound
     * to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar`
     * (Linux abstract namespace). When using Unix domain sockets, the port
     * number should be 0.
     * 
* * string bind = 4; * @return The bind. */ public java.lang.String getBind() { java.lang.Object ref = bind_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); bind_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * $hide_from_docs
     * The ip or the Unix domain socket to which the listener should be bound
     * to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar`
     * (Linux abstract namespace). When using Unix domain sockets, the port
     * number should be 0.
     * 
* * string bind = 4; * @return The bytes for bind. */ public com.google.protobuf.ByteString getBindBytes() { java.lang.Object ref = bind_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); bind_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * $hide_from_docs
     * The ip or the Unix domain socket to which the listener should be bound
     * to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar`
     * (Linux abstract namespace). When using Unix domain sockets, the port
     * number should be 0.
     * 
* * string bind = 4; * @param value The bind to set. * @return This builder for chaining. */ public Builder setBind( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bind_ = value; onChanged(); return this; } /** *
     * $hide_from_docs
     * The ip or the Unix domain socket to which the listener should be bound
     * to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar`
     * (Linux abstract namespace). When using Unix domain sockets, the port
     * number should be 0.
     * 
* * string bind = 4; * @return This builder for chaining. */ public Builder clearBind() { bind_ = getDefaultInstance().getBind(); onChanged(); return this; } /** *
     * $hide_from_docs
     * The ip or the Unix domain socket to which the listener should be bound
     * to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar`
     * (Linux abstract namespace). When using Unix domain sockets, the port
     * number should be 0.
     * 
* * string bind = 4; * @param value The bytes for bind to set. * @return This builder for chaining. */ public Builder setBindBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); bind_ = value; onChanged(); return this; } private com.google.protobuf.LazyStringList hosts_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureHostsIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { hosts_ = new com.google.protobuf.LazyStringArrayList(hosts_); bitField0_ |= 0x00000001; } } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @return A list containing the hosts. */ public com.google.protobuf.ProtocolStringList getHostsList() { return hosts_.getUnmodifiableView(); } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @return The count of hosts. */ public int getHostsCount() { return hosts_.size(); } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @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); } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @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); } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @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; } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @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; } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @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; } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @return This builder for chaining. */ public Builder clearHosts() { hosts_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** *
     * REQUIRED. One or more hosts exposed by this gateway.
     * While typically applicable to
     * HTTP services, it can also be used for TCP services using TLS with SNI.
     * A host is specified as a `dnsName` with an optional `namespace/` prefix.
     * The `dnsName` should be specified using FQDN format, optionally including
     * a wildcard character in the left-most component (e.g., `prod/*.example.com`).
     * Set the `dnsName` to `*` to select all `VirtualService` hosts from the
     * specified namespace (e.g.,`prod/*`).
     * The `namespace` can be set to `*` or `.`, representing any or the current
     * namespace, respectively. For example, `*/foo.example.com` selects the
     * service from any available namespace while `./foo.example.com` only selects
     * the service from the namespace of the sidecar. The default, if no `namespace/`
     * is specified, is `*/`, that is, select services from any namespace.
     * Any associated `DestinationRule` in the selected namespace will also be used.
     * A `VirtualService` must be bound to the gateway and must have one or
     * more hosts that match the hosts specified in a server. The match
     * could be an exact match or a suffix match with the server's hosts. For
     * example, if the server's hosts specifies `*.example.com`, a
     * `VirtualService` with hosts `dev.example.com` or `prod.example.com` will
     * match. However, a `VirtualService` with host `example.com` or
     * `newexample.com` will not match.
     * NOTE: Only virtual services exported to the gateway's namespace
     * (e.g., `exportTo` value of `*`) can be referenced.
     * Private configurations (e.g., `exportTo` set to `.`) will not be
     * available. Refer to the `exportTo` setting in `VirtualService`,
     * `DestinationRule`, and `ServiceEntry` configurations for details.
     * 
* * repeated string hosts = 2; * @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.alibaba.nacos.istio.model.Server.TLSOptions tls_; private com.google.protobuf.SingleFieldBuilderV3< com.alibaba.nacos.istio.model.Server.TLSOptions, com.alibaba.nacos.istio.model.Server.TLSOptions.Builder, com.alibaba.nacos.istio.model.Server.TLSOptionsOrBuilder> tlsBuilder_; /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; * @return Whether the tls field is set. */ public boolean hasTls() { return tlsBuilder_ != null || tls_ != null; } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; * @return The tls. */ public com.alibaba.nacos.istio.model.Server.TLSOptions getTls() { if (tlsBuilder_ == null) { return tls_ == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.getDefaultInstance() : tls_; } else { return tlsBuilder_.getMessage(); } } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ public Builder setTls(com.alibaba.nacos.istio.model.Server.TLSOptions value) { if (tlsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } tls_ = value; onChanged(); } else { tlsBuilder_.setMessage(value); } return this; } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ public Builder setTls( com.alibaba.nacos.istio.model.Server.TLSOptions.Builder builderForValue) { if (tlsBuilder_ == null) { tls_ = builderForValue.build(); onChanged(); } else { tlsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ public Builder mergeTls(com.alibaba.nacos.istio.model.Server.TLSOptions value) { if (tlsBuilder_ == null) { if (tls_ != null) { tls_ = com.alibaba.nacos.istio.model.Server.TLSOptions.newBuilder(tls_).mergeFrom(value).buildPartial(); } else { tls_ = value; } onChanged(); } else { tlsBuilder_.mergeFrom(value); } return this; } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ public Builder clearTls() { if (tlsBuilder_ == null) { tls_ = null; onChanged(); } else { tls_ = null; tlsBuilder_ = null; } return this; } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ public com.alibaba.nacos.istio.model.Server.TLSOptions.Builder getTlsBuilder() { onChanged(); return getTlsFieldBuilder().getBuilder(); } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ public com.alibaba.nacos.istio.model.Server.TLSOptionsOrBuilder getTlsOrBuilder() { if (tlsBuilder_ != null) { return tlsBuilder_.getMessageOrBuilder(); } else { return tls_ == null ? com.alibaba.nacos.istio.model.Server.TLSOptions.getDefaultInstance() : tls_; } } /** *
     * Set of TLS related options that govern the server's behavior. Use
     * these options to control if all http requests should be redirected to
     * https, and the TLS modes to use.
     * 
* * .istio.networking.v1alpha3.Server.TLSOptions tls = 3; */ private com.google.protobuf.SingleFieldBuilderV3< com.alibaba.nacos.istio.model.Server.TLSOptions, com.alibaba.nacos.istio.model.Server.TLSOptions.Builder, com.alibaba.nacos.istio.model.Server.TLSOptionsOrBuilder> getTlsFieldBuilder() { if (tlsBuilder_ == null) { tlsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.alibaba.nacos.istio.model.Server.TLSOptions, com.alibaba.nacos.istio.model.Server.TLSOptions.Builder, com.alibaba.nacos.istio.model.Server.TLSOptionsOrBuilder>( getTls(), getParentForChildren(), isClean()); tls_ = null; } return tlsBuilder_; } private java.lang.Object defaultEndpoint_ = ""; /** *
     * The loopback IP endpoint or Unix domain socket to which traffic should
     * be forwarded to by default. Format should be `127.0.0.1:PORT` or
     * `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).
     * 
* * string default_endpoint = 5; * @return The defaultEndpoint. */ public java.lang.String getDefaultEndpoint() { java.lang.Object ref = defaultEndpoint_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); defaultEndpoint_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * The loopback IP endpoint or Unix domain socket to which traffic should
     * be forwarded to by default. Format should be `127.0.0.1:PORT` or
     * `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).
     * 
* * string default_endpoint = 5; * @return The bytes for defaultEndpoint. */ public com.google.protobuf.ByteString getDefaultEndpointBytes() { java.lang.Object ref = defaultEndpoint_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); defaultEndpoint_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * The loopback IP endpoint or Unix domain socket to which traffic should
     * be forwarded to by default. Format should be `127.0.0.1:PORT` or
     * `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).
     * 
* * string default_endpoint = 5; * @param value The defaultEndpoint to set. * @return This builder for chaining. */ public Builder setDefaultEndpoint( java.lang.String value) { if (value == null) { throw new NullPointerException(); } defaultEndpoint_ = value; onChanged(); return this; } /** *
     * The loopback IP endpoint or Unix domain socket to which traffic should
     * be forwarded to by default. Format should be `127.0.0.1:PORT` or
     * `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).
     * 
* * string default_endpoint = 5; * @return This builder for chaining. */ public Builder clearDefaultEndpoint() { defaultEndpoint_ = getDefaultInstance().getDefaultEndpoint(); onChanged(); return this; } /** *
     * The loopback IP endpoint or Unix domain socket to which traffic should
     * be forwarded to by default. Format should be `127.0.0.1:PORT` or
     * `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).
     * 
* * string default_endpoint = 5; * @param value The bytes for defaultEndpoint to set. * @return This builder for chaining. */ public Builder setDefaultEndpointBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); defaultEndpoint_ = 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.Server) } // @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Server) private static final com.alibaba.nacos.istio.model.Server DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new com.alibaba.nacos.istio.model.Server(); } public static com.alibaba.nacos.istio.model.Server getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Server parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new Server(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 com.alibaba.nacos.istio.model.Server getDefaultInstanceForType() { return DEFAULT_INSTANCE; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy