google-cloud-network_services-v1 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/network_services/v1/network_services/client.rb +1188 -140
  3. data/lib/google/cloud/network_services/v1/network_services/paths.rb +175 -0
  4. data/lib/google/cloud/network_services/v1/network_services/rest/client.rb +1115 -137
  5. data/lib/google/cloud/network_services/v1/network_services/rest/service_stub.rb +613 -0
  6. data/lib/google/cloud/network_services/v1/version.rb +1 -1
  7. data/lib/google/cloud/networkservices/v1/common_pb.rb +2 -1
  8. data/lib/google/cloud/networkservices/v1/endpoint_policy_pb.rb +1 -1
  9. data/lib/google/cloud/networkservices/v1/gateway_pb.rb +4 -1
  10. data/lib/google/cloud/networkservices/v1/grpc_route_pb.rb +2 -1
  11. data/lib/google/cloud/networkservices/v1/http_route_pb.rb +3 -1
  12. data/lib/google/cloud/networkservices/v1/mesh_pb.rb +2 -1
  13. data/lib/google/cloud/networkservices/v1/network_services_pb.rb +4 -1
  14. data/lib/google/cloud/networkservices/v1/network_services_services_pb.rb +20 -0
  15. data/lib/google/cloud/networkservices/v1/route_view_pb.rb +52 -0
  16. data/lib/google/cloud/networkservices/v1/service_binding_pb.rb +4 -1
  17. data/lib/google/cloud/networkservices/v1/service_lb_policy_pb.rb +58 -0
  18. data/lib/google/cloud/networkservices/v1/tcp_route_pb.rb +3 -1
  19. data/lib/google/cloud/networkservices/v1/tls_route_pb.rb +3 -1
  20. data/proto_docs/google/cloud/networkservices/v1/common.rb +18 -1
  21. data/proto_docs/google/cloud/networkservices/v1/endpoint_policy.rb +12 -1
  22. data/proto_docs/google/cloud/networkservices/v1/gateway.rb +96 -8
  23. data/proto_docs/google/cloud/networkservices/v1/grpc_route.rb +51 -7
  24. data/proto_docs/google/cloud/networkservices/v1/http_route.rb +86 -1
  25. data/proto_docs/google/cloud/networkservices/v1/mesh.rb +16 -1
  26. data/proto_docs/google/cloud/networkservices/v1/route_view.rb +168 -0
  27. data/proto_docs/google/cloud/networkservices/v1/service_binding.rb +47 -10
  28. data/proto_docs/google/cloud/networkservices/v1/service_lb_policy.rb +217 -0
  29. data/proto_docs/google/cloud/networkservices/v1/tcp_route.rb +23 -7
  30. data/proto_docs/google/cloud/networkservices/v1/tls_route.rb +35 -6
  31. metadata +6 -2
@@ -6,11 +6,12 @@ require 'google/protobuf'
6
6
 
7
7
  require 'google/api/field_behavior_pb'
8
8
  require 'google/api/resource_pb'
9
+ require 'google/protobuf/duration_pb'
9
10
  require 'google/protobuf/field_mask_pb'
10
11
  require 'google/protobuf/timestamp_pb'
11
12
 
12
13
 
13
- descriptor_data = "\n/google/cloud/networkservices/v1/tls_route.proto\x12\x1fgoogle.cloud.networkservices.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa2\x07\n\x08TlsRoute\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tself_link\x18\x08 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12G\n\x05rules\x18\x05 \x03(\x0b\x32\x33.google.cloud.networkservices.v1.TlsRoute.RouteRuleB\x03\xe0\x41\x02\x12;\n\x06meshes\x18\x06 \x03(\tB+\xe0\x41\x01\xfa\x41%\n#networkservices.googleapis.com/Mesh\x12@\n\x08gateways\x18\x07 \x03(\tB.\xe0\x41\x01\xfa\x41(\n&networkservices.googleapis.com/Gateway\x1a\xa3\x01\n\tRouteRule\x12J\n\x07matches\x18\x01 \x03(\x0b\x32\x34.google.cloud.networkservices.v1.TlsRoute.RouteMatchB\x03\xe0\x41\x02\x12J\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x35.google.cloud.networkservices.v1.TlsRoute.RouteActionB\x03\xe0\x41\x02\x1a\x36\n\nRouteMatch\x12\x15\n\x08sni_host\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04\x61lpn\x18\x02 \x03(\tB\x03\xe0\x41\x01\x1a\x64\n\x0bRouteAction\x12U\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32:.google.cloud.networkservices.v1.TlsRoute.RouteDestinationB\x03\xe0\x41\x02\x1al\n\x10RouteDestination\x12\x43\n\x0cservice_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%compute.googleapis.com/BackendService\x12\x13\n\x06weight\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01:k\xea\x41h\n\'networkservices.googleapis.com/TlsRoute\x12=projects/{project}/locations/{location}/tlsRoutes/{tls_route}\"~\n\x14ListTlsRoutesRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'networkservices.googleapis.com/TlsRoute\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"o\n\x15ListTlsRoutesResponse\x12=\n\ntls_routes\x18\x01 \x03(\x0b\x32).google.cloud.networkservices.v1.TlsRoute\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"S\n\x12GetTlsRouteRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'networkservices.googleapis.com/TlsRoute\"\xb6\x01\n\x15\x43reateTlsRouteRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'networkservices.googleapis.com/TlsRoute\x12\x19\n\x0ctls_route_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\ttls_route\x18\x03 \x01(\x0b\x32).google.cloud.networkservices.v1.TlsRouteB\x03\xe0\x41\x02\"\x90\x01\n\x15UpdateTlsRouteRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x41\n\ttls_route\x18\x02 \x01(\x0b\x32).google.cloud.networkservices.v1.TlsRouteB\x03\xe0\x41\x02\"V\n\x15\x44\x65leteTlsRouteRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'networkservices.googleapis.com/TlsRouteB\xee\x01\n#com.google.cloud.networkservices.v1B\rTlsRouteProtoP\x01ZMcloud.google.com/go/networkservices/apiv1/networkservicespb;networkservicespb\xaa\x02\x1fGoogle.Cloud.NetworkServices.V1\xca\x02\x1fGoogle\\Cloud\\NetworkServices\\V1\xea\x02\"Google::Cloud::NetworkServices::V1b\x06proto3"
14
+ descriptor_data = "\n/google/cloud/networkservices/v1/tls_route.proto\x12\x1fgoogle.cloud.networkservices.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd4\x08\n\x08TlsRoute\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x16\n\tself_link\x18\x08 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12G\n\x05rules\x18\x05 \x03(\x0b\x32\x33.google.cloud.networkservices.v1.TlsRoute.RouteRuleB\x03\xe0\x41\x02\x12;\n\x06meshes\x18\x06 \x03(\tB+\xe0\x41\x01\xfa\x41%\n#networkservices.googleapis.com/Mesh\x12@\n\x08gateways\x18\x07 \x03(\tB.\xe0\x41\x01\xfa\x41(\n&networkservices.googleapis.com/Gateway\x12J\n\x06labels\x18\x0b \x03(\x0b\x32\x35.google.cloud.networkservices.v1.TlsRoute.LabelsEntryB\x03\xe0\x41\x01\x1a\xa3\x01\n\tRouteRule\x12J\n\x07matches\x18\x01 \x03(\x0b\x32\x34.google.cloud.networkservices.v1.TlsRoute.RouteMatchB\x03\xe0\x41\x02\x12J\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x35.google.cloud.networkservices.v1.TlsRoute.RouteActionB\x03\xe0\x41\x02\x1a\x36\n\nRouteMatch\x12\x15\n\x08sni_host\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04\x61lpn\x18\x02 \x03(\tB\x03\xe0\x41\x01\x1a\x9a\x01\n\x0bRouteAction\x12U\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32:.google.cloud.networkservices.v1.TlsRoute.RouteDestinationB\x03\xe0\x41\x02\x12\x34\n\x0cidle_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x1al\n\x10RouteDestination\x12\x43\n\x0cservice_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%compute.googleapis.com/BackendService\x12\x13\n\x06weight\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:k\xea\x41h\n\'networkservices.googleapis.com/TlsRoute\x12=projects/{project}/locations/{location}/tlsRoutes/{tls_route}\"\xa3\x01\n\x14ListTlsRoutesRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'networkservices.googleapis.com/TlsRoute\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12#\n\x16return_partial_success\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\x84\x01\n\x15ListTlsRoutesResponse\x12=\n\ntls_routes\x18\x01 \x03(\x0b\x32).google.cloud.networkservices.v1.TlsRoute\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"S\n\x12GetTlsRouteRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'networkservices.googleapis.com/TlsRoute\"\xb6\x01\n\x15\x43reateTlsRouteRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'networkservices.googleapis.com/TlsRoute\x12\x19\n\x0ctls_route_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\ttls_route\x18\x03 \x01(\x0b\x32).google.cloud.networkservices.v1.TlsRouteB\x03\xe0\x41\x02\"\x90\x01\n\x15UpdateTlsRouteRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x41\n\ttls_route\x18\x02 \x01(\x0b\x32).google.cloud.networkservices.v1.TlsRouteB\x03\xe0\x41\x02\"V\n\x15\x44\x65leteTlsRouteRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'networkservices.googleapis.com/TlsRouteB\xee\x01\n#com.google.cloud.networkservices.v1B\rTlsRouteProtoP\x01ZMcloud.google.com/go/networkservices/apiv1/networkservicespb;networkservicespb\xaa\x02\x1fGoogle.Cloud.NetworkServices.V1\xca\x02\x1fGoogle\\Cloud\\NetworkServices\\V1\xea\x02\"Google::Cloud::NetworkServices::V1b\x06proto3"
14
15
 
15
16
  pool = Google::Protobuf::DescriptorPool.generated_pool
16
17
 
@@ -26,6 +27,7 @@ rescue TypeError
26
27
  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
27
28
  imports = [
28
29
  ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
30
+ ["google.protobuf.Duration", "google/protobuf/duration.proto"],
29
31
  ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"],
30
32
  ]
31
33
  imports.each do |type_name, expected_filename|
@@ -101,7 +101,7 @@ module Google
101
101
  #
102
102
  # If there is more than one best match, (for example, if a
103
103
  # config P4 with selector <A:1,D:1> exists and if a client with
104
- # label <A:1,B:1,D:1> connects), an error will be thrown.
104
+ # label <A:1,B:1,D:1> connects), pick up the one with older creation time.
105
105
  # @!attribute [rw] metadata_labels
106
106
  # @return [::Array<::Google::Cloud::NetworkServices::V1::EndpointMatcher::MetadataLabelMatcher::MetadataLabels>]
107
107
  # The list of label value pairs that must match labels in the
@@ -141,6 +141,23 @@ module Google
141
141
  end
142
142
  end
143
143
  end
144
+
145
+ # EnvoyHeader configuration for Mesh and Gateway
146
+ module EnvoyHeaders
147
+ # Defaults to NONE.
148
+ ENVOY_HEADERS_UNSPECIFIED = 0
149
+
150
+ # Suppress envoy debug headers.
151
+ NONE = 1
152
+
153
+ # Envoy will insert default internal debug headers into upstream requests:
154
+ # x-envoy-attempt-count
155
+ # x-envoy-is-timeout-retry
156
+ # x-envoy-expected-rq-timeout-ms
157
+ # x-envoy-original-path
158
+ # x-envoy-upstream-stream-duration-ms
159
+ DEBUG_HEADERS = 2
160
+ end
144
161
  end
145
162
  end
146
163
  end
@@ -27,7 +27,7 @@ module Google
27
27
  # an all endpoints that serve on port 8080.
28
28
  # @!attribute [rw] name
29
29
  # @return [::String]
30
- # Required. Name of the EndpointPolicy resource. It matches pattern
30
+ # Identifier. Name of the EndpointPolicy resource. It matches pattern
31
31
  # `projects/{project}/locations/global/endpointPolicies/{endpoint_policy}`.
32
32
  # @!attribute [r] create_time
33
33
  # @return [::Google::Protobuf::Timestamp]
@@ -117,6 +117,11 @@ module Google
117
117
  # Indicates that this is a continuation of a prior
118
118
  # `ListEndpointPolicies` call, and that the system should return the
119
119
  # next page of data.
120
+ # @!attribute [rw] return_partial_success
121
+ # @return [::Boolean]
122
+ # Optional. If true, allow partial responses for multi-regional Aggregated
123
+ # List requests. Otherwise if one of the locations is down or unreachable,
124
+ # the Aggregated List request will fail.
120
125
  class ListEndpointPoliciesRequest
121
126
  include ::Google::Protobuf::MessageExts
122
127
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -131,6 +136,12 @@ module Google
131
136
  # If there might be more results than those appearing in this response, then
132
137
  # `next_page_token` is included. To get the next set of results, call this
133
138
  # method again using the value of `next_page_token` as `page_token`.
139
+ # @!attribute [rw] unreachable
140
+ # @return [::Array<::String>]
141
+ # Unreachable resources. Populated when the request opts into
142
+ # {::Google::Cloud::NetworkServices::V1::ListEndpointPoliciesRequest#return_partial_success return_partial_success}
143
+ # and reading across collections e.g. when
144
+ # attempting to list all resources across all supported locations.
134
145
  class ListEndpointPoliciesResponse
135
146
  include ::Google::Protobuf::MessageExts
136
147
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -27,7 +27,7 @@ module Google
27
27
  # dictate how requests should be routed by this Gateway.
28
28
  # @!attribute [rw] name
29
29
  # @return [::String]
30
- # Required. Name of the Gateway resource. It matches pattern
30
+ # Identifier. Name of the Gateway resource. It matches pattern
31
31
  # `projects/*/locations/*/gateways/<gateway_name>`.
32
32
  # @!attribute [r] self_link
33
33
  # @return [::String]
@@ -49,17 +49,27 @@ module Google
49
49
  # @return [::Google::Cloud::NetworkServices::V1::Gateway::Type]
50
50
  # Immutable. The type of the customer managed gateway.
51
51
  # This field is required. If unspecified, an error is returned.
52
+ # @!attribute [rw] addresses
53
+ # @return [::Array<::String>]
54
+ # Optional. Zero or one IPv4 or IPv6 address on which the Gateway will
55
+ # receive the traffic. When no address is provided, an IP from the subnetwork
56
+ # is allocated
57
+ #
58
+ # This field only applies to gateways of type 'SECURE_WEB_GATEWAY'.
59
+ # Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6.
52
60
  # @!attribute [rw] ports
53
61
  # @return [::Array<::Integer>]
54
- # Required. One or more ports that the Gateway must receive traffic on. The
55
- # proxy binds to the ports specified. Gateway listen on 0.0.0.0 on the ports
56
- # specified below.
62
+ # Required. One or more port numbers (1-65535), on which the Gateway will
63
+ # receive traffic. The proxy binds to the specified ports.
64
+ # Gateways of type 'SECURE_WEB_GATEWAY' are limited to 1 port.
65
+ # Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6 and
66
+ # support multiple ports.
57
67
  # @!attribute [rw] scope
58
68
  # @return [::String]
59
- # Required. Immutable. Scope determines how configuration across multiple
60
- # Gateway instances are merged. The configuration for multiple Gateway
61
- # instances with the same scope will be merged as presented as a single
62
- # coniguration to the proxy/load balancer.
69
+ # Optional. Scope determines how configuration across multiple Gateway
70
+ # instances are merged. The configuration for multiple Gateway instances with
71
+ # the same scope will be merged as presented as a single configuration to the
72
+ # proxy/load balancer.
63
73
  #
64
74
  # Max length 64 characters.
65
75
  # Scope should start with a letter and can only have letters, numbers,
@@ -68,6 +78,49 @@ module Google
68
78
  # @return [::String]
69
79
  # Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how
70
80
  # TLS traffic is terminated. If empty, TLS termination is disabled.
81
+ # @!attribute [rw] certificate_urls
82
+ # @return [::Array<::String>]
83
+ # Optional. A fully-qualified Certificates URL reference. The proxy presents
84
+ # a Certificate (selected based on SNI) when establishing a TLS connection.
85
+ # This feature only applies to gateways of type 'SECURE_WEB_GATEWAY'.
86
+ # @!attribute [rw] gateway_security_policy
87
+ # @return [::String]
88
+ # Optional. A fully-qualified GatewaySecurityPolicy URL reference.
89
+ # Defines how a server should apply security policy to inbound
90
+ # (VM to Proxy) initiated connections.
91
+ #
92
+ # For example:
93
+ # `projects/*/locations/*/gatewaySecurityPolicies/swg-policy`.
94
+ #
95
+ # This policy is specific to gateways of type 'SECURE_WEB_GATEWAY'.
96
+ # @!attribute [rw] network
97
+ # @return [::String]
98
+ # Optional. The relative resource name identifying the VPC network that is
99
+ # using this configuration. For example:
100
+ # `projects/*/global/networks/network-1`.
101
+ #
102
+ # Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY'.
103
+ # @!attribute [rw] subnetwork
104
+ # @return [::String]
105
+ # Optional. The relative resource name identifying the subnetwork in which
106
+ # this SWG is allocated. For example:
107
+ # `projects/*/regions/us-central1/subnetworks/network-1`
108
+ #
109
+ # Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY".
110
+ # @!attribute [rw] ip_version
111
+ # @return [::Google::Cloud::NetworkServices::V1::Gateway::IpVersion]
112
+ # Optional. The IP Version that will be used by this gateway. Valid options
113
+ # are IPV4 or IPV6. Default is IPV4.
114
+ # @!attribute [rw] envoy_headers
115
+ # @return [::Google::Cloud::NetworkServices::V1::EnvoyHeaders]
116
+ # Optional. Determines if envoy will insert internal debug headers into
117
+ # upstream requests. Other Envoy headers may still be injected. By default,
118
+ # envoy will not insert any debug headers.
119
+ # @!attribute [rw] routing_mode
120
+ # @return [::Google::Cloud::NetworkServices::V1::Gateway::RoutingMode]
121
+ # Optional. The routing mode of the Gateway.
122
+ # This field is configurable only for gateways of type SECURE_WEB_GATEWAY.
123
+ # This field is required for gateways of type SECURE_WEB_GATEWAY.
71
124
  class Gateway
72
125
  include ::Google::Protobuf::MessageExts
73
126
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -96,6 +149,38 @@ module Google
96
149
  # The type of the customer managed gateway is SecureWebGateway (SWG).
97
150
  SECURE_WEB_GATEWAY = 2
98
151
  end
152
+
153
+ # The types of IP version for the gateway.
154
+ # Possible values are:
155
+ # * IPV4
156
+ # * IPV6
157
+ module IpVersion
158
+ # The type when IP version is not specified. Defaults to IPV4.
159
+ IP_VERSION_UNSPECIFIED = 0
160
+
161
+ # The type for IP version 4.
162
+ IPV4 = 1
163
+
164
+ # The type for IP version 6.
165
+ IPV6 = 2
166
+ end
167
+
168
+ # The routing mode of the Gateway, to determine how the Gateway routes
169
+ # traffic. Today, this field only applies to Gateways of type
170
+ # SECURE_WEB_GATEWAY. Possible values are:
171
+ # * EXPLICIT_ROUTING_MODE
172
+ # * NEXT_HOP_ROUTING_MODE
173
+ module RoutingMode
174
+ # The routing mode is explicit; clients are configured to send
175
+ # traffic through the gateway. This is the default routing mode.
176
+ EXPLICIT_ROUTING_MODE = 0
177
+
178
+ # The routing mode is next-hop. Clients are unaware of the gateway,
179
+ # and a route (advanced route or other route type)
180
+ # can be configured to direct traffic from client to gateway.
181
+ # The gateway then acts as a next-hop to the destination.
182
+ NEXT_HOP_ROUTING_MODE = 1
183
+ end
99
184
  end
100
185
 
101
186
  # Request used with the ListGateways method.
@@ -125,6 +210,9 @@ module Google
125
210
  # If there might be more results than those appearing in this response, then
126
211
  # `next_page_token` is included. To get the next set of results, call this
127
212
  # method again using the value of `next_page_token` as `page_token`.
213
+ # @!attribute [rw] unreachable
214
+ # @return [::Array<::String>]
215
+ # Locations that could not be reached.
128
216
  class ListGatewaysResponse
129
217
  include ::Google::Protobuf::MessageExts
130
218
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -25,7 +25,7 @@ module Google
25
25
  # or Gateway resource is routed.
26
26
  # @!attribute [rw] name
27
27
  # @return [::String]
28
- # Required. Name of the GrpcRoute resource. It matches pattern
28
+ # Identifier. Name of the GrpcRoute resource. It matches pattern
29
29
  # `projects/*/locations/global/grpcRoutes/<grpc_route_name>`
30
30
  # @!attribute [r] self_link
31
31
  # @return [::String]
@@ -256,7 +256,30 @@ module Google
256
256
  end
257
257
  end
258
258
 
259
+ # The specification for cookie-based stateful session affinity where the
260
+ # date plane supplies a “session cookie” with the name "GSSA" which encodes
261
+ # a specific destination host and each request containing that cookie will
262
+ # be directed to that host as long as the destination host remains up and
263
+ # healthy.
264
+ #
265
+ # The gRPC proxyless mesh library or sidecar proxy will manage the session
266
+ # cookie but the client application code is responsible for copying the
267
+ # cookie from each RPC in the session to the next.
268
+ # @!attribute [rw] cookie_ttl
269
+ # @return [::Google::Protobuf::Duration]
270
+ # Required. The cookie TTL value for the Set-Cookie header generated by the
271
+ # data plane. The lifetime of the cookie may be set to a value from 0 to
272
+ # 86400 seconds (24 hours) inclusive.
273
+ #
274
+ # Set this to 0s to use a session cookie and disable cookie expiration.
275
+ class StatefulSessionAffinityPolicy
276
+ include ::Google::Protobuf::MessageExts
277
+ extend ::Google::Protobuf::MessageExts::ClassMethods
278
+ end
279
+
259
280
  # The specifications for retries.
281
+ # Specifies one or more conditions for which this retry rule applies. Valid
282
+ # values are:
260
283
  # @!attribute [rw] retry_conditions
261
284
  # @return [::Array<::String>]
262
285
  # - connect-failure: Router will retry on failures connecting to Backend
@@ -292,12 +315,12 @@ module Google
292
315
  # Backend Service(s) according to the weight field of these destinations.
293
316
  # @!attribute [rw] fault_injection_policy
294
317
  # @return [::Google::Cloud::NetworkServices::V1::GrpcRoute::FaultInjectionPolicy]
295
- # Optional. The specification for fault injection introduced into traffic to test the
296
- # resiliency of clients to destination service failure. As part of fault
297
- # injection, when clients send requests to a destination, delays can be
298
- # introduced on a percentage of requests before sending those requests to
299
- # the destination service. Similarly requests from clients can be aborted
300
- # by for a percentage of requests.
318
+ # Optional. The specification for fault injection introduced into traffic
319
+ # to test the resiliency of clients to destination service failure. As part
320
+ # of fault injection, when clients send requests to a destination, delays
321
+ # can be introduced on a percentage of requests before sending those
322
+ # requests to the destination service. Similarly requests from clients can
323
+ # be aborted by for a percentage of requests.
301
324
  #
302
325
  # timeout and retry_policy will be ignored by clients that are configured
303
326
  # with a fault_injection_policy
@@ -310,6 +333,16 @@ module Google
310
333
  # @!attribute [rw] retry_policy
311
334
  # @return [::Google::Cloud::NetworkServices::V1::GrpcRoute::RetryPolicy]
312
335
  # Optional. Specifies the retry policy associated with this route.
336
+ # @!attribute [rw] stateful_session_affinity
337
+ # @return [::Google::Cloud::NetworkServices::V1::GrpcRoute::StatefulSessionAffinityPolicy]
338
+ # Optional. Specifies cookie-based stateful session affinity.
339
+ # @!attribute [rw] idle_timeout
340
+ # @return [::Google::Protobuf::Duration]
341
+ # Optional. Specifies the idle timeout for the selected route. The idle
342
+ # timeout is defined as the period in which there are no bytes sent or
343
+ # received on either the upstream or downstream connection. If not set, the
344
+ # default idle timeout is 1 hour. If set to 0s, the timeout will be
345
+ # disabled.
313
346
  class RouteAction
314
347
  include ::Google::Protobuf::MessageExts
315
348
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -354,6 +387,11 @@ module Google
354
387
  # The value returned by the last `ListGrpcRoutesResponse`
355
388
  # Indicates that this is a continuation of a prior `ListGrpcRoutes` call,
356
389
  # and that the system should return the next page of data.
390
+ # @!attribute [rw] return_partial_success
391
+ # @return [::Boolean]
392
+ # Optional. If true, allow partial responses for multi-regional Aggregated
393
+ # List requests. Otherwise if one of the locations is down or unreachable,
394
+ # the Aggregated List request will fail.
357
395
  class ListGrpcRoutesRequest
358
396
  include ::Google::Protobuf::MessageExts
359
397
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -368,6 +406,12 @@ module Google
368
406
  # If there might be more results than those appearing in this response, then
369
407
  # `next_page_token` is included. To get the next set of results, call this
370
408
  # method again using the value of `next_page_token` as `page_token`.
409
+ # @!attribute [rw] unreachable
410
+ # @return [::Array<::String>]
411
+ # Unreachable resources. Populated when the request opts into
412
+ # {::Google::Cloud::NetworkServices::V1::ListGrpcRoutesRequest#return_partial_success return_partial_success}
413
+ # and reading across collections e.g. when attempting to list all resources
414
+ # across all supported locations.
371
415
  class ListGrpcRoutesResponse
372
416
  include ::Google::Protobuf::MessageExts
373
417
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -25,7 +25,7 @@ module Google
25
25
  # Mesh or Gateway resource.
26
26
  # @!attribute [rw] name
27
27
  # @return [::String]
28
- # Required. Name of the HttpRoute resource. It matches pattern
28
+ # Identifier. Name of the HttpRoute resource. It matches pattern
29
29
  # `projects/*/locations/global/httpRoutes/http_route_name>`.
30
30
  # @!attribute [r] self_link
31
31
  # @return [::String]
@@ -258,6 +258,19 @@ module Google
258
258
  #
259
259
  # If weights are unspecified for all services, then, traffic is distributed
260
260
  # in equal proportions to all of them.
261
+ # @!attribute [rw] request_header_modifier
262
+ # @return [::Google::Cloud::NetworkServices::V1::HttpRoute::HeaderModifier]
263
+ # Optional. The specification for modifying the headers of a matching
264
+ # request prior to delivery of the request to the destination. If
265
+ # HeaderModifiers are set on both the Destination and the RouteAction, they
266
+ # will be merged. Conflicts between the two will not be resolved on the
267
+ # configuration.
268
+ # @!attribute [rw] response_header_modifier
269
+ # @return [::Google::Cloud::NetworkServices::V1::HttpRoute::HeaderModifier]
270
+ # Optional. The specification for modifying the headers of a response prior
271
+ # to sending the response back to the client. If HeaderModifiers are set on
272
+ # both the Destination and the RouteAction, they will be merged. Conflicts
273
+ # between the two will not be resolved on the configuration.
261
274
  class Destination
262
275
  include ::Google::Protobuf::MessageExts
263
276
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -376,6 +389,27 @@ module Google
376
389
  end
377
390
  end
378
391
 
392
+ # The specification for cookie-based stateful session affinity where the
393
+ # date plane supplies a “session cookie” with the name "GSSA" which encodes
394
+ # a specific destination host and each request containing that cookie will
395
+ # be directed to that host as long as the destination host remains up and
396
+ # healthy.
397
+ #
398
+ # The gRPC proxyless mesh library or sidecar proxy will manage the session
399
+ # cookie but the client application code is responsible for copying the
400
+ # cookie from each RPC in the session to the next.
401
+ # @!attribute [rw] cookie_ttl
402
+ # @return [::Google::Protobuf::Duration]
403
+ # Required. The cookie TTL value for the Set-Cookie header generated by
404
+ # the data plane. The lifetime of the cookie may be set to a value from 0
405
+ # to 86400 seconds (24 hours) inclusive.
406
+ #
407
+ # Set this to 0s to use a session cookie and disable cookie expiration.
408
+ class StatefulSessionAffinityPolicy
409
+ include ::Google::Protobuf::MessageExts
410
+ extend ::Google::Protobuf::MessageExts::ClassMethods
411
+ end
412
+
379
413
  # The specification for modifying HTTP header in HTTP request and HTTP
380
414
  # response.
381
415
  # @!attribute [rw] set
@@ -468,10 +502,15 @@ module Google
468
502
  # destination service. The proxy does not wait for responses from the
469
503
  # shadow service. Prior to sending traffic to the shadow service, the
470
504
  # host/authority header is suffixed with -shadow.
505
+ # Mirroring is currently not supported for Cloud Run destinations.
471
506
  # @!attribute [rw] destination
472
507
  # @return [::Google::Cloud::NetworkServices::V1::HttpRoute::Destination]
473
508
  # The destination the requests will be mirrored to. The weight of the
474
509
  # destination will be ignored.
510
+ # @!attribute [rw] mirror_percent
511
+ # @return [::Float]
512
+ # Optional. The percentage of requests to get mirrored to the desired
513
+ # destination.
475
514
  class RequestMirrorPolicy
476
515
  include ::Google::Protobuf::MessageExts
477
516
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -517,6 +556,27 @@ module Google
517
556
  extend ::Google::Protobuf::MessageExts::ClassMethods
518
557
  end
519
558
 
559
+ # Static HTTP response object to be returned.
560
+ # @!attribute [rw] string_body
561
+ # @return [::String]
562
+ # Optional. Response body as a string. Maximum body length is 1024
563
+ # characters.
564
+ #
565
+ # Note: The following fields are mutually exclusive: `string_body`, `bytes_body`. If a field in that set is populated, all other fields in the set will automatically be cleared.
566
+ # @!attribute [rw] bytes_body
567
+ # @return [::String]
568
+ # Optional. Response body as bytes. Maximum body size is 4096B.
569
+ #
570
+ # Note: The following fields are mutually exclusive: `bytes_body`, `string_body`. If a field in that set is populated, all other fields in the set will automatically be cleared.
571
+ # @!attribute [rw] status
572
+ # @return [::Integer]
573
+ # Required. Status to return as part of HTTP Response. Must be a positive
574
+ # integer.
575
+ class HttpDirectResponse
576
+ include ::Google::Protobuf::MessageExts
577
+ extend ::Google::Protobuf::MessageExts::ClassMethods
578
+ end
579
+
520
580
  # The specifications for routing traffic and applying associated policies.
521
581
  # @!attribute [rw] destinations
522
582
  # @return [::Array<::Google::Cloud::NetworkServices::V1::HttpRoute::Destination>]
@@ -569,6 +629,20 @@ module Google
569
629
  # @!attribute [rw] cors_policy
570
630
  # @return [::Google::Cloud::NetworkServices::V1::HttpRoute::CorsPolicy]
571
631
  # The specification for allowing client side cross-origin requests.
632
+ # @!attribute [rw] stateful_session_affinity
633
+ # @return [::Google::Cloud::NetworkServices::V1::HttpRoute::StatefulSessionAffinityPolicy]
634
+ # Optional. Specifies cookie-based stateful session affinity.
635
+ # @!attribute [rw] direct_response
636
+ # @return [::Google::Cloud::NetworkServices::V1::HttpRoute::HttpDirectResponse]
637
+ # Optional. Static HTTP Response object to be returned regardless of the
638
+ # request.
639
+ # @!attribute [rw] idle_timeout
640
+ # @return [::Google::Protobuf::Duration]
641
+ # Optional. Specifies the idle timeout for the selected route. The idle
642
+ # timeout is defined as the period in which there are no bytes sent or
643
+ # received on either the upstream or downstream connection. If not set, the
644
+ # default idle timeout is 1 hour. If set to 0s, the timeout will be
645
+ # disabled.
572
646
  class RouteAction
573
647
  include ::Google::Protobuf::MessageExts
574
648
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -618,6 +692,11 @@ module Google
618
692
  # The value returned by the last `ListHttpRoutesResponse`
619
693
  # Indicates that this is a continuation of a prior `ListHttpRoutes` call,
620
694
  # and that the system should return the next page of data.
695
+ # @!attribute [rw] return_partial_success
696
+ # @return [::Boolean]
697
+ # Optional. If true, allow partial responses for multi-regional Aggregated
698
+ # List requests. Otherwise if one of the locations is down or unreachable,
699
+ # the Aggregated List request will fail.
621
700
  class ListHttpRoutesRequest
622
701
  include ::Google::Protobuf::MessageExts
623
702
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -632,6 +711,12 @@ module Google
632
711
  # If there might be more results than those appearing in this response, then
633
712
  # `next_page_token` is included. To get the next set of results, call this
634
713
  # method again using the value of `next_page_token` as `page_token`.
714
+ # @!attribute [rw] unreachable
715
+ # @return [::Array<::String>]
716
+ # Unreachable resources. Populated when the request opts into
717
+ # {::Google::Cloud::NetworkServices::V1::ListHttpRoutesRequest#return_partial_success return_partial_success}
718
+ # and reading across collections e.g. when attempting to list all resources
719
+ # across all supported locations.
635
720
  class ListHttpRoutesResponse
636
721
  include ::Google::Protobuf::MessageExts
637
722
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -26,7 +26,7 @@ module Google
26
26
  # requests are routed within this logical mesh boundary.
27
27
  # @!attribute [rw] name
28
28
  # @return [::String]
29
- # Required. Name of the Mesh resource. It matches pattern
29
+ # Identifier. Name of the Mesh resource. It matches pattern
30
30
  # `projects/*/locations/global/meshes/<mesh_name>`.
31
31
  # @!attribute [r] self_link
32
32
  # @return [::String]
@@ -52,6 +52,11 @@ module Google
52
52
  # regardless of its actual ip:port destination. If unset, a port '15001' is
53
53
  # used as the interception port. This is applicable only for sidecar proxy
54
54
  # deployments.
55
+ # @!attribute [rw] envoy_headers
56
+ # @return [::Google::Cloud::NetworkServices::V1::EnvoyHeaders]
57
+ # Optional. Determines if envoy will insert internal debug headers into
58
+ # upstream requests. Other Envoy headers may still be injected. By default,
59
+ # envoy will not insert any debug headers.
55
60
  class Mesh
56
61
  include ::Google::Protobuf::MessageExts
57
62
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -79,6 +84,11 @@ module Google
79
84
  # The value returned by the last `ListMeshesResponse`
80
85
  # Indicates that this is a continuation of a prior `ListMeshes` call,
81
86
  # and that the system should return the next page of data.
87
+ # @!attribute [rw] return_partial_success
88
+ # @return [::Boolean]
89
+ # Optional. If true, allow partial responses for multi-regional Aggregated
90
+ # List requests. Otherwise if one of the locations is down or unreachable,
91
+ # the Aggregated List request will fail.
82
92
  class ListMeshesRequest
83
93
  include ::Google::Protobuf::MessageExts
84
94
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -93,6 +103,11 @@ module Google
93
103
  # If there might be more results than those appearing in this response, then
94
104
  # `next_page_token` is included. To get the next set of results, call this
95
105
  # method again using the value of `next_page_token` as `page_token`.
106
+ # @!attribute [rw] unreachable
107
+ # @return [::Array<::String>]
108
+ # Unreachable resources. Populated when the request opts into
109
+ # `return_partial_success` and reading across collections e.g. when
110
+ # attempting to list all resources across all supported locations.
96
111
  class ListMeshesResponse
97
112
  include ::Google::Protobuf::MessageExts
98
113
  extend ::Google::Protobuf::MessageExts::ClassMethods