google-apis-networkservices_v1beta1 0.8.0 → 0.9.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/google/apis/networkservices_v1beta1/classes.rb +1923 -13
- data/lib/google/apis/networkservices_v1beta1/gem_version.rb +3 -3
- data/lib/google/apis/networkservices_v1beta1/representations.rb +854 -90
- data/lib/google/apis/networkservices_v1beta1/service.rb +1493 -181
- metadata +3 -3
@@ -365,6 +365,1316 @@ module Google
|
|
365
365
|
end
|
366
366
|
end
|
367
367
|
|
368
|
+
# Gateway represents the configuration for a proxy, typically a load balancer.
|
369
|
+
# It captures the ip:port over which the services are exposed by the proxy,
|
370
|
+
# along with any policy configurations. Routes have reference to to Gateways to
|
371
|
+
# dictate how requests should be routed by this Gateway.
|
372
|
+
class Gateway
|
373
|
+
include Google::Apis::Core::Hashable
|
374
|
+
|
375
|
+
# Output only. The timestamp when the resource was created.
|
376
|
+
# Corresponds to the JSON property `createTime`
|
377
|
+
# @return [String]
|
378
|
+
attr_accessor :create_time
|
379
|
+
|
380
|
+
# Optional. A free-text description of the resource. Max length 1024 characters.
|
381
|
+
# Corresponds to the JSON property `description`
|
382
|
+
# @return [String]
|
383
|
+
attr_accessor :description
|
384
|
+
|
385
|
+
# Optional. Set of label tags associated with the Gateway resource.
|
386
|
+
# Corresponds to the JSON property `labels`
|
387
|
+
# @return [Hash<String,String>]
|
388
|
+
attr_accessor :labels
|
389
|
+
|
390
|
+
# Required. Name of the Gateway resource. It matches pattern `projects/*/
|
391
|
+
# locations/global/gateways/`.
|
392
|
+
# Corresponds to the JSON property `name`
|
393
|
+
# @return [String]
|
394
|
+
attr_accessor :name
|
395
|
+
|
396
|
+
# Required. One or more ports that the Gateway must receive traffic on. The
|
397
|
+
# proxy binds to the ports specified. Gateway listen on 0.0.0.0 on the ports
|
398
|
+
# specified below.
|
399
|
+
# Corresponds to the JSON property `ports`
|
400
|
+
# @return [Array<Fixnum>]
|
401
|
+
attr_accessor :ports
|
402
|
+
|
403
|
+
# Required. Immutable. Scope determines how configuration across multiple
|
404
|
+
# Gateway instances are merged. The configuration for multiple Gateway instances
|
405
|
+
# with the same scope will be merged as presented as a single coniguration to
|
406
|
+
# the proxy/load balancer. Max length 64 characters. Scope should start with a
|
407
|
+
# letter and can only have letters, numbers, hyphens.
|
408
|
+
# Corresponds to the JSON property `scope`
|
409
|
+
# @return [String]
|
410
|
+
attr_accessor :scope
|
411
|
+
|
412
|
+
# Output only. Server-defined URL of this resource
|
413
|
+
# Corresponds to the JSON property `selfLink`
|
414
|
+
# @return [String]
|
415
|
+
attr_accessor :self_link
|
416
|
+
|
417
|
+
# Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how TLS
|
418
|
+
# traffic is terminated. If empty, TLS termination is disabled.
|
419
|
+
# Corresponds to the JSON property `serverTlsPolicy`
|
420
|
+
# @return [String]
|
421
|
+
attr_accessor :server_tls_policy
|
422
|
+
|
423
|
+
# Immutable. The type of the customer managed gateway.
|
424
|
+
# Corresponds to the JSON property `type`
|
425
|
+
# @return [String]
|
426
|
+
attr_accessor :type
|
427
|
+
|
428
|
+
# Output only. The timestamp when the resource was updated.
|
429
|
+
# Corresponds to the JSON property `updateTime`
|
430
|
+
# @return [String]
|
431
|
+
attr_accessor :update_time
|
432
|
+
|
433
|
+
def initialize(**args)
|
434
|
+
update!(**args)
|
435
|
+
end
|
436
|
+
|
437
|
+
# Update properties of this object
|
438
|
+
def update!(**args)
|
439
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
440
|
+
@description = args[:description] if args.key?(:description)
|
441
|
+
@labels = args[:labels] if args.key?(:labels)
|
442
|
+
@name = args[:name] if args.key?(:name)
|
443
|
+
@ports = args[:ports] if args.key?(:ports)
|
444
|
+
@scope = args[:scope] if args.key?(:scope)
|
445
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
446
|
+
@server_tls_policy = args[:server_tls_policy] if args.key?(:server_tls_policy)
|
447
|
+
@type = args[:type] if args.key?(:type)
|
448
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
449
|
+
end
|
450
|
+
end
|
451
|
+
|
452
|
+
# GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or
|
453
|
+
# Gateway resource is routed.
|
454
|
+
class GrpcRoute
|
455
|
+
include Google::Apis::Core::Hashable
|
456
|
+
|
457
|
+
# Output only. The timestamp when the resource was created.
|
458
|
+
# Corresponds to the JSON property `createTime`
|
459
|
+
# @return [String]
|
460
|
+
attr_accessor :create_time
|
461
|
+
|
462
|
+
# Optional. A free-text description of the resource. Max length 1024 characters.
|
463
|
+
# Corresponds to the JSON property `description`
|
464
|
+
# @return [String]
|
465
|
+
attr_accessor :description
|
466
|
+
|
467
|
+
# Optional. Gateways defines a list of gateways this GrpcRoute is attached to,
|
468
|
+
# as one of the routing rules to route the requests served by the gateway. Each
|
469
|
+
# gateway reference should match the pattern: `projects/*/locations/global/
|
470
|
+
# gateways/`
|
471
|
+
# Corresponds to the JSON property `gateways`
|
472
|
+
# @return [Array<String>]
|
473
|
+
attr_accessor :gateways
|
474
|
+
|
475
|
+
# Required. Service hostnames with an optional port for which this route
|
476
|
+
# describes traffic. Format: [:] Hostname is the fully qualified domain name of
|
477
|
+
# a network host. This matches the RFC 1123 definition of a hostname with 2
|
478
|
+
# notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a
|
479
|
+
# wildcard label (*.). The wildcard label must appear by itself as the first
|
480
|
+
# label. Hostname can be "precise" which is a domain name without the
|
481
|
+
# terminating dot of a network host (e.g. "foo.example.com") or "wildcard",
|
482
|
+
# which is a domain name prefixed with a single wildcard label (e.g. *.example.
|
483
|
+
# com). Note that as per RFC1035 and RFC1123, a label must consist of lower case
|
484
|
+
# alphanumeric characters or '-', and must start and end with an alphanumeric
|
485
|
+
# character. No other punctuation is allowed. The routes associated with a Mesh
|
486
|
+
# or Gateway must have unique hostnames. If you attempt to attach multiple
|
487
|
+
# routes with conflicting hostnames, the configuration will be rejected. For
|
488
|
+
# example, while it is acceptable for routes for the hostnames "*.foo.bar.com"
|
489
|
+
# and "*.bar.com" to be associated with the same route, it is not possible to
|
490
|
+
# associate two routes both with "*.bar.com" or both with "bar.com". If a port
|
491
|
+
# is specified, then gRPC clients must use the channel URI with the port to
|
492
|
+
# match this rule (i.e. "xds:///service:123"), otherwise they must supply the
|
493
|
+
# URI without a port (i.e. "xds:///service").
|
494
|
+
# Corresponds to the JSON property `hostnames`
|
495
|
+
# @return [Array<String>]
|
496
|
+
attr_accessor :hostnames
|
497
|
+
|
498
|
+
# Optional. Set of label tags associated with the GrpcRoute resource.
|
499
|
+
# Corresponds to the JSON property `labels`
|
500
|
+
# @return [Hash<String,String>]
|
501
|
+
attr_accessor :labels
|
502
|
+
|
503
|
+
# Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as
|
504
|
+
# one of the routing rules to route the requests served by the mesh. Each mesh
|
505
|
+
# reference should match the pattern: `projects/*/locations/global/meshes/`
|
506
|
+
# Corresponds to the JSON property `meshes`
|
507
|
+
# @return [Array<String>]
|
508
|
+
attr_accessor :meshes
|
509
|
+
|
510
|
+
# Required. Name of the GrpcRoute resource. It matches pattern `projects/*/
|
511
|
+
# locations/global/grpcRoutes/`
|
512
|
+
# Corresponds to the JSON property `name`
|
513
|
+
# @return [String]
|
514
|
+
attr_accessor :name
|
515
|
+
|
516
|
+
# Required. A list of detailed rules defining how to route traffic. Within a
|
517
|
+
# single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching
|
518
|
+
# GrpcRoute.RouteRule will be executed. At least one rule must be supplied.
|
519
|
+
# Corresponds to the JSON property `rules`
|
520
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::GrpcRouteRouteRule>]
|
521
|
+
attr_accessor :rules
|
522
|
+
|
523
|
+
# Output only. Server-defined URL of this resource
|
524
|
+
# Corresponds to the JSON property `selfLink`
|
525
|
+
# @return [String]
|
526
|
+
attr_accessor :self_link
|
527
|
+
|
528
|
+
# Output only. The timestamp when the resource was updated.
|
529
|
+
# Corresponds to the JSON property `updateTime`
|
530
|
+
# @return [String]
|
531
|
+
attr_accessor :update_time
|
532
|
+
|
533
|
+
def initialize(**args)
|
534
|
+
update!(**args)
|
535
|
+
end
|
536
|
+
|
537
|
+
# Update properties of this object
|
538
|
+
def update!(**args)
|
539
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
540
|
+
@description = args[:description] if args.key?(:description)
|
541
|
+
@gateways = args[:gateways] if args.key?(:gateways)
|
542
|
+
@hostnames = args[:hostnames] if args.key?(:hostnames)
|
543
|
+
@labels = args[:labels] if args.key?(:labels)
|
544
|
+
@meshes = args[:meshes] if args.key?(:meshes)
|
545
|
+
@name = args[:name] if args.key?(:name)
|
546
|
+
@rules = args[:rules] if args.key?(:rules)
|
547
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
548
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
549
|
+
end
|
550
|
+
end
|
551
|
+
|
552
|
+
# The destination to which traffic will be routed.
|
553
|
+
class GrpcRouteDestination
|
554
|
+
include Google::Apis::Core::Hashable
|
555
|
+
|
556
|
+
# Required. The URL of a destination service to which to route traffic. Must
|
557
|
+
# refer to either a BackendService or ServiceDirectoryService.
|
558
|
+
# Corresponds to the JSON property `serviceName`
|
559
|
+
# @return [String]
|
560
|
+
attr_accessor :service_name
|
561
|
+
|
562
|
+
# Optional. Specifies the proportion of requests forwarded to the backend
|
563
|
+
# referenced by the serviceName field. This is computed as: weight/Sum(weights
|
564
|
+
# in this destination list). For non-zero values, there may be some epsilon from
|
565
|
+
# the exact proportion defined here depending on the precision an implementation
|
566
|
+
# supports. If only one serviceName is specified and it has a weight greater
|
567
|
+
# than 0, 100% of the traffic is forwarded to that backend. If weights are
|
568
|
+
# specified for any one service name, they need to be specified for all of them.
|
569
|
+
# If weights are unspecified for all services, then, traffic is distributed in
|
570
|
+
# equal proportions to all of them.
|
571
|
+
# Corresponds to the JSON property `weight`
|
572
|
+
# @return [Fixnum]
|
573
|
+
attr_accessor :weight
|
574
|
+
|
575
|
+
def initialize(**args)
|
576
|
+
update!(**args)
|
577
|
+
end
|
578
|
+
|
579
|
+
# Update properties of this object
|
580
|
+
def update!(**args)
|
581
|
+
@service_name = args[:service_name] if args.key?(:service_name)
|
582
|
+
@weight = args[:weight] if args.key?(:weight)
|
583
|
+
end
|
584
|
+
end
|
585
|
+
|
586
|
+
# The specification for fault injection introduced into traffic to test the
|
587
|
+
# resiliency of clients to destination service failure. As part of fault
|
588
|
+
# injection, when clients send requests to a destination, delays can be
|
589
|
+
# introduced on a percentage of requests before sending those requests to the
|
590
|
+
# destination service. Similarly requests from clients can be aborted by for a
|
591
|
+
# percentage of requests.
|
592
|
+
class GrpcRouteFaultInjectionPolicy
|
593
|
+
include Google::Apis::Core::Hashable
|
594
|
+
|
595
|
+
# Specification of how client requests are aborted as part of fault injection
|
596
|
+
# before being sent to a destination.
|
597
|
+
# Corresponds to the JSON property `abort`
|
598
|
+
# @return [Google::Apis::NetworkservicesV1beta1::GrpcRouteFaultInjectionPolicyAbort]
|
599
|
+
attr_accessor :abort
|
600
|
+
|
601
|
+
# Specification of how client requests are delayed as part of fault injection
|
602
|
+
# before being sent to a destination.
|
603
|
+
# Corresponds to the JSON property `delay`
|
604
|
+
# @return [Google::Apis::NetworkservicesV1beta1::GrpcRouteFaultInjectionPolicyDelay]
|
605
|
+
attr_accessor :delay
|
606
|
+
|
607
|
+
def initialize(**args)
|
608
|
+
update!(**args)
|
609
|
+
end
|
610
|
+
|
611
|
+
# Update properties of this object
|
612
|
+
def update!(**args)
|
613
|
+
@abort = args[:abort] if args.key?(:abort)
|
614
|
+
@delay = args[:delay] if args.key?(:delay)
|
615
|
+
end
|
616
|
+
end
|
617
|
+
|
618
|
+
# Specification of how client requests are aborted as part of fault injection
|
619
|
+
# before being sent to a destination.
|
620
|
+
class GrpcRouteFaultInjectionPolicyAbort
|
621
|
+
include Google::Apis::Core::Hashable
|
622
|
+
|
623
|
+
# The HTTP status code used to abort the request. The value must be between 200
|
624
|
+
# and 599 inclusive.
|
625
|
+
# Corresponds to the JSON property `httpStatus`
|
626
|
+
# @return [Fixnum]
|
627
|
+
attr_accessor :http_status
|
628
|
+
|
629
|
+
# The percentage of traffic which will be aborted. The value must be between [0,
|
630
|
+
# 100]
|
631
|
+
# Corresponds to the JSON property `percentage`
|
632
|
+
# @return [Fixnum]
|
633
|
+
attr_accessor :percentage
|
634
|
+
|
635
|
+
def initialize(**args)
|
636
|
+
update!(**args)
|
637
|
+
end
|
638
|
+
|
639
|
+
# Update properties of this object
|
640
|
+
def update!(**args)
|
641
|
+
@http_status = args[:http_status] if args.key?(:http_status)
|
642
|
+
@percentage = args[:percentage] if args.key?(:percentage)
|
643
|
+
end
|
644
|
+
end
|
645
|
+
|
646
|
+
# Specification of how client requests are delayed as part of fault injection
|
647
|
+
# before being sent to a destination.
|
648
|
+
class GrpcRouteFaultInjectionPolicyDelay
|
649
|
+
include Google::Apis::Core::Hashable
|
650
|
+
|
651
|
+
# Specify a fixed delay before forwarding the request.
|
652
|
+
# Corresponds to the JSON property `fixedDelay`
|
653
|
+
# @return [String]
|
654
|
+
attr_accessor :fixed_delay
|
655
|
+
|
656
|
+
# The percentage of traffic on which delay will be injected. The value must be
|
657
|
+
# between [0, 100]
|
658
|
+
# Corresponds to the JSON property `percentage`
|
659
|
+
# @return [Fixnum]
|
660
|
+
attr_accessor :percentage
|
661
|
+
|
662
|
+
def initialize(**args)
|
663
|
+
update!(**args)
|
664
|
+
end
|
665
|
+
|
666
|
+
# Update properties of this object
|
667
|
+
def update!(**args)
|
668
|
+
@fixed_delay = args[:fixed_delay] if args.key?(:fixed_delay)
|
669
|
+
@percentage = args[:percentage] if args.key?(:percentage)
|
670
|
+
end
|
671
|
+
end
|
672
|
+
|
673
|
+
# A match against a collection of headers.
|
674
|
+
class GrpcRouteHeaderMatch
|
675
|
+
include Google::Apis::Core::Hashable
|
676
|
+
|
677
|
+
# Required. The key of the header.
|
678
|
+
# Corresponds to the JSON property `key`
|
679
|
+
# @return [String]
|
680
|
+
attr_accessor :key
|
681
|
+
|
682
|
+
# Optional. Specifies how to match against the value of the header. If not
|
683
|
+
# specified, a default value of EXACT is used.
|
684
|
+
# Corresponds to the JSON property `type`
|
685
|
+
# @return [String]
|
686
|
+
attr_accessor :type
|
687
|
+
|
688
|
+
# Required. The value of the header.
|
689
|
+
# Corresponds to the JSON property `value`
|
690
|
+
# @return [String]
|
691
|
+
attr_accessor :value
|
692
|
+
|
693
|
+
def initialize(**args)
|
694
|
+
update!(**args)
|
695
|
+
end
|
696
|
+
|
697
|
+
# Update properties of this object
|
698
|
+
def update!(**args)
|
699
|
+
@key = args[:key] if args.key?(:key)
|
700
|
+
@type = args[:type] if args.key?(:type)
|
701
|
+
@value = args[:value] if args.key?(:value)
|
702
|
+
end
|
703
|
+
end
|
704
|
+
|
705
|
+
# Specifies a match against a method.
|
706
|
+
class GrpcRouteMethodMatch
|
707
|
+
include Google::Apis::Core::Hashable
|
708
|
+
|
709
|
+
# Optional. Specifies that matches are case sensitive. The default value is true.
|
710
|
+
# case_sensitive must not be used with a type of REGULAR_EXPRESSION.
|
711
|
+
# Corresponds to the JSON property `caseSensitive`
|
712
|
+
# @return [Boolean]
|
713
|
+
attr_accessor :case_sensitive
|
714
|
+
alias_method :case_sensitive?, :case_sensitive
|
715
|
+
|
716
|
+
# Required. Name of the method to match against. If unspecified, will match all
|
717
|
+
# methods.
|
718
|
+
# Corresponds to the JSON property `grpcMethod`
|
719
|
+
# @return [String]
|
720
|
+
attr_accessor :grpc_method
|
721
|
+
|
722
|
+
# Required. Name of the service to match against. If unspecified, will match all
|
723
|
+
# services.
|
724
|
+
# Corresponds to the JSON property `grpcService`
|
725
|
+
# @return [String]
|
726
|
+
attr_accessor :grpc_service
|
727
|
+
|
728
|
+
# Optional. Specifies how to match against the name. If not specified, a default
|
729
|
+
# value of "EXACT" is used.
|
730
|
+
# Corresponds to the JSON property `type`
|
731
|
+
# @return [String]
|
732
|
+
attr_accessor :type
|
733
|
+
|
734
|
+
def initialize(**args)
|
735
|
+
update!(**args)
|
736
|
+
end
|
737
|
+
|
738
|
+
# Update properties of this object
|
739
|
+
def update!(**args)
|
740
|
+
@case_sensitive = args[:case_sensitive] if args.key?(:case_sensitive)
|
741
|
+
@grpc_method = args[:grpc_method] if args.key?(:grpc_method)
|
742
|
+
@grpc_service = args[:grpc_service] if args.key?(:grpc_service)
|
743
|
+
@type = args[:type] if args.key?(:type)
|
744
|
+
end
|
745
|
+
end
|
746
|
+
|
747
|
+
# The specifications for retries.
|
748
|
+
class GrpcRouteRetryPolicy
|
749
|
+
include Google::Apis::Core::Hashable
|
750
|
+
|
751
|
+
# Specifies the allowed number of retries. This number must be > 0. If not
|
752
|
+
# specpfied, default to 1.
|
753
|
+
# Corresponds to the JSON property `numRetries`
|
754
|
+
# @return [Fixnum]
|
755
|
+
attr_accessor :num_retries
|
756
|
+
|
757
|
+
# - connect-failure: Router will retry on failures connecting to Backend
|
758
|
+
# Services, for example due to connection timeouts. - refused-stream: Router
|
759
|
+
# will retry if the backend service resets the stream with a REFUSED_STREAM
|
760
|
+
# error code. This reset type indicates that it is safe to retry. - cancelled:
|
761
|
+
# Router will retry if the gRPC status code in the response header is set to
|
762
|
+
# cancelled - deadline-exceeded: Router will retry if the gRPC status code in
|
763
|
+
# the response header is set to deadline-exceeded - resource-exhausted: Router
|
764
|
+
# will retry if the gRPC status code in the response header is set to resource-
|
765
|
+
# exhausted - unavailable: Router will retry if the gRPC status code in the
|
766
|
+
# response header is set to unavailable
|
767
|
+
# Corresponds to the JSON property `retryConditions`
|
768
|
+
# @return [Array<String>]
|
769
|
+
attr_accessor :retry_conditions
|
770
|
+
|
771
|
+
def initialize(**args)
|
772
|
+
update!(**args)
|
773
|
+
end
|
774
|
+
|
775
|
+
# Update properties of this object
|
776
|
+
def update!(**args)
|
777
|
+
@num_retries = args[:num_retries] if args.key?(:num_retries)
|
778
|
+
@retry_conditions = args[:retry_conditions] if args.key?(:retry_conditions)
|
779
|
+
end
|
780
|
+
end
|
781
|
+
|
782
|
+
# Specifies how to route matched traffic.
|
783
|
+
class GrpcRouteRouteAction
|
784
|
+
include Google::Apis::Core::Hashable
|
785
|
+
|
786
|
+
# Optional. The destination services to which traffic should be forwarded. If
|
787
|
+
# multiple destinations are specified, traffic will be split between Backend
|
788
|
+
# Service(s) according to the weight field of these destinations.
|
789
|
+
# Corresponds to the JSON property `destinations`
|
790
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::GrpcRouteDestination>]
|
791
|
+
attr_accessor :destinations
|
792
|
+
|
793
|
+
# The specification for fault injection introduced into traffic to test the
|
794
|
+
# resiliency of clients to destination service failure. As part of fault
|
795
|
+
# injection, when clients send requests to a destination, delays can be
|
796
|
+
# introduced on a percentage of requests before sending those requests to the
|
797
|
+
# destination service. Similarly requests from clients can be aborted by for a
|
798
|
+
# percentage of requests.
|
799
|
+
# Corresponds to the JSON property `faultInjectionPolicy`
|
800
|
+
# @return [Google::Apis::NetworkservicesV1beta1::GrpcRouteFaultInjectionPolicy]
|
801
|
+
attr_accessor :fault_injection_policy
|
802
|
+
|
803
|
+
# The specifications for retries.
|
804
|
+
# Corresponds to the JSON property `retryPolicy`
|
805
|
+
# @return [Google::Apis::NetworkservicesV1beta1::GrpcRouteRetryPolicy]
|
806
|
+
attr_accessor :retry_policy
|
807
|
+
|
808
|
+
# Optional. Specifies the timeout for selected route. Timeout is computed from
|
809
|
+
# the time the request has been fully processed (i.e. end of stream) up until
|
810
|
+
# the response has been completely processed. Timeout includes all retries.
|
811
|
+
# Corresponds to the JSON property `timeout`
|
812
|
+
# @return [String]
|
813
|
+
attr_accessor :timeout
|
814
|
+
|
815
|
+
def initialize(**args)
|
816
|
+
update!(**args)
|
817
|
+
end
|
818
|
+
|
819
|
+
# Update properties of this object
|
820
|
+
def update!(**args)
|
821
|
+
@destinations = args[:destinations] if args.key?(:destinations)
|
822
|
+
@fault_injection_policy = args[:fault_injection_policy] if args.key?(:fault_injection_policy)
|
823
|
+
@retry_policy = args[:retry_policy] if args.key?(:retry_policy)
|
824
|
+
@timeout = args[:timeout] if args.key?(:timeout)
|
825
|
+
end
|
826
|
+
end
|
827
|
+
|
828
|
+
# Criteria for matching traffic. A RouteMatch will be considered to match when
|
829
|
+
# all supplied fields match.
|
830
|
+
class GrpcRouteRouteMatch
|
831
|
+
include Google::Apis::Core::Hashable
|
832
|
+
|
833
|
+
# Optional. Specifies a collection of headers to match.
|
834
|
+
# Corresponds to the JSON property `headers`
|
835
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::GrpcRouteHeaderMatch>]
|
836
|
+
attr_accessor :headers
|
837
|
+
|
838
|
+
# Specifies a match against a method.
|
839
|
+
# Corresponds to the JSON property `method`
|
840
|
+
# @return [Google::Apis::NetworkservicesV1beta1::GrpcRouteMethodMatch]
|
841
|
+
attr_accessor :method_prop
|
842
|
+
|
843
|
+
def initialize(**args)
|
844
|
+
update!(**args)
|
845
|
+
end
|
846
|
+
|
847
|
+
# Update properties of this object
|
848
|
+
def update!(**args)
|
849
|
+
@headers = args[:headers] if args.key?(:headers)
|
850
|
+
@method_prop = args[:method_prop] if args.key?(:method_prop)
|
851
|
+
end
|
852
|
+
end
|
853
|
+
|
854
|
+
# Describes how to route traffic.
|
855
|
+
class GrpcRouteRouteRule
|
856
|
+
include Google::Apis::Core::Hashable
|
857
|
+
|
858
|
+
# Specifies how to route matched traffic.
|
859
|
+
# Corresponds to the JSON property `action`
|
860
|
+
# @return [Google::Apis::NetworkservicesV1beta1::GrpcRouteRouteAction]
|
861
|
+
attr_accessor :action
|
862
|
+
|
863
|
+
# Optional. Matches define conditions used for matching the rule against
|
864
|
+
# incoming gRPC requests. Each match is independent, i.e. this rule will be
|
865
|
+
# matched if ANY one of the matches is satisfied. If no matches field is
|
866
|
+
# specified, this rule will unconditionally match traffic.
|
867
|
+
# Corresponds to the JSON property `matches`
|
868
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::GrpcRouteRouteMatch>]
|
869
|
+
attr_accessor :matches
|
870
|
+
|
871
|
+
def initialize(**args)
|
872
|
+
update!(**args)
|
873
|
+
end
|
874
|
+
|
875
|
+
# Update properties of this object
|
876
|
+
def update!(**args)
|
877
|
+
@action = args[:action] if args.key?(:action)
|
878
|
+
@matches = args[:matches] if args.key?(:matches)
|
879
|
+
end
|
880
|
+
end
|
881
|
+
|
882
|
+
# HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh
|
883
|
+
# or Gateway resource.
|
884
|
+
class HttpRoute
|
885
|
+
include Google::Apis::Core::Hashable
|
886
|
+
|
887
|
+
# Output only. The timestamp when the resource was created.
|
888
|
+
# Corresponds to the JSON property `createTime`
|
889
|
+
# @return [String]
|
890
|
+
attr_accessor :create_time
|
891
|
+
|
892
|
+
# Optional. A free-text description of the resource. Max length 1024 characters.
|
893
|
+
# Corresponds to the JSON property `description`
|
894
|
+
# @return [String]
|
895
|
+
attr_accessor :description
|
896
|
+
|
897
|
+
# Optional. Gateways defines a list of gateways this HttpRoute is attached to,
|
898
|
+
# as one of the routing rules to route the requests served by the gateway. Each
|
899
|
+
# gateway reference should match the pattern: `projects/*/locations/global/
|
900
|
+
# gateways/`
|
901
|
+
# Corresponds to the JSON property `gateways`
|
902
|
+
# @return [Array<String>]
|
903
|
+
attr_accessor :gateways
|
904
|
+
|
905
|
+
# Required. Hostnames define a set of hosts that should match against the HTTP
|
906
|
+
# host header to select a HttpRoute to process the request. Hostname is the
|
907
|
+
# fully qualified domain name of a network host, as defined by RFC 1123 with the
|
908
|
+
# exception that: - IPs are not allowed. - A hostname may be prefixed with a
|
909
|
+
# wildcard label (*.). The wildcard label must appear by itself as the first
|
910
|
+
# label. Hostname can be "precise" which is a domain name without the
|
911
|
+
# terminating dot of a network host (e.g. "foo.example.com") or "wildcard",
|
912
|
+
# which is a domain name prefixed with a single wildcard label (e.g. *.example.
|
913
|
+
# com). Note that as per RFC1035 and RFC1123, a label must consist of lower case
|
914
|
+
# alphanumeric characters or '-', and must start and end with an alphanumeric
|
915
|
+
# character. No other punctuation is allowed. The routes associated with a Mesh
|
916
|
+
# or Gateways must have unique hostnames. If you attempt to attach multiple
|
917
|
+
# routes with conflicting hostnames, the configuration will be rejected. For
|
918
|
+
# example, while it is acceptable for routes for the hostnames "*.foo.bar.com"
|
919
|
+
# and "*.bar.com" to be associated with the same Mesh (or Gateways under the
|
920
|
+
# same scope), it is not possible to associate two routes both with "*.bar.com"
|
921
|
+
# or both with "bar.com".
|
922
|
+
# Corresponds to the JSON property `hostnames`
|
923
|
+
# @return [Array<String>]
|
924
|
+
attr_accessor :hostnames
|
925
|
+
|
926
|
+
# Optional. Set of label tags associated with the HttpRoute resource.
|
927
|
+
# Corresponds to the JSON property `labels`
|
928
|
+
# @return [Hash<String,String>]
|
929
|
+
attr_accessor :labels
|
930
|
+
|
931
|
+
# Optional. Meshes defines a list of meshes this HttpRoute is attached to, as
|
932
|
+
# one of the routing rules to route the requests served by the mesh. Each mesh
|
933
|
+
# reference should match the pattern: `projects/*/locations/global/meshes/` The
|
934
|
+
# attached Mesh should be of a type SIDECAR
|
935
|
+
# Corresponds to the JSON property `meshes`
|
936
|
+
# @return [Array<String>]
|
937
|
+
attr_accessor :meshes
|
938
|
+
|
939
|
+
# Required. Name of the HttpRoute resource. It matches pattern `projects/*/
|
940
|
+
# locations/global/httpRoutes/http_route_name>`.
|
941
|
+
# Corresponds to the JSON property `name`
|
942
|
+
# @return [String]
|
943
|
+
attr_accessor :name
|
944
|
+
|
945
|
+
# Required. Rules that define how traffic is routed and handled. Rules will be
|
946
|
+
# matched sequentially based on the RouteMatch specified for the rule.
|
947
|
+
# Corresponds to the JSON property `rules`
|
948
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::HttpRouteRouteRule>]
|
949
|
+
attr_accessor :rules
|
950
|
+
|
951
|
+
# Output only. Server-defined URL of this resource
|
952
|
+
# Corresponds to the JSON property `selfLink`
|
953
|
+
# @return [String]
|
954
|
+
attr_accessor :self_link
|
955
|
+
|
956
|
+
# Output only. The timestamp when the resource was updated.
|
957
|
+
# Corresponds to the JSON property `updateTime`
|
958
|
+
# @return [String]
|
959
|
+
attr_accessor :update_time
|
960
|
+
|
961
|
+
def initialize(**args)
|
962
|
+
update!(**args)
|
963
|
+
end
|
964
|
+
|
965
|
+
# Update properties of this object
|
966
|
+
def update!(**args)
|
967
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
968
|
+
@description = args[:description] if args.key?(:description)
|
969
|
+
@gateways = args[:gateways] if args.key?(:gateways)
|
970
|
+
@hostnames = args[:hostnames] if args.key?(:hostnames)
|
971
|
+
@labels = args[:labels] if args.key?(:labels)
|
972
|
+
@meshes = args[:meshes] if args.key?(:meshes)
|
973
|
+
@name = args[:name] if args.key?(:name)
|
974
|
+
@rules = args[:rules] if args.key?(:rules)
|
975
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
976
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
977
|
+
end
|
978
|
+
end
|
979
|
+
|
980
|
+
# The Specification for allowing client side cross-origin requests.
|
981
|
+
class HttpRouteCorsPolicy
|
982
|
+
include Google::Apis::Core::Hashable
|
983
|
+
|
984
|
+
# In response to a preflight request, setting this to true indicates that the
|
985
|
+
# actual request can include user credentials. This translates to the Access-
|
986
|
+
# Control-Allow-Credentials header. Default value is false.
|
987
|
+
# Corresponds to the JSON property `allowCredentials`
|
988
|
+
# @return [Boolean]
|
989
|
+
attr_accessor :allow_credentials
|
990
|
+
alias_method :allow_credentials?, :allow_credentials
|
991
|
+
|
992
|
+
# Specifies the content for Access-Control-Allow-Headers header.
|
993
|
+
# Corresponds to the JSON property `allowHeaders`
|
994
|
+
# @return [Array<String>]
|
995
|
+
attr_accessor :allow_headers
|
996
|
+
|
997
|
+
# Specifies the content for Access-Control-Allow-Methods header.
|
998
|
+
# Corresponds to the JSON property `allowMethods`
|
999
|
+
# @return [Array<String>]
|
1000
|
+
attr_accessor :allow_methods
|
1001
|
+
|
1002
|
+
# Specifies the regular expression patterns that match allowed origins. For
|
1003
|
+
# regular expression grammar, please see https://github.com/google/re2/wiki/
|
1004
|
+
# Syntax.
|
1005
|
+
# Corresponds to the JSON property `allowOriginRegexes`
|
1006
|
+
# @return [Array<String>]
|
1007
|
+
attr_accessor :allow_origin_regexes
|
1008
|
+
|
1009
|
+
# Specifies the list of origins that will be allowed to do CORS requests. An
|
1010
|
+
# origin is allowed if it matches either an item in allow_origins or an item in
|
1011
|
+
# allow_origin_regexes.
|
1012
|
+
# Corresponds to the JSON property `allowOrigins`
|
1013
|
+
# @return [Array<String>]
|
1014
|
+
attr_accessor :allow_origins
|
1015
|
+
|
1016
|
+
# If true, the CORS policy is disabled. The default value is false, which
|
1017
|
+
# indicates that the CORS policy is in effect.
|
1018
|
+
# Corresponds to the JSON property `disabled`
|
1019
|
+
# @return [Boolean]
|
1020
|
+
attr_accessor :disabled
|
1021
|
+
alias_method :disabled?, :disabled
|
1022
|
+
|
1023
|
+
# Specifies the content for Access-Control-Expose-Headers header.
|
1024
|
+
# Corresponds to the JSON property `exposeHeaders`
|
1025
|
+
# @return [Array<String>]
|
1026
|
+
attr_accessor :expose_headers
|
1027
|
+
|
1028
|
+
# Specifies how long result of a preflight request can be cached in seconds.
|
1029
|
+
# This translates to the Access-Control-Max-Age header.
|
1030
|
+
# Corresponds to the JSON property `maxAge`
|
1031
|
+
# @return [String]
|
1032
|
+
attr_accessor :max_age
|
1033
|
+
|
1034
|
+
def initialize(**args)
|
1035
|
+
update!(**args)
|
1036
|
+
end
|
1037
|
+
|
1038
|
+
# Update properties of this object
|
1039
|
+
def update!(**args)
|
1040
|
+
@allow_credentials = args[:allow_credentials] if args.key?(:allow_credentials)
|
1041
|
+
@allow_headers = args[:allow_headers] if args.key?(:allow_headers)
|
1042
|
+
@allow_methods = args[:allow_methods] if args.key?(:allow_methods)
|
1043
|
+
@allow_origin_regexes = args[:allow_origin_regexes] if args.key?(:allow_origin_regexes)
|
1044
|
+
@allow_origins = args[:allow_origins] if args.key?(:allow_origins)
|
1045
|
+
@disabled = args[:disabled] if args.key?(:disabled)
|
1046
|
+
@expose_headers = args[:expose_headers] if args.key?(:expose_headers)
|
1047
|
+
@max_age = args[:max_age] if args.key?(:max_age)
|
1048
|
+
end
|
1049
|
+
end
|
1050
|
+
|
1051
|
+
# Specifications of a destination to which the request should be routed to.
|
1052
|
+
class HttpRouteDestination
|
1053
|
+
include Google::Apis::Core::Hashable
|
1054
|
+
|
1055
|
+
# The URL of a BackendService to route traffic to.
|
1056
|
+
# Corresponds to the JSON property `serviceName`
|
1057
|
+
# @return [String]
|
1058
|
+
attr_accessor :service_name
|
1059
|
+
|
1060
|
+
# Specifies the proportion of requests forwarded to the backend referenced by
|
1061
|
+
# the serviceName field. This is computed as: weight/Sum(weights in this
|
1062
|
+
# destination list). For non-zero values, there may be some epsilon from the
|
1063
|
+
# exact proportion defined here depending on the precision an implementation
|
1064
|
+
# supports. If only one serviceName is specified and it has a weight greater
|
1065
|
+
# than 0, 100% of the traffic is forwarded to that backend. If weights are
|
1066
|
+
# specified for any one service name, they need to be specified for all of them.
|
1067
|
+
# If weights are unspecified for all services, then, traffic is distributed in
|
1068
|
+
# equal proportions to all of them.
|
1069
|
+
# Corresponds to the JSON property `weight`
|
1070
|
+
# @return [Fixnum]
|
1071
|
+
attr_accessor :weight
|
1072
|
+
|
1073
|
+
def initialize(**args)
|
1074
|
+
update!(**args)
|
1075
|
+
end
|
1076
|
+
|
1077
|
+
# Update properties of this object
|
1078
|
+
def update!(**args)
|
1079
|
+
@service_name = args[:service_name] if args.key?(:service_name)
|
1080
|
+
@weight = args[:weight] if args.key?(:weight)
|
1081
|
+
end
|
1082
|
+
end
|
1083
|
+
|
1084
|
+
# The specification for fault injection introduced into traffic to test the
|
1085
|
+
# resiliency of clients to destination service failure. As part of fault
|
1086
|
+
# injection, when clients send requests to a destination, delays can be
|
1087
|
+
# introduced by client proxy on a percentage of requests before sending those
|
1088
|
+
# requests to the destination service. Similarly requests can be aborted by
|
1089
|
+
# client proxy for a percentage of requests.
|
1090
|
+
class HttpRouteFaultInjectionPolicy
|
1091
|
+
include Google::Apis::Core::Hashable
|
1092
|
+
|
1093
|
+
# Specification of how client requests are aborted as part of fault injection
|
1094
|
+
# before being sent to a destination.
|
1095
|
+
# Corresponds to the JSON property `abort`
|
1096
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteFaultInjectionPolicyAbort]
|
1097
|
+
attr_accessor :abort
|
1098
|
+
|
1099
|
+
# Specification of how client requests are delayed as part of fault injection
|
1100
|
+
# before being sent to a destination.
|
1101
|
+
# Corresponds to the JSON property `delay`
|
1102
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteFaultInjectionPolicyDelay]
|
1103
|
+
attr_accessor :delay
|
1104
|
+
|
1105
|
+
def initialize(**args)
|
1106
|
+
update!(**args)
|
1107
|
+
end
|
1108
|
+
|
1109
|
+
# Update properties of this object
|
1110
|
+
def update!(**args)
|
1111
|
+
@abort = args[:abort] if args.key?(:abort)
|
1112
|
+
@delay = args[:delay] if args.key?(:delay)
|
1113
|
+
end
|
1114
|
+
end
|
1115
|
+
|
1116
|
+
# Specification of how client requests are aborted as part of fault injection
|
1117
|
+
# before being sent to a destination.
|
1118
|
+
class HttpRouteFaultInjectionPolicyAbort
|
1119
|
+
include Google::Apis::Core::Hashable
|
1120
|
+
|
1121
|
+
# The HTTP status code used to abort the request. The value must be between 200
|
1122
|
+
# and 599 inclusive.
|
1123
|
+
# Corresponds to the JSON property `httpStatus`
|
1124
|
+
# @return [Fixnum]
|
1125
|
+
attr_accessor :http_status
|
1126
|
+
|
1127
|
+
# The percentage of traffic which will be aborted. The value must be between [0,
|
1128
|
+
# 100]
|
1129
|
+
# Corresponds to the JSON property `percentage`
|
1130
|
+
# @return [Fixnum]
|
1131
|
+
attr_accessor :percentage
|
1132
|
+
|
1133
|
+
def initialize(**args)
|
1134
|
+
update!(**args)
|
1135
|
+
end
|
1136
|
+
|
1137
|
+
# Update properties of this object
|
1138
|
+
def update!(**args)
|
1139
|
+
@http_status = args[:http_status] if args.key?(:http_status)
|
1140
|
+
@percentage = args[:percentage] if args.key?(:percentage)
|
1141
|
+
end
|
1142
|
+
end
|
1143
|
+
|
1144
|
+
# Specification of how client requests are delayed as part of fault injection
|
1145
|
+
# before being sent to a destination.
|
1146
|
+
class HttpRouteFaultInjectionPolicyDelay
|
1147
|
+
include Google::Apis::Core::Hashable
|
1148
|
+
|
1149
|
+
# Specify a fixed delay before forwarding the request.
|
1150
|
+
# Corresponds to the JSON property `fixedDelay`
|
1151
|
+
# @return [String]
|
1152
|
+
attr_accessor :fixed_delay
|
1153
|
+
|
1154
|
+
# The percentage of traffic on which delay will be injected. The value must be
|
1155
|
+
# between [0, 100]
|
1156
|
+
# Corresponds to the JSON property `percentage`
|
1157
|
+
# @return [Fixnum]
|
1158
|
+
attr_accessor :percentage
|
1159
|
+
|
1160
|
+
def initialize(**args)
|
1161
|
+
update!(**args)
|
1162
|
+
end
|
1163
|
+
|
1164
|
+
# Update properties of this object
|
1165
|
+
def update!(**args)
|
1166
|
+
@fixed_delay = args[:fixed_delay] if args.key?(:fixed_delay)
|
1167
|
+
@percentage = args[:percentage] if args.key?(:percentage)
|
1168
|
+
end
|
1169
|
+
end
|
1170
|
+
|
1171
|
+
# Specifies how to select a route rule based on HTTP request headers.
|
1172
|
+
class HttpRouteHeaderMatch
|
1173
|
+
include Google::Apis::Core::Hashable
|
1174
|
+
|
1175
|
+
# The value of the header should match exactly the content of exact_match.
|
1176
|
+
# Corresponds to the JSON property `exactMatch`
|
1177
|
+
# @return [String]
|
1178
|
+
attr_accessor :exact_match
|
1179
|
+
|
1180
|
+
# The name of the HTTP header to match against.
|
1181
|
+
# Corresponds to the JSON property `header`
|
1182
|
+
# @return [String]
|
1183
|
+
attr_accessor :header
|
1184
|
+
|
1185
|
+
# If specified, the match result will be inverted before checking. Default value
|
1186
|
+
# is set to false.
|
1187
|
+
# Corresponds to the JSON property `invertMatch`
|
1188
|
+
# @return [Boolean]
|
1189
|
+
attr_accessor :invert_match
|
1190
|
+
alias_method :invert_match?, :invert_match
|
1191
|
+
|
1192
|
+
# The value of the header must start with the contents of prefix_match.
|
1193
|
+
# Corresponds to the JSON property `prefixMatch`
|
1194
|
+
# @return [String]
|
1195
|
+
attr_accessor :prefix_match
|
1196
|
+
|
1197
|
+
# A header with header_name must exist. The match takes place whether or not the
|
1198
|
+
# header has a value.
|
1199
|
+
# Corresponds to the JSON property `presentMatch`
|
1200
|
+
# @return [Boolean]
|
1201
|
+
attr_accessor :present_match
|
1202
|
+
alias_method :present_match?, :present_match
|
1203
|
+
|
1204
|
+
# Represents an integer value range.
|
1205
|
+
# Corresponds to the JSON property `rangeMatch`
|
1206
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteHeaderMatchIntegerRange]
|
1207
|
+
attr_accessor :range_match
|
1208
|
+
|
1209
|
+
# The value of the header must match the regular expression specified in
|
1210
|
+
# regex_match. For regular expression grammar, please see: https://github.com/
|
1211
|
+
# google/re2/wiki/Syntax
|
1212
|
+
# Corresponds to the JSON property `regexMatch`
|
1213
|
+
# @return [String]
|
1214
|
+
attr_accessor :regex_match
|
1215
|
+
|
1216
|
+
# The value of the header must end with the contents of suffix_match.
|
1217
|
+
# Corresponds to the JSON property `suffixMatch`
|
1218
|
+
# @return [String]
|
1219
|
+
attr_accessor :suffix_match
|
1220
|
+
|
1221
|
+
def initialize(**args)
|
1222
|
+
update!(**args)
|
1223
|
+
end
|
1224
|
+
|
1225
|
+
# Update properties of this object
|
1226
|
+
def update!(**args)
|
1227
|
+
@exact_match = args[:exact_match] if args.key?(:exact_match)
|
1228
|
+
@header = args[:header] if args.key?(:header)
|
1229
|
+
@invert_match = args[:invert_match] if args.key?(:invert_match)
|
1230
|
+
@prefix_match = args[:prefix_match] if args.key?(:prefix_match)
|
1231
|
+
@present_match = args[:present_match] if args.key?(:present_match)
|
1232
|
+
@range_match = args[:range_match] if args.key?(:range_match)
|
1233
|
+
@regex_match = args[:regex_match] if args.key?(:regex_match)
|
1234
|
+
@suffix_match = args[:suffix_match] if args.key?(:suffix_match)
|
1235
|
+
end
|
1236
|
+
end
|
1237
|
+
|
1238
|
+
# Represents an integer value range.
|
1239
|
+
class HttpRouteHeaderMatchIntegerRange
|
1240
|
+
include Google::Apis::Core::Hashable
|
1241
|
+
|
1242
|
+
# End of the range (exclusive)
|
1243
|
+
# Corresponds to the JSON property `end`
|
1244
|
+
# @return [Fixnum]
|
1245
|
+
attr_accessor :end
|
1246
|
+
|
1247
|
+
# Start of the range (inclusive)
|
1248
|
+
# Corresponds to the JSON property `start`
|
1249
|
+
# @return [Fixnum]
|
1250
|
+
attr_accessor :start
|
1251
|
+
|
1252
|
+
def initialize(**args)
|
1253
|
+
update!(**args)
|
1254
|
+
end
|
1255
|
+
|
1256
|
+
# Update properties of this object
|
1257
|
+
def update!(**args)
|
1258
|
+
@end = args[:end] if args.key?(:end)
|
1259
|
+
@start = args[:start] if args.key?(:start)
|
1260
|
+
end
|
1261
|
+
end
|
1262
|
+
|
1263
|
+
# The specification for modifying HTTP header in HTTP request and HTTP response.
|
1264
|
+
class HttpRouteHeaderModifier
|
1265
|
+
include Google::Apis::Core::Hashable
|
1266
|
+
|
1267
|
+
# Add the headers with given map where key is the name of the header, value is
|
1268
|
+
# the value of the header.
|
1269
|
+
# Corresponds to the JSON property `add`
|
1270
|
+
# @return [Hash<String,String>]
|
1271
|
+
attr_accessor :add
|
1272
|
+
|
1273
|
+
# Remove headers (matching by header names) specified in the list.
|
1274
|
+
# Corresponds to the JSON property `remove`
|
1275
|
+
# @return [Array<String>]
|
1276
|
+
attr_accessor :remove
|
1277
|
+
|
1278
|
+
# Completely overwrite/replace the headers with given map where key is the name
|
1279
|
+
# of the header, value is the value of the header.
|
1280
|
+
# Corresponds to the JSON property `set`
|
1281
|
+
# @return [Hash<String,String>]
|
1282
|
+
attr_accessor :set
|
1283
|
+
|
1284
|
+
def initialize(**args)
|
1285
|
+
update!(**args)
|
1286
|
+
end
|
1287
|
+
|
1288
|
+
# Update properties of this object
|
1289
|
+
def update!(**args)
|
1290
|
+
@add = args[:add] if args.key?(:add)
|
1291
|
+
@remove = args[:remove] if args.key?(:remove)
|
1292
|
+
@set = args[:set] if args.key?(:set)
|
1293
|
+
end
|
1294
|
+
end
|
1295
|
+
|
1296
|
+
# Specifications to match a query parameter in the request.
|
1297
|
+
class HttpRouteQueryParameterMatch
|
1298
|
+
include Google::Apis::Core::Hashable
|
1299
|
+
|
1300
|
+
# The value of the query parameter must exactly match the contents of
|
1301
|
+
# exact_match. Only one of exact_match, regex_match, or present_match must be
|
1302
|
+
# set.
|
1303
|
+
# Corresponds to the JSON property `exactMatch`
|
1304
|
+
# @return [String]
|
1305
|
+
attr_accessor :exact_match
|
1306
|
+
|
1307
|
+
# Specifies that the QueryParameterMatcher matches if request contains query
|
1308
|
+
# parameter, irrespective of whether the parameter has a value or not. Only one
|
1309
|
+
# of exact_match, regex_match, or present_match must be set.
|
1310
|
+
# Corresponds to the JSON property `presentMatch`
|
1311
|
+
# @return [Boolean]
|
1312
|
+
attr_accessor :present_match
|
1313
|
+
alias_method :present_match?, :present_match
|
1314
|
+
|
1315
|
+
# The name of the query parameter to match.
|
1316
|
+
# Corresponds to the JSON property `queryParameter`
|
1317
|
+
# @return [String]
|
1318
|
+
attr_accessor :query_parameter
|
1319
|
+
|
1320
|
+
# The value of the query parameter must match the regular expression specified
|
1321
|
+
# by regex_match. For regular expression grammar, please see https://github.com/
|
1322
|
+
# google/re2/wiki/Syntax Only one of exact_match, regex_match, or present_match
|
1323
|
+
# must be set.
|
1324
|
+
# Corresponds to the JSON property `regexMatch`
|
1325
|
+
# @return [String]
|
1326
|
+
attr_accessor :regex_match
|
1327
|
+
|
1328
|
+
def initialize(**args)
|
1329
|
+
update!(**args)
|
1330
|
+
end
|
1331
|
+
|
1332
|
+
# Update properties of this object
|
1333
|
+
def update!(**args)
|
1334
|
+
@exact_match = args[:exact_match] if args.key?(:exact_match)
|
1335
|
+
@present_match = args[:present_match] if args.key?(:present_match)
|
1336
|
+
@query_parameter = args[:query_parameter] if args.key?(:query_parameter)
|
1337
|
+
@regex_match = args[:regex_match] if args.key?(:regex_match)
|
1338
|
+
end
|
1339
|
+
end
|
1340
|
+
|
1341
|
+
# The specification for redirecting traffic.
|
1342
|
+
class HttpRouteRedirect
|
1343
|
+
include Google::Apis::Core::Hashable
|
1344
|
+
|
1345
|
+
# The host that will be used in the redirect response instead of the one that
|
1346
|
+
# was supplied in the request.
|
1347
|
+
# Corresponds to the JSON property `hostRedirect`
|
1348
|
+
# @return [String]
|
1349
|
+
attr_accessor :host_redirect
|
1350
|
+
|
1351
|
+
# If set to true, the URL scheme in the redirected request is set to https. If
|
1352
|
+
# set to false, the URL scheme of the redirected request will remain the same as
|
1353
|
+
# that of the request. The default is set to false.
|
1354
|
+
# Corresponds to the JSON property `httpsRedirect`
|
1355
|
+
# @return [Boolean]
|
1356
|
+
attr_accessor :https_redirect
|
1357
|
+
alias_method :https_redirect?, :https_redirect
|
1358
|
+
|
1359
|
+
# The path that will be used in the redirect response instead of the one that
|
1360
|
+
# was supplied in the request. path_redirect can not be supplied together with
|
1361
|
+
# prefix_redirect. Supply one alone or neither. If neither is supplied, the path
|
1362
|
+
# of the original request will be used for the redirect.
|
1363
|
+
# Corresponds to the JSON property `pathRedirect`
|
1364
|
+
# @return [String]
|
1365
|
+
attr_accessor :path_redirect
|
1366
|
+
|
1367
|
+
# The port that will be used in the redirected request instead of the one that
|
1368
|
+
# was supplied in the request.
|
1369
|
+
# Corresponds to the JSON property `portRedirect`
|
1370
|
+
# @return [Fixnum]
|
1371
|
+
attr_accessor :port_redirect
|
1372
|
+
|
1373
|
+
# Indicates that during redirection, the matched prefix (or path) should be
|
1374
|
+
# swapped with this value. This option allows URLs be dynamically created based
|
1375
|
+
# on the request.
|
1376
|
+
# Corresponds to the JSON property `prefixRewrite`
|
1377
|
+
# @return [String]
|
1378
|
+
attr_accessor :prefix_rewrite
|
1379
|
+
|
1380
|
+
# The HTTP Status code to use for the redirect.
|
1381
|
+
# Corresponds to the JSON property `responseCode`
|
1382
|
+
# @return [String]
|
1383
|
+
attr_accessor :response_code
|
1384
|
+
|
1385
|
+
# if set to true, any accompanying query portion of the original URL is removed
|
1386
|
+
# prior to redirecting the request. If set to false, the query portion of the
|
1387
|
+
# original URL is retained. The default is set to false.
|
1388
|
+
# Corresponds to the JSON property `stripQuery`
|
1389
|
+
# @return [Boolean]
|
1390
|
+
attr_accessor :strip_query
|
1391
|
+
alias_method :strip_query?, :strip_query
|
1392
|
+
|
1393
|
+
def initialize(**args)
|
1394
|
+
update!(**args)
|
1395
|
+
end
|
1396
|
+
|
1397
|
+
# Update properties of this object
|
1398
|
+
def update!(**args)
|
1399
|
+
@host_redirect = args[:host_redirect] if args.key?(:host_redirect)
|
1400
|
+
@https_redirect = args[:https_redirect] if args.key?(:https_redirect)
|
1401
|
+
@path_redirect = args[:path_redirect] if args.key?(:path_redirect)
|
1402
|
+
@port_redirect = args[:port_redirect] if args.key?(:port_redirect)
|
1403
|
+
@prefix_rewrite = args[:prefix_rewrite] if args.key?(:prefix_rewrite)
|
1404
|
+
@response_code = args[:response_code] if args.key?(:response_code)
|
1405
|
+
@strip_query = args[:strip_query] if args.key?(:strip_query)
|
1406
|
+
end
|
1407
|
+
end
|
1408
|
+
|
1409
|
+
# Specifies the policy on how requests are shadowed to a separate mirrored
|
1410
|
+
# destination service. The proxy does not wait for responses from the shadow
|
1411
|
+
# service. Prior to sending traffic to the shadow service, the host/authority
|
1412
|
+
# header is suffixed with -shadow.
|
1413
|
+
class HttpRouteRequestMirrorPolicy
|
1414
|
+
include Google::Apis::Core::Hashable
|
1415
|
+
|
1416
|
+
# Specifications of a destination to which the request should be routed to.
|
1417
|
+
# Corresponds to the JSON property `destination`
|
1418
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteDestination]
|
1419
|
+
attr_accessor :destination
|
1420
|
+
|
1421
|
+
def initialize(**args)
|
1422
|
+
update!(**args)
|
1423
|
+
end
|
1424
|
+
|
1425
|
+
# Update properties of this object
|
1426
|
+
def update!(**args)
|
1427
|
+
@destination = args[:destination] if args.key?(:destination)
|
1428
|
+
end
|
1429
|
+
end
|
1430
|
+
|
1431
|
+
# The specifications for retries.
|
1432
|
+
class HttpRouteRetryPolicy
|
1433
|
+
include Google::Apis::Core::Hashable
|
1434
|
+
|
1435
|
+
# Specifies the allowed number of retries. This number must be > 0. If not
|
1436
|
+
# specified, default to 1.
|
1437
|
+
# Corresponds to the JSON property `numRetries`
|
1438
|
+
# @return [Fixnum]
|
1439
|
+
attr_accessor :num_retries
|
1440
|
+
|
1441
|
+
# Specifies a non-zero timeout per retry attempt.
|
1442
|
+
# Corresponds to the JSON property `perTryTimeout`
|
1443
|
+
# @return [String]
|
1444
|
+
attr_accessor :per_try_timeout
|
1445
|
+
|
1446
|
+
# Specifies one or more conditions when this retry policy applies. Valid values
|
1447
|
+
# are: 5xx: Proxy will attempt a retry if the destination service responds with
|
1448
|
+
# any 5xx response code, of if the destination service does not respond at all,
|
1449
|
+
# example: disconnect, reset, read timeout, connection failure and refused
|
1450
|
+
# streams. gateway-error: Similar to 5xx, but only applies to response codes 502,
|
1451
|
+
# 503, 504. reset: Proxy will attempt a retry if the destination service does
|
1452
|
+
# not respond at all (disconnect/reset/read timeout) connect-failure: Proxy will
|
1453
|
+
# retry on failures connecting to destination for example due to connection
|
1454
|
+
# timeouts. retriable-4xx: Proxy will retry fro retriable 4xx response codes.
|
1455
|
+
# Currently the only retriable error supported is 409. refused-stream: Proxy
|
1456
|
+
# will retry if the destination resets the stream with a REFUSED_STREAM error
|
1457
|
+
# code. This reset type indicates that it is safe to retry.
|
1458
|
+
# Corresponds to the JSON property `retryConditions`
|
1459
|
+
# @return [Array<String>]
|
1460
|
+
attr_accessor :retry_conditions
|
1461
|
+
|
1462
|
+
def initialize(**args)
|
1463
|
+
update!(**args)
|
1464
|
+
end
|
1465
|
+
|
1466
|
+
# Update properties of this object
|
1467
|
+
def update!(**args)
|
1468
|
+
@num_retries = args[:num_retries] if args.key?(:num_retries)
|
1469
|
+
@per_try_timeout = args[:per_try_timeout] if args.key?(:per_try_timeout)
|
1470
|
+
@retry_conditions = args[:retry_conditions] if args.key?(:retry_conditions)
|
1471
|
+
end
|
1472
|
+
end
|
1473
|
+
|
1474
|
+
# The specifications for routing traffic and applying associated policies.
|
1475
|
+
class HttpRouteRouteAction
|
1476
|
+
include Google::Apis::Core::Hashable
|
1477
|
+
|
1478
|
+
# The Specification for allowing client side cross-origin requests.
|
1479
|
+
# Corresponds to the JSON property `corsPolicy`
|
1480
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteCorsPolicy]
|
1481
|
+
attr_accessor :cors_policy
|
1482
|
+
|
1483
|
+
# The destination to which traffic should be forwarded.
|
1484
|
+
# Corresponds to the JSON property `destinations`
|
1485
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::HttpRouteDestination>]
|
1486
|
+
attr_accessor :destinations
|
1487
|
+
|
1488
|
+
# The specification for fault injection introduced into traffic to test the
|
1489
|
+
# resiliency of clients to destination service failure. As part of fault
|
1490
|
+
# injection, when clients send requests to a destination, delays can be
|
1491
|
+
# introduced by client proxy on a percentage of requests before sending those
|
1492
|
+
# requests to the destination service. Similarly requests can be aborted by
|
1493
|
+
# client proxy for a percentage of requests.
|
1494
|
+
# Corresponds to the JSON property `faultInjectionPolicy`
|
1495
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteFaultInjectionPolicy]
|
1496
|
+
attr_accessor :fault_injection_policy
|
1497
|
+
|
1498
|
+
# The specification for redirecting traffic.
|
1499
|
+
# Corresponds to the JSON property `redirect`
|
1500
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteRedirect]
|
1501
|
+
attr_accessor :redirect
|
1502
|
+
|
1503
|
+
# The specification for modifying HTTP header in HTTP request and HTTP response.
|
1504
|
+
# Corresponds to the JSON property `requestHeaderModifier`
|
1505
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteHeaderModifier]
|
1506
|
+
attr_accessor :request_header_modifier
|
1507
|
+
|
1508
|
+
# Specifies the policy on how requests are shadowed to a separate mirrored
|
1509
|
+
# destination service. The proxy does not wait for responses from the shadow
|
1510
|
+
# service. Prior to sending traffic to the shadow service, the host/authority
|
1511
|
+
# header is suffixed with -shadow.
|
1512
|
+
# Corresponds to the JSON property `requestMirrorPolicy`
|
1513
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteRequestMirrorPolicy]
|
1514
|
+
attr_accessor :request_mirror_policy
|
1515
|
+
|
1516
|
+
# The specification for modifying HTTP header in HTTP request and HTTP response.
|
1517
|
+
# Corresponds to the JSON property `responseHeaderModifier`
|
1518
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteHeaderModifier]
|
1519
|
+
attr_accessor :response_header_modifier
|
1520
|
+
|
1521
|
+
# The specifications for retries.
|
1522
|
+
# Corresponds to the JSON property `retryPolicy`
|
1523
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteRetryPolicy]
|
1524
|
+
attr_accessor :retry_policy
|
1525
|
+
|
1526
|
+
# Specifies the timeout for selected route. Timeout is computed from the time
|
1527
|
+
# the request has been fully processed (i.e. end of stream) up until the
|
1528
|
+
# response has been completely processed. Timeout includes all retries.
|
1529
|
+
# Corresponds to the JSON property `timeout`
|
1530
|
+
# @return [String]
|
1531
|
+
attr_accessor :timeout
|
1532
|
+
|
1533
|
+
# The specification for modifying the URL of the request, prior to forwarding
|
1534
|
+
# the request to the destination.
|
1535
|
+
# Corresponds to the JSON property `urlRewrite`
|
1536
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteUrlRewrite]
|
1537
|
+
attr_accessor :url_rewrite
|
1538
|
+
|
1539
|
+
def initialize(**args)
|
1540
|
+
update!(**args)
|
1541
|
+
end
|
1542
|
+
|
1543
|
+
# Update properties of this object
|
1544
|
+
def update!(**args)
|
1545
|
+
@cors_policy = args[:cors_policy] if args.key?(:cors_policy)
|
1546
|
+
@destinations = args[:destinations] if args.key?(:destinations)
|
1547
|
+
@fault_injection_policy = args[:fault_injection_policy] if args.key?(:fault_injection_policy)
|
1548
|
+
@redirect = args[:redirect] if args.key?(:redirect)
|
1549
|
+
@request_header_modifier = args[:request_header_modifier] if args.key?(:request_header_modifier)
|
1550
|
+
@request_mirror_policy = args[:request_mirror_policy] if args.key?(:request_mirror_policy)
|
1551
|
+
@response_header_modifier = args[:response_header_modifier] if args.key?(:response_header_modifier)
|
1552
|
+
@retry_policy = args[:retry_policy] if args.key?(:retry_policy)
|
1553
|
+
@timeout = args[:timeout] if args.key?(:timeout)
|
1554
|
+
@url_rewrite = args[:url_rewrite] if args.key?(:url_rewrite)
|
1555
|
+
end
|
1556
|
+
end
|
1557
|
+
|
1558
|
+
# RouteMatch defines specifications used to match requests. If multiple match
|
1559
|
+
# types are set, this RouteMatch will match if ALL type of matches are matched.
|
1560
|
+
class HttpRouteRouteMatch
|
1561
|
+
include Google::Apis::Core::Hashable
|
1562
|
+
|
1563
|
+
# The HTTP request path value should exactly match this value. Only one of
|
1564
|
+
# full_path_match, prefix_match, or regex_match should be used.
|
1565
|
+
# Corresponds to the JSON property `fullPathMatch`
|
1566
|
+
# @return [String]
|
1567
|
+
attr_accessor :full_path_match
|
1568
|
+
|
1569
|
+
# Specifies a list of HTTP request headers to match against. ALL of the supplied
|
1570
|
+
# headers must be matched.
|
1571
|
+
# Corresponds to the JSON property `headers`
|
1572
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::HttpRouteHeaderMatch>]
|
1573
|
+
attr_accessor :headers
|
1574
|
+
|
1575
|
+
# Specifies if prefix_match and full_path_match matches are case sensitive. The
|
1576
|
+
# default value is false.
|
1577
|
+
# Corresponds to the JSON property `ignoreCase`
|
1578
|
+
# @return [Boolean]
|
1579
|
+
attr_accessor :ignore_case
|
1580
|
+
alias_method :ignore_case?, :ignore_case
|
1581
|
+
|
1582
|
+
# The HTTP request path value must begin with specified prefix_match.
|
1583
|
+
# prefix_match must begin with a /. Only one of full_path_match, prefix_match,
|
1584
|
+
# or regex_match should be used.
|
1585
|
+
# Corresponds to the JSON property `prefixMatch`
|
1586
|
+
# @return [String]
|
1587
|
+
attr_accessor :prefix_match
|
1588
|
+
|
1589
|
+
# Specifies a list of query parameters to match against. ALL of the query
|
1590
|
+
# parameters must be matched.
|
1591
|
+
# Corresponds to the JSON property `queryParameters`
|
1592
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::HttpRouteQueryParameterMatch>]
|
1593
|
+
attr_accessor :query_parameters
|
1594
|
+
|
1595
|
+
# The HTTP request path value must satisfy the regular expression specified by
|
1596
|
+
# regex_match after removing any query parameters and anchor supplied with the
|
1597
|
+
# original URL. For regular expression grammar, please see https://github.com/
|
1598
|
+
# google/re2/wiki/Syntax Only one of full_path_match, prefix_match, or
|
1599
|
+
# regex_match should be used.
|
1600
|
+
# Corresponds to the JSON property `regexMatch`
|
1601
|
+
# @return [String]
|
1602
|
+
attr_accessor :regex_match
|
1603
|
+
|
1604
|
+
def initialize(**args)
|
1605
|
+
update!(**args)
|
1606
|
+
end
|
1607
|
+
|
1608
|
+
# Update properties of this object
|
1609
|
+
def update!(**args)
|
1610
|
+
@full_path_match = args[:full_path_match] if args.key?(:full_path_match)
|
1611
|
+
@headers = args[:headers] if args.key?(:headers)
|
1612
|
+
@ignore_case = args[:ignore_case] if args.key?(:ignore_case)
|
1613
|
+
@prefix_match = args[:prefix_match] if args.key?(:prefix_match)
|
1614
|
+
@query_parameters = args[:query_parameters] if args.key?(:query_parameters)
|
1615
|
+
@regex_match = args[:regex_match] if args.key?(:regex_match)
|
1616
|
+
end
|
1617
|
+
end
|
1618
|
+
|
1619
|
+
# Specifies how to match traffic and how to route traffic when traffic is
|
1620
|
+
# matched.
|
1621
|
+
class HttpRouteRouteRule
|
1622
|
+
include Google::Apis::Core::Hashable
|
1623
|
+
|
1624
|
+
# The specifications for routing traffic and applying associated policies.
|
1625
|
+
# Corresponds to the JSON property `action`
|
1626
|
+
# @return [Google::Apis::NetworkservicesV1beta1::HttpRouteRouteAction]
|
1627
|
+
attr_accessor :action
|
1628
|
+
|
1629
|
+
# A list of matches define conditions used for matching the rule against
|
1630
|
+
# incoming HTTP requests. Each match is independent, i.e. this rule will be
|
1631
|
+
# matched if ANY one of the matches is satisfied. If no matches field is
|
1632
|
+
# specified, this rule will unconditionally match traffic. If a default rule is
|
1633
|
+
# desired to be configured, add a rule with no matches specified to the end of
|
1634
|
+
# the rules list.
|
1635
|
+
# Corresponds to the JSON property `matches`
|
1636
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::HttpRouteRouteMatch>]
|
1637
|
+
attr_accessor :matches
|
1638
|
+
|
1639
|
+
def initialize(**args)
|
1640
|
+
update!(**args)
|
1641
|
+
end
|
1642
|
+
|
1643
|
+
# Update properties of this object
|
1644
|
+
def update!(**args)
|
1645
|
+
@action = args[:action] if args.key?(:action)
|
1646
|
+
@matches = args[:matches] if args.key?(:matches)
|
1647
|
+
end
|
1648
|
+
end
|
1649
|
+
|
1650
|
+
# The specification for modifying the URL of the request, prior to forwarding
|
1651
|
+
# the request to the destination.
|
1652
|
+
class HttpRouteUrlRewrite
|
1653
|
+
include Google::Apis::Core::Hashable
|
1654
|
+
|
1655
|
+
# Prior to forwarding the request to the selected destination, the requests host
|
1656
|
+
# header is replaced by this value.
|
1657
|
+
# Corresponds to the JSON property `hostRewrite`
|
1658
|
+
# @return [String]
|
1659
|
+
attr_accessor :host_rewrite
|
1660
|
+
|
1661
|
+
# Prior to forwarding the request to the selected destination, the matching
|
1662
|
+
# portion of the requests path is replaced by this value.
|
1663
|
+
# Corresponds to the JSON property `pathPrefixRewrite`
|
1664
|
+
# @return [String]
|
1665
|
+
attr_accessor :path_prefix_rewrite
|
1666
|
+
|
1667
|
+
def initialize(**args)
|
1668
|
+
update!(**args)
|
1669
|
+
end
|
1670
|
+
|
1671
|
+
# Update properties of this object
|
1672
|
+
def update!(**args)
|
1673
|
+
@host_rewrite = args[:host_rewrite] if args.key?(:host_rewrite)
|
1674
|
+
@path_prefix_rewrite = args[:path_prefix_rewrite] if args.key?(:path_prefix_rewrite)
|
1675
|
+
end
|
1676
|
+
end
|
1677
|
+
|
368
1678
|
# Response returned by the ListEndpointPolicies method.
|
369
1679
|
class ListEndpointPoliciesResponse
|
370
1680
|
include Google::Apis::Core::Hashable
|
@@ -392,6 +1702,87 @@ module Google
|
|
392
1702
|
end
|
393
1703
|
end
|
394
1704
|
|
1705
|
+
# Response returned by the ListGateways method.
|
1706
|
+
class ListGatewaysResponse
|
1707
|
+
include Google::Apis::Core::Hashable
|
1708
|
+
|
1709
|
+
# List of Gateway resources.
|
1710
|
+
# Corresponds to the JSON property `gateways`
|
1711
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::Gateway>]
|
1712
|
+
attr_accessor :gateways
|
1713
|
+
|
1714
|
+
# If there might be more results than those appearing in this response, then `
|
1715
|
+
# next_page_token` is included. To get the next set of results, call this method
|
1716
|
+
# again using the value of `next_page_token` as `page_token`.
|
1717
|
+
# Corresponds to the JSON property `nextPageToken`
|
1718
|
+
# @return [String]
|
1719
|
+
attr_accessor :next_page_token
|
1720
|
+
|
1721
|
+
def initialize(**args)
|
1722
|
+
update!(**args)
|
1723
|
+
end
|
1724
|
+
|
1725
|
+
# Update properties of this object
|
1726
|
+
def update!(**args)
|
1727
|
+
@gateways = args[:gateways] if args.key?(:gateways)
|
1728
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1729
|
+
end
|
1730
|
+
end
|
1731
|
+
|
1732
|
+
# Response returned by the ListGrpcRoutes method.
|
1733
|
+
class ListGrpcRoutesResponse
|
1734
|
+
include Google::Apis::Core::Hashable
|
1735
|
+
|
1736
|
+
# List of GrpcRoute resources.
|
1737
|
+
# Corresponds to the JSON property `grpcRoutes`
|
1738
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::GrpcRoute>]
|
1739
|
+
attr_accessor :grpc_routes
|
1740
|
+
|
1741
|
+
# If there might be more results than those appearing in this response, then `
|
1742
|
+
# next_page_token` is included. To get the next set of results, call this method
|
1743
|
+
# again using the value of `next_page_token` as `page_token`.
|
1744
|
+
# Corresponds to the JSON property `nextPageToken`
|
1745
|
+
# @return [String]
|
1746
|
+
attr_accessor :next_page_token
|
1747
|
+
|
1748
|
+
def initialize(**args)
|
1749
|
+
update!(**args)
|
1750
|
+
end
|
1751
|
+
|
1752
|
+
# Update properties of this object
|
1753
|
+
def update!(**args)
|
1754
|
+
@grpc_routes = args[:grpc_routes] if args.key?(:grpc_routes)
|
1755
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1756
|
+
end
|
1757
|
+
end
|
1758
|
+
|
1759
|
+
# Response returned by the ListHttpRoutes method.
|
1760
|
+
class ListHttpRoutesResponse
|
1761
|
+
include Google::Apis::Core::Hashable
|
1762
|
+
|
1763
|
+
# List of HttpRoute resources.
|
1764
|
+
# Corresponds to the JSON property `httpRoutes`
|
1765
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::HttpRoute>]
|
1766
|
+
attr_accessor :http_routes
|
1767
|
+
|
1768
|
+
# If there might be more results than those appearing in this response, then `
|
1769
|
+
# next_page_token` is included. To get the next set of results, call this method
|
1770
|
+
# again using the value of `next_page_token` as `page_token`.
|
1771
|
+
# Corresponds to the JSON property `nextPageToken`
|
1772
|
+
# @return [String]
|
1773
|
+
attr_accessor :next_page_token
|
1774
|
+
|
1775
|
+
def initialize(**args)
|
1776
|
+
update!(**args)
|
1777
|
+
end
|
1778
|
+
|
1779
|
+
# Update properties of this object
|
1780
|
+
def update!(**args)
|
1781
|
+
@http_routes = args[:http_routes] if args.key?(:http_routes)
|
1782
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1783
|
+
end
|
1784
|
+
end
|
1785
|
+
|
395
1786
|
# The response message for Locations.ListLocations.
|
396
1787
|
class ListLocationsResponse
|
397
1788
|
include Google::Apis::Core::Hashable
|
@@ -417,19 +1808,100 @@ module Google
|
|
417
1808
|
end
|
418
1809
|
end
|
419
1810
|
|
1811
|
+
# Response returned by the ListMeshes method.
|
1812
|
+
class ListMeshesResponse
|
1813
|
+
include Google::Apis::Core::Hashable
|
1814
|
+
|
1815
|
+
# List of Mesh resources.
|
1816
|
+
# Corresponds to the JSON property `meshes`
|
1817
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::Mesh>]
|
1818
|
+
attr_accessor :meshes
|
1819
|
+
|
1820
|
+
# If there might be more results than those appearing in this response, then `
|
1821
|
+
# next_page_token` is included. To get the next set of results, call this method
|
1822
|
+
# again using the value of `next_page_token` as `page_token`.
|
1823
|
+
# Corresponds to the JSON property `nextPageToken`
|
1824
|
+
# @return [String]
|
1825
|
+
attr_accessor :next_page_token
|
1826
|
+
|
1827
|
+
def initialize(**args)
|
1828
|
+
update!(**args)
|
1829
|
+
end
|
1830
|
+
|
1831
|
+
# Update properties of this object
|
1832
|
+
def update!(**args)
|
1833
|
+
@meshes = args[:meshes] if args.key?(:meshes)
|
1834
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1835
|
+
end
|
1836
|
+
end
|
1837
|
+
|
420
1838
|
# The response message for Operations.ListOperations.
|
421
1839
|
class ListOperationsResponse
|
422
1840
|
include Google::Apis::Core::Hashable
|
423
1841
|
|
424
|
-
# The standard List next-page token.
|
1842
|
+
# The standard List next-page token.
|
1843
|
+
# Corresponds to the JSON property `nextPageToken`
|
1844
|
+
# @return [String]
|
1845
|
+
attr_accessor :next_page_token
|
1846
|
+
|
1847
|
+
# A list of operations that matches the specified filter in the request.
|
1848
|
+
# Corresponds to the JSON property `operations`
|
1849
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::Operation>]
|
1850
|
+
attr_accessor :operations
|
1851
|
+
|
1852
|
+
def initialize(**args)
|
1853
|
+
update!(**args)
|
1854
|
+
end
|
1855
|
+
|
1856
|
+
# Update properties of this object
|
1857
|
+
def update!(**args)
|
1858
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1859
|
+
@operations = args[:operations] if args.key?(:operations)
|
1860
|
+
end
|
1861
|
+
end
|
1862
|
+
|
1863
|
+
# Response returned by the ListServiceBindings method.
|
1864
|
+
class ListServiceBindingsResponse
|
1865
|
+
include Google::Apis::Core::Hashable
|
1866
|
+
|
1867
|
+
# If there might be more results than those appearing in this response, then `
|
1868
|
+
# next_page_token` is included. To get the next set of results, call this method
|
1869
|
+
# again using the value of `next_page_token` as `page_token`.
|
1870
|
+
# Corresponds to the JSON property `nextPageToken`
|
1871
|
+
# @return [String]
|
1872
|
+
attr_accessor :next_page_token
|
1873
|
+
|
1874
|
+
# List of ServiceBinding resources.
|
1875
|
+
# Corresponds to the JSON property `serviceBindings`
|
1876
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::ServiceBinding>]
|
1877
|
+
attr_accessor :service_bindings
|
1878
|
+
|
1879
|
+
def initialize(**args)
|
1880
|
+
update!(**args)
|
1881
|
+
end
|
1882
|
+
|
1883
|
+
# Update properties of this object
|
1884
|
+
def update!(**args)
|
1885
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1886
|
+
@service_bindings = args[:service_bindings] if args.key?(:service_bindings)
|
1887
|
+
end
|
1888
|
+
end
|
1889
|
+
|
1890
|
+
# Response returned by the ListTcpRoutes method.
|
1891
|
+
class ListTcpRoutesResponse
|
1892
|
+
include Google::Apis::Core::Hashable
|
1893
|
+
|
1894
|
+
# If there might be more results than those appearing in this response, then `
|
1895
|
+
# next_page_token` is included. To get the next set of results, call this method
|
1896
|
+
# again using the value of `next_page_token` as `page_token`.
|
425
1897
|
# Corresponds to the JSON property `nextPageToken`
|
426
1898
|
# @return [String]
|
427
1899
|
attr_accessor :next_page_token
|
428
1900
|
|
429
|
-
#
|
430
|
-
# Corresponds to the JSON property `
|
431
|
-
# @return [Array<Google::Apis::NetworkservicesV1beta1::
|
432
|
-
attr_accessor :
|
1901
|
+
# List of TcpRoute resources.
|
1902
|
+
# Corresponds to the JSON property `tcpRoutes`
|
1903
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TcpRoute>]
|
1904
|
+
attr_accessor :tcp_routes
|
433
1905
|
|
434
1906
|
def initialize(**args)
|
435
1907
|
update!(**args)
|
@@ -438,12 +1910,12 @@ module Google
|
|
438
1910
|
# Update properties of this object
|
439
1911
|
def update!(**args)
|
440
1912
|
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
441
|
-
@
|
1913
|
+
@tcp_routes = args[:tcp_routes] if args.key?(:tcp_routes)
|
442
1914
|
end
|
443
1915
|
end
|
444
1916
|
|
445
|
-
# Response returned by the
|
446
|
-
class
|
1917
|
+
# Response returned by the ListTlsRoutes method.
|
1918
|
+
class ListTlsRoutesResponse
|
447
1919
|
include Google::Apis::Core::Hashable
|
448
1920
|
|
449
1921
|
# If there might be more results than those appearing in this response, then `
|
@@ -453,10 +1925,10 @@ module Google
|
|
453
1925
|
# @return [String]
|
454
1926
|
attr_accessor :next_page_token
|
455
1927
|
|
456
|
-
# List of
|
457
|
-
# Corresponds to the JSON property `
|
458
|
-
# @return [Array<Google::Apis::NetworkservicesV1beta1::
|
459
|
-
attr_accessor :
|
1928
|
+
# List of TlsRoute resources.
|
1929
|
+
# Corresponds to the JSON property `tlsRoutes`
|
1930
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TlsRoute>]
|
1931
|
+
attr_accessor :tls_routes
|
460
1932
|
|
461
1933
|
def initialize(**args)
|
462
1934
|
update!(**args)
|
@@ -465,7 +1937,7 @@ module Google
|
|
465
1937
|
# Update properties of this object
|
466
1938
|
def update!(**args)
|
467
1939
|
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
468
|
-
@
|
1940
|
+
@tls_routes = args[:tls_routes] if args.key?(:tls_routes)
|
469
1941
|
end
|
470
1942
|
end
|
471
1943
|
|
@@ -516,6 +1988,68 @@ module Google
|
|
516
1988
|
end
|
517
1989
|
end
|
518
1990
|
|
1991
|
+
# Mesh represents a logical configuration grouping for workload to workload
|
1992
|
+
# communication within a service mesh. Routes that point to mesh dictate how
|
1993
|
+
# requests are routed within this logical mesh boundary.
|
1994
|
+
class Mesh
|
1995
|
+
include Google::Apis::Core::Hashable
|
1996
|
+
|
1997
|
+
# Output only. The timestamp when the resource was created.
|
1998
|
+
# Corresponds to the JSON property `createTime`
|
1999
|
+
# @return [String]
|
2000
|
+
attr_accessor :create_time
|
2001
|
+
|
2002
|
+
# Optional. A free-text description of the resource. Max length 1024 characters.
|
2003
|
+
# Corresponds to the JSON property `description`
|
2004
|
+
# @return [String]
|
2005
|
+
attr_accessor :description
|
2006
|
+
|
2007
|
+
# Optional. If set to a valid TCP port (1-65535), instructs the SIDECAR proxy to
|
2008
|
+
# listen on the specified port of localhost (127.0.0.1) address. The SIDECAR
|
2009
|
+
# proxy will expect all traffic to be redirected to this port regardless of its
|
2010
|
+
# actual ip:port destination. If unset, a port '15001' is used as the
|
2011
|
+
# interception port. This will is applicable only for sidecar proxy deployments.
|
2012
|
+
# Corresponds to the JSON property `interceptionPort`
|
2013
|
+
# @return [Fixnum]
|
2014
|
+
attr_accessor :interception_port
|
2015
|
+
|
2016
|
+
# Optional. Set of label tags associated with the Mesh resource.
|
2017
|
+
# Corresponds to the JSON property `labels`
|
2018
|
+
# @return [Hash<String,String>]
|
2019
|
+
attr_accessor :labels
|
2020
|
+
|
2021
|
+
# Required. Name of the Mesh resource. It matches pattern `projects/*/locations/
|
2022
|
+
# global/meshes/`.
|
2023
|
+
# Corresponds to the JSON property `name`
|
2024
|
+
# @return [String]
|
2025
|
+
attr_accessor :name
|
2026
|
+
|
2027
|
+
# Output only. Server-defined URL of this resource
|
2028
|
+
# Corresponds to the JSON property `selfLink`
|
2029
|
+
# @return [String]
|
2030
|
+
attr_accessor :self_link
|
2031
|
+
|
2032
|
+
# Output only. The timestamp when the resource was updated.
|
2033
|
+
# Corresponds to the JSON property `updateTime`
|
2034
|
+
# @return [String]
|
2035
|
+
attr_accessor :update_time
|
2036
|
+
|
2037
|
+
def initialize(**args)
|
2038
|
+
update!(**args)
|
2039
|
+
end
|
2040
|
+
|
2041
|
+
# Update properties of this object
|
2042
|
+
def update!(**args)
|
2043
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
2044
|
+
@description = args[:description] if args.key?(:description)
|
2045
|
+
@interception_port = args[:interception_port] if args.key?(:interception_port)
|
2046
|
+
@labels = args[:labels] if args.key?(:labels)
|
2047
|
+
@name = args[:name] if args.key?(:name)
|
2048
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
2049
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
2050
|
+
end
|
2051
|
+
end
|
2052
|
+
|
519
2053
|
# The matcher that is based on node metadata presented by xDS clients.
|
520
2054
|
class MetadataLabelMatcher
|
521
2055
|
include Google::Apis::Core::Hashable
|
@@ -949,6 +2483,204 @@ module Google
|
|
949
2483
|
end
|
950
2484
|
end
|
951
2485
|
|
2486
|
+
# TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/
|
2487
|
+
# Gateway resource.
|
2488
|
+
class TcpRoute
|
2489
|
+
include Google::Apis::Core::Hashable
|
2490
|
+
|
2491
|
+
# Output only. The timestamp when the resource was created.
|
2492
|
+
# Corresponds to the JSON property `createTime`
|
2493
|
+
# @return [String]
|
2494
|
+
attr_accessor :create_time
|
2495
|
+
|
2496
|
+
# Optional. A free-text description of the resource. Max length 1024 characters.
|
2497
|
+
# Corresponds to the JSON property `description`
|
2498
|
+
# @return [String]
|
2499
|
+
attr_accessor :description
|
2500
|
+
|
2501
|
+
# Optional. Gateways defines a list of gateways this TcpRoute is attached to, as
|
2502
|
+
# one of the routing rules to route the requests served by the gateway. Each
|
2503
|
+
# gateway reference should match the pattern: `projects/*/locations/global/
|
2504
|
+
# gateways/`
|
2505
|
+
# Corresponds to the JSON property `gateways`
|
2506
|
+
# @return [Array<String>]
|
2507
|
+
attr_accessor :gateways
|
2508
|
+
|
2509
|
+
# Optional. Set of label tags associated with the TcpRoute resource.
|
2510
|
+
# Corresponds to the JSON property `labels`
|
2511
|
+
# @return [Hash<String,String>]
|
2512
|
+
attr_accessor :labels
|
2513
|
+
|
2514
|
+
# Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one
|
2515
|
+
# of the routing rules to route the requests served by the mesh. Each mesh
|
2516
|
+
# reference should match the pattern: `projects/*/locations/global/meshes/` The
|
2517
|
+
# attached Mesh should be of a type SIDECAR
|
2518
|
+
# Corresponds to the JSON property `meshes`
|
2519
|
+
# @return [Array<String>]
|
2520
|
+
attr_accessor :meshes
|
2521
|
+
|
2522
|
+
# Required. Name of the TcpRoute resource. It matches pattern `projects/*/
|
2523
|
+
# locations/global/tcpRoutes/tcp_route_name>`.
|
2524
|
+
# Corresponds to the JSON property `name`
|
2525
|
+
# @return [String]
|
2526
|
+
attr_accessor :name
|
2527
|
+
|
2528
|
+
# Required. Rules that define how traffic is routed and handled. At least one
|
2529
|
+
# RouteRule must be supplied. If there are multiple rules then the action taken
|
2530
|
+
# will be the first rule to match.
|
2531
|
+
# Corresponds to the JSON property `rules`
|
2532
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TcpRouteRouteRule>]
|
2533
|
+
attr_accessor :rules
|
2534
|
+
|
2535
|
+
# Output only. Server-defined URL of this resource
|
2536
|
+
# Corresponds to the JSON property `selfLink`
|
2537
|
+
# @return [String]
|
2538
|
+
attr_accessor :self_link
|
2539
|
+
|
2540
|
+
# Output only. The timestamp when the resource was updated.
|
2541
|
+
# Corresponds to the JSON property `updateTime`
|
2542
|
+
# @return [String]
|
2543
|
+
attr_accessor :update_time
|
2544
|
+
|
2545
|
+
def initialize(**args)
|
2546
|
+
update!(**args)
|
2547
|
+
end
|
2548
|
+
|
2549
|
+
# Update properties of this object
|
2550
|
+
def update!(**args)
|
2551
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
2552
|
+
@description = args[:description] if args.key?(:description)
|
2553
|
+
@gateways = args[:gateways] if args.key?(:gateways)
|
2554
|
+
@labels = args[:labels] if args.key?(:labels)
|
2555
|
+
@meshes = args[:meshes] if args.key?(:meshes)
|
2556
|
+
@name = args[:name] if args.key?(:name)
|
2557
|
+
@rules = args[:rules] if args.key?(:rules)
|
2558
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
2559
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
2560
|
+
end
|
2561
|
+
end
|
2562
|
+
|
2563
|
+
# The specifications for routing traffic and applying associated policies.
|
2564
|
+
class TcpRouteRouteAction
|
2565
|
+
include Google::Apis::Core::Hashable
|
2566
|
+
|
2567
|
+
# Optional. The destination services to which traffic should be forwarded. At
|
2568
|
+
# least one destination service is required.
|
2569
|
+
# Corresponds to the JSON property `destinations`
|
2570
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TcpRouteRouteDestination>]
|
2571
|
+
attr_accessor :destinations
|
2572
|
+
|
2573
|
+
# Optional. If true, Router will use the destination IP and port of the original
|
2574
|
+
# connection as the destination of the request. Default is false.
|
2575
|
+
# Corresponds to the JSON property `originalDestination`
|
2576
|
+
# @return [Boolean]
|
2577
|
+
attr_accessor :original_destination
|
2578
|
+
alias_method :original_destination?, :original_destination
|
2579
|
+
|
2580
|
+
def initialize(**args)
|
2581
|
+
update!(**args)
|
2582
|
+
end
|
2583
|
+
|
2584
|
+
# Update properties of this object
|
2585
|
+
def update!(**args)
|
2586
|
+
@destinations = args[:destinations] if args.key?(:destinations)
|
2587
|
+
@original_destination = args[:original_destination] if args.key?(:original_destination)
|
2588
|
+
end
|
2589
|
+
end
|
2590
|
+
|
2591
|
+
# Describe the destination for traffic to be routed to.
|
2592
|
+
class TcpRouteRouteDestination
|
2593
|
+
include Google::Apis::Core::Hashable
|
2594
|
+
|
2595
|
+
# Required. The URL of a BackendService to route traffic to.
|
2596
|
+
# Corresponds to the JSON property `serviceName`
|
2597
|
+
# @return [String]
|
2598
|
+
attr_accessor :service_name
|
2599
|
+
|
2600
|
+
# Optional. Specifies the proportion of requests forwarded to the backend
|
2601
|
+
# referenced by the serviceName field. This is computed as: weight/Sum(weights
|
2602
|
+
# in this destination list). For non-zero values, there may be some epsilon from
|
2603
|
+
# the exact proportion defined here depending on the precision an implementation
|
2604
|
+
# supports. If only one serviceName is specified and it has a weight greater
|
2605
|
+
# than 0, 100% of the traffic is forwarded to that backend. If weights are
|
2606
|
+
# specified for any one service name, they need to be specified for all of them.
|
2607
|
+
# If weights are unspecified for all services, then, traffic is distributed in
|
2608
|
+
# equal proportions to all of them.
|
2609
|
+
# Corresponds to the JSON property `weight`
|
2610
|
+
# @return [Fixnum]
|
2611
|
+
attr_accessor :weight
|
2612
|
+
|
2613
|
+
def initialize(**args)
|
2614
|
+
update!(**args)
|
2615
|
+
end
|
2616
|
+
|
2617
|
+
# Update properties of this object
|
2618
|
+
def update!(**args)
|
2619
|
+
@service_name = args[:service_name] if args.key?(:service_name)
|
2620
|
+
@weight = args[:weight] if args.key?(:weight)
|
2621
|
+
end
|
2622
|
+
end
|
2623
|
+
|
2624
|
+
# RouteMatch defines the predicate used to match requests to a given action.
|
2625
|
+
# Multiple match types are "OR"ed for evaluation. If no routeMatch field is
|
2626
|
+
# specified, this rule will unconditionally match traffic.
|
2627
|
+
class TcpRouteRouteMatch
|
2628
|
+
include Google::Apis::Core::Hashable
|
2629
|
+
|
2630
|
+
# Required. Must be specified in the CIDR range format. A CIDR range consists of
|
2631
|
+
# an IP Address and a prefix length to construct the subnet mask. By default,
|
2632
|
+
# the prefix length is 32 (i.e. matches a single IP address). Only IPV4
|
2633
|
+
# addresses are supported. Examples: "10.0.0.1" - matches against this exact IP
|
2634
|
+
# address. "10.0.0.0/8" - matches against any IP address within the 10.0.0.0
|
2635
|
+
# subnet and 255.255.255.0 mask. "0.0.0.0/0" - matches against any IP address'.
|
2636
|
+
# Corresponds to the JSON property `address`
|
2637
|
+
# @return [String]
|
2638
|
+
attr_accessor :address
|
2639
|
+
|
2640
|
+
# Required. Specifies the destination port to match against.
|
2641
|
+
# Corresponds to the JSON property `port`
|
2642
|
+
# @return [String]
|
2643
|
+
attr_accessor :port
|
2644
|
+
|
2645
|
+
def initialize(**args)
|
2646
|
+
update!(**args)
|
2647
|
+
end
|
2648
|
+
|
2649
|
+
# Update properties of this object
|
2650
|
+
def update!(**args)
|
2651
|
+
@address = args[:address] if args.key?(:address)
|
2652
|
+
@port = args[:port] if args.key?(:port)
|
2653
|
+
end
|
2654
|
+
end
|
2655
|
+
|
2656
|
+
# Specifies how to match traffic and how to route traffic when traffic is
|
2657
|
+
# matched.
|
2658
|
+
class TcpRouteRouteRule
|
2659
|
+
include Google::Apis::Core::Hashable
|
2660
|
+
|
2661
|
+
# The specifications for routing traffic and applying associated policies.
|
2662
|
+
# Corresponds to the JSON property `action`
|
2663
|
+
# @return [Google::Apis::NetworkservicesV1beta1::TcpRouteRouteAction]
|
2664
|
+
attr_accessor :action
|
2665
|
+
|
2666
|
+
# Optional. RouteMatch defines the predicate used to match requests to a given
|
2667
|
+
# action. Multiple match types are "OR"ed for evaluation. If no routeMatch field
|
2668
|
+
# is specified, this rule will unconditionally match traffic.
|
2669
|
+
# Corresponds to the JSON property `matches`
|
2670
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TcpRouteRouteMatch>]
|
2671
|
+
attr_accessor :matches
|
2672
|
+
|
2673
|
+
def initialize(**args)
|
2674
|
+
update!(**args)
|
2675
|
+
end
|
2676
|
+
|
2677
|
+
# Update properties of this object
|
2678
|
+
def update!(**args)
|
2679
|
+
@action = args[:action] if args.key?(:action)
|
2680
|
+
@matches = args[:matches] if args.key?(:matches)
|
2681
|
+
end
|
2682
|
+
end
|
2683
|
+
|
952
2684
|
# Request message for `TestIamPermissions` method.
|
953
2685
|
class TestIamPermissionsRequest
|
954
2686
|
include Google::Apis::Core::Hashable
|
@@ -989,6 +2721,184 @@ module Google
|
|
989
2721
|
end
|
990
2722
|
end
|
991
2723
|
|
2724
|
+
# TlsRoute defines how traffic should be routed based on SNI and other matching
|
2725
|
+
# L3 attributes.
|
2726
|
+
class TlsRoute
|
2727
|
+
include Google::Apis::Core::Hashable
|
2728
|
+
|
2729
|
+
# Output only. The timestamp when the resource was created.
|
2730
|
+
# Corresponds to the JSON property `createTime`
|
2731
|
+
# @return [String]
|
2732
|
+
attr_accessor :create_time
|
2733
|
+
|
2734
|
+
# Optional. A free-text description of the resource. Max length 1024 characters.
|
2735
|
+
# Corresponds to the JSON property `description`
|
2736
|
+
# @return [String]
|
2737
|
+
attr_accessor :description
|
2738
|
+
|
2739
|
+
# Optional. Gateways defines a list of gateways this TlsRoute is attached to, as
|
2740
|
+
# one of the routing rules to route the requests served by the gateway. Each
|
2741
|
+
# gateway reference should match the pattern: `projects/*/locations/global/
|
2742
|
+
# gateways/`
|
2743
|
+
# Corresponds to the JSON property `gateways`
|
2744
|
+
# @return [Array<String>]
|
2745
|
+
attr_accessor :gateways
|
2746
|
+
|
2747
|
+
# Optional. Meshes defines a list of meshes this TlsRoute is attached to, as one
|
2748
|
+
# of the routing rules to route the requests served by the mesh. Each mesh
|
2749
|
+
# reference should match the pattern: `projects/*/locations/global/meshes/` The
|
2750
|
+
# attached Mesh should be of a type SIDECAR
|
2751
|
+
# Corresponds to the JSON property `meshes`
|
2752
|
+
# @return [Array<String>]
|
2753
|
+
attr_accessor :meshes
|
2754
|
+
|
2755
|
+
# Required. Name of the TlsRoute resource. It matches pattern `projects/*/
|
2756
|
+
# locations/global/tlsRoutes/tls_route_name>`.
|
2757
|
+
# Corresponds to the JSON property `name`
|
2758
|
+
# @return [String]
|
2759
|
+
attr_accessor :name
|
2760
|
+
|
2761
|
+
# Required. Rules that define how traffic is routed and handled. At least one
|
2762
|
+
# RouteRule must be supplied. If there are multiple rules then the action taken
|
2763
|
+
# will be the first rule to match.
|
2764
|
+
# Corresponds to the JSON property `rules`
|
2765
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TlsRouteRouteRule>]
|
2766
|
+
attr_accessor :rules
|
2767
|
+
|
2768
|
+
# Output only. Server-defined URL of this resource
|
2769
|
+
# Corresponds to the JSON property `selfLink`
|
2770
|
+
# @return [String]
|
2771
|
+
attr_accessor :self_link
|
2772
|
+
|
2773
|
+
# Output only. The timestamp when the resource was updated.
|
2774
|
+
# Corresponds to the JSON property `updateTime`
|
2775
|
+
# @return [String]
|
2776
|
+
attr_accessor :update_time
|
2777
|
+
|
2778
|
+
def initialize(**args)
|
2779
|
+
update!(**args)
|
2780
|
+
end
|
2781
|
+
|
2782
|
+
# Update properties of this object
|
2783
|
+
def update!(**args)
|
2784
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
2785
|
+
@description = args[:description] if args.key?(:description)
|
2786
|
+
@gateways = args[:gateways] if args.key?(:gateways)
|
2787
|
+
@meshes = args[:meshes] if args.key?(:meshes)
|
2788
|
+
@name = args[:name] if args.key?(:name)
|
2789
|
+
@rules = args[:rules] if args.key?(:rules)
|
2790
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
2791
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
2792
|
+
end
|
2793
|
+
end
|
2794
|
+
|
2795
|
+
# The specifications for routing traffic and applying associated policies.
|
2796
|
+
class TlsRouteRouteAction
|
2797
|
+
include Google::Apis::Core::Hashable
|
2798
|
+
|
2799
|
+
# Required. The destination services to which traffic should be forwarded. At
|
2800
|
+
# least one destination service is required.
|
2801
|
+
# Corresponds to the JSON property `destinations`
|
2802
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TlsRouteRouteDestination>]
|
2803
|
+
attr_accessor :destinations
|
2804
|
+
|
2805
|
+
def initialize(**args)
|
2806
|
+
update!(**args)
|
2807
|
+
end
|
2808
|
+
|
2809
|
+
# Update properties of this object
|
2810
|
+
def update!(**args)
|
2811
|
+
@destinations = args[:destinations] if args.key?(:destinations)
|
2812
|
+
end
|
2813
|
+
end
|
2814
|
+
|
2815
|
+
# Describe the destination for traffic to be routed to.
|
2816
|
+
class TlsRouteRouteDestination
|
2817
|
+
include Google::Apis::Core::Hashable
|
2818
|
+
|
2819
|
+
# Required. The URL of a BackendService to route traffic to.
|
2820
|
+
# Corresponds to the JSON property `serviceName`
|
2821
|
+
# @return [String]
|
2822
|
+
attr_accessor :service_name
|
2823
|
+
|
2824
|
+
# Optional. Specifies the proportion of requests forwareded to the backend
|
2825
|
+
# referenced by the service_name field. This is computed as: weight/Sum(weights
|
2826
|
+
# in destinations) Weights in all destinations does not need to sum up to 100.
|
2827
|
+
# Corresponds to the JSON property `weight`
|
2828
|
+
# @return [Fixnum]
|
2829
|
+
attr_accessor :weight
|
2830
|
+
|
2831
|
+
def initialize(**args)
|
2832
|
+
update!(**args)
|
2833
|
+
end
|
2834
|
+
|
2835
|
+
# Update properties of this object
|
2836
|
+
def update!(**args)
|
2837
|
+
@service_name = args[:service_name] if args.key?(:service_name)
|
2838
|
+
@weight = args[:weight] if args.key?(:weight)
|
2839
|
+
end
|
2840
|
+
end
|
2841
|
+
|
2842
|
+
# RouteMatch defines the predicate used to match requests to a given action.
|
2843
|
+
# Multiple match types are “AND”ed for evaluation. If no routeMatch field is
|
2844
|
+
# specified, this rule will unconditionally match traffic.
|
2845
|
+
class TlsRouteRouteMatch
|
2846
|
+
include Google::Apis::Core::Hashable
|
2847
|
+
|
2848
|
+
# Optional. ALPN (Application-Layer Protocol Negotiation) to match against.
|
2849
|
+
# Examples: "http/1.1", "h2". At least one of sni_host and alpn is required. Up
|
2850
|
+
# to 5 alpns across all matches can be set.
|
2851
|
+
# Corresponds to the JSON property `alpn`
|
2852
|
+
# @return [Array<String>]
|
2853
|
+
attr_accessor :alpn
|
2854
|
+
|
2855
|
+
# Optional. SNI (server name indicator) to match against. SNI will be matched
|
2856
|
+
# against all wildcard domains, i.e. www.example.com will be first matched
|
2857
|
+
# against www.example.com, then *.example.com, then *.com. Partial wildcards are
|
2858
|
+
# not supported, and values like *w.example.com are invalid. At least one of
|
2859
|
+
# sni_host and alpn is required. Up to 5 sni hosts across all matches can be set.
|
2860
|
+
# Corresponds to the JSON property `sniHost`
|
2861
|
+
# @return [Array<String>]
|
2862
|
+
attr_accessor :sni_host
|
2863
|
+
|
2864
|
+
def initialize(**args)
|
2865
|
+
update!(**args)
|
2866
|
+
end
|
2867
|
+
|
2868
|
+
# Update properties of this object
|
2869
|
+
def update!(**args)
|
2870
|
+
@alpn = args[:alpn] if args.key?(:alpn)
|
2871
|
+
@sni_host = args[:sni_host] if args.key?(:sni_host)
|
2872
|
+
end
|
2873
|
+
end
|
2874
|
+
|
2875
|
+
# Specifies how to match traffic and how to route traffic when traffic is
|
2876
|
+
# matched.
|
2877
|
+
class TlsRouteRouteRule
|
2878
|
+
include Google::Apis::Core::Hashable
|
2879
|
+
|
2880
|
+
# The specifications for routing traffic and applying associated policies.
|
2881
|
+
# Corresponds to the JSON property `action`
|
2882
|
+
# @return [Google::Apis::NetworkservicesV1beta1::TlsRouteRouteAction]
|
2883
|
+
attr_accessor :action
|
2884
|
+
|
2885
|
+
# Required. RouteMatch defines the predicate used to match requests to a given
|
2886
|
+
# action. Multiple match types are “OR”ed for evaluation.
|
2887
|
+
# Corresponds to the JSON property `matches`
|
2888
|
+
# @return [Array<Google::Apis::NetworkservicesV1beta1::TlsRouteRouteMatch>]
|
2889
|
+
attr_accessor :matches
|
2890
|
+
|
2891
|
+
def initialize(**args)
|
2892
|
+
update!(**args)
|
2893
|
+
end
|
2894
|
+
|
2895
|
+
# Update properties of this object
|
2896
|
+
def update!(**args)
|
2897
|
+
@action = args[:action] if args.key?(:action)
|
2898
|
+
@matches = args[:matches] if args.key?(:matches)
|
2899
|
+
end
|
2900
|
+
end
|
2901
|
+
|
992
2902
|
# Specification of a port-based selector.
|
993
2903
|
class TrafficPortSelector
|
994
2904
|
include Google::Apis::Core::Hashable
|