Class: Google::Cloud::Compute::V1::BackendService

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/compute/v1/compute.rb

Overview

Represents a Backend Service resource. A backend service defines how Google Cloud load balancers distribute traffic. The backend service configuration contains a set of values, such as the protocol used to connect to backends, various distribution and session settings, health checks, and timeouts. These settings provide fine-grained control over how your load balancer behaves. Most of the settings have default values that allow for easy configuration if you need to get started quickly. Backend services in Google Compute Engine can be either regionally or globally scoped. * Global * Regional For more information, see Backend Services.

Defined Under Namespace

Modules: CompressionMode, IpAddressSelectionPolicy, LoadBalancingScheme, LocalityLbPolicy, Protocol, SessionAffinity Classes: MetadatasEntry

Instance Attribute Summary collapse

Instance Attribute Details



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#backends::Array<::Google::Cloud::Compute::V1::Backend>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#cdn_policy::Google::Cloud::Compute::V1::BackendServiceCdnPolicy



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#circuit_breakers::Google::Cloud::Compute::V1::CircuitBreakers



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#compression_mode::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#connection_draining::Google::Cloud::Compute::V1::ConnectionDraining



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#connection_tracking_policy::Google::Cloud::Compute::V1::BackendServiceConnectionTrackingPolicy



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#consistent_hash::Google::Cloud::Compute::V1::ConsistentHashLoadBalancerSettings



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#creation_timestamp::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#custom_metrics::Array<::Google::Cloud::Compute::V1::BackendServiceCustomMetric>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#custom_request_headers::Array<::String>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#custom_response_headers::Array<::String>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#description::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#edge_security_policy::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#enable_c_d_n::Boolean



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#failover_policy::Google::Cloud::Compute::V1::BackendServiceFailoverPolicy



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#fingerprint::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#ha_policy::Google::Cloud::Compute::V1::BackendServiceHAPolicy



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#health_checks::Array<::String>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#iap::Google::Cloud::Compute::V1::BackendServiceIAP



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#id::Integer



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#ip_address_selection_policy::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#kind::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#load_balancing_scheme::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#locality_lb_policies::Array<::Google::Cloud::Compute::V1::BackendServiceLocalityLoadBalancingPolicyConfig>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#locality_lb_policy::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#log_config::Google::Cloud::Compute::V1::BackendServiceLogConfig



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#max_stream_duration::Google::Cloud::Compute::V1::Duration



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#metadatas::Google::Protobuf::Map{::String => ::String}



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#name::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#network::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#outlier_detection::Google::Cloud::Compute::V1::OutlierDetection



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#port::Integer



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#port_name::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#protocol::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#region::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#security_policy::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#security_settings::Google::Cloud::Compute::V1::SecuritySettings



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end


3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#service_bindings::Array<::String>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#service_lb_policy::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#session_affinity::String



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end


3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#subsetting::Google::Cloud::Compute::V1::Subsetting



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#timeout_sec::Integer



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end

#used_by::Array<::Google::Cloud::Compute::V1::BackendServiceUsedBy>



3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
# File 'proto_docs/google/cloud/compute/v1/compute.rb', line 3804

class BackendService
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class MetadatasEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.
  module CompressionMode
    # A value indicating that the enum field is not set.
    UNDEFINED_COMPRESSION_MODE = 0

    # Automatically uses the best compression based on the Accept-Encoding header sent by the client.
    AUTOMATIC = 165_298_699

    # Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients.
    DISABLED = 516_696_700
  end

  # Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
  module IpAddressSelectionPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0

    # Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.
    IPV4_ONLY = 22_373_798

    # Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.
    IPV6_ONLY = 79_632_100

    # Unspecified IP address selection policy.
    IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36_210_144

    # Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address).
    PREFER_IPV6 = 408_601_302
  end

  # Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
  module LoadBalancingScheme
    # A value indicating that the enum field is not set.
    UNDEFINED_LOAD_BALANCING_SCHEME = 0

    # Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.
    EXTERNAL = 35_607_499

    # Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.
    EXTERNAL_MANAGED = 512_006_923

    # Signifies that this will be used for internal passthrough Network Load Balancers.
    INTERNAL = 279_295_677

    # Signifies that this will be used for internal Application Load Balancers.
    INTERNAL_MANAGED = 37_350_397

    # Signifies that this will be used by Traffic Director.
    INTERNAL_SELF_MANAGED = 236_211_150

    INVALID_LOAD_BALANCING_SCHEME = 275_352_060
  end

  # The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not configured—that is, if session affinity remains at the default value of NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If session affinity is set to a value other than NONE, then the default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. localityLbPolicy cannot be specified with haPolicy.
  module LocalityLbPolicy
    # A value indicating that the enum field is not set.
    UNDEFINED_LOCALITY_LB_POLICY = 0

    INVALID_LB_POLICY = 323_318_707

    # An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
    LEAST_REQUEST = 46_604_921

    # This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824
    MAGLEV = 119_180_266

    # Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.
    ORIGINAL_DESTINATION = 166_297_216

    # The load balancer selects a random healthy host.
    RANDOM = 262_527_171

    # The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.
    RING_HASH = 432_795_069

    # This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
    ROUND_ROBIN = 153_895_801

    # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing.
    WEIGHTED_MAGLEV = 254_930_962

    # Per-endpoint weighted round-robin Load Balancing using weights computed from Backend reported Custom Metrics. If set, the Backend Service responses are expected to contain non-standard HTTP response header field X-Endpoint-Load-Metrics. The reported metrics to use for computing the weights are specified via the backends[].customMetrics fields.
    WEIGHTED_ROUND_ROBIN = 5_584_977
  end

  # The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.
  module Protocol
    # A value indicating that the enum field is not set.
    UNDEFINED_PROTOCOL = 0

    # gRPC (available for Traffic Director).
    GRPC = 2_196_510

    HTTP = 2_228_360

    # HTTP/2 with SSL.
    HTTP2 = 69_079_210

    HTTPS = 69_079_243

    # TCP proxying with SSL.
    SSL = 82_412

    # TCP proxying or TCP pass-through.
    TCP = 82_881

    # UDP.
    UDP = 83_873

    # If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules.
    UNSPECIFIED = 526_786_327
  end

  # Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). sessionAffinity cannot be specified with haPolicy.
  module SessionAffinity
    # A value indicating that the enum field is not set.
    UNDEFINED_SESSION_AFFINITY = 0

    # 2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.
    CLIENT_IP = 345_665_051

    # 1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.
    CLIENT_IP_NO_DESTINATION = 106_122_516

    # 5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PORT_PROTO = 221_722_926

    # 3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.
    CLIENT_IP_PROTO = 25_322_148

    # Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.
    GENERATED_COOKIE = 370_321_204

    # The hash is based on a user specified header field.
    HEADER_FIELD = 200_737_960

    # The hash is based on a user provided cookie.
    HTTP_COOKIE = 494_981_627

    # No session affinity. Connections from the same client IP may go to any instance in the pool.
    NONE = 2_402_104

    # Strong cookie-based affinity. Connections bearing the same cookie will be served by the same backend VM while that VM remains healthy, as long as the cookie has not expired.
    STRONG_COOKIE_AFFINITY = 438_628_091
  end
end