google-apis-networksecurity_v1beta1 0.72.0 → 0.73.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 +4 -0
- data/lib/google/apis/networksecurity_v1beta1/classes.rb +747 -0
- data/lib/google/apis/networksecurity_v1beta1/gem_version.rb +2 -2
- data/lib/google/apis/networksecurity_v1beta1/representations.rb +368 -0
- data/lib/google/apis/networksecurity_v1beta1/service.rb +220 -0
- metadata +2 -2
|
@@ -3435,6 +3435,37 @@ module Google
|
|
|
3435
3435
|
end
|
|
3436
3436
|
end
|
|
3437
3437
|
|
|
3438
|
+
# Contains a response to listing `RateLimitPolicy` resources.
|
|
3439
|
+
class ListRateLimitPoliciesResponse
|
|
3440
|
+
include Google::Apis::Core::Hashable
|
|
3441
|
+
|
|
3442
|
+
# Identifies a token for a page of results the server should return.
|
|
3443
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
3444
|
+
# @return [String]
|
|
3445
|
+
attr_accessor :next_page_token
|
|
3446
|
+
|
|
3447
|
+
# Contains a list of `RateLimitPolicy` resources.
|
|
3448
|
+
# Corresponds to the JSON property `rateLimitPolicies`
|
|
3449
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicy>]
|
|
3450
|
+
attr_accessor :rate_limit_policies
|
|
3451
|
+
|
|
3452
|
+
# Unordered list. Lists locations that could not be reached.
|
|
3453
|
+
# Corresponds to the JSON property `unreachable`
|
|
3454
|
+
# @return [Array<String>]
|
|
3455
|
+
attr_accessor :unreachable
|
|
3456
|
+
|
|
3457
|
+
def initialize(**args)
|
|
3458
|
+
update!(**args)
|
|
3459
|
+
end
|
|
3460
|
+
|
|
3461
|
+
# Update properties of this object
|
|
3462
|
+
def update!(**args)
|
|
3463
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
3464
|
+
@rate_limit_policies = args[:rate_limit_policies] if args.key?(:rate_limit_policies)
|
|
3465
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
|
3466
|
+
end
|
|
3467
|
+
end
|
|
3468
|
+
|
|
3438
3469
|
# Response for `ListSACAttachments` method.
|
|
3439
3470
|
class ListSacAttachmentsResponse
|
|
3440
3471
|
include Google::Apis::Core::Hashable
|
|
@@ -4428,6 +4459,722 @@ module Google
|
|
|
4428
4459
|
end
|
|
4429
4460
|
end
|
|
4430
4461
|
|
|
4462
|
+
# Describes a `RateLimitPolicy` object.
|
|
4463
|
+
class RateLimitPolicy
|
|
4464
|
+
include Google::Apis::Core::Hashable
|
|
4465
|
+
|
|
4466
|
+
# Output only. Represents the create timestamp.
|
|
4467
|
+
# Corresponds to the JSON property `createTime`
|
|
4468
|
+
# @return [String]
|
|
4469
|
+
attr_accessor :create_time
|
|
4470
|
+
|
|
4471
|
+
# Optional. Provides a human-readable description of the resource.
|
|
4472
|
+
# Corresponds to the JSON property `description`
|
|
4473
|
+
# @return [String]
|
|
4474
|
+
attr_accessor :description
|
|
4475
|
+
|
|
4476
|
+
# Optional. Specifies a list of rate limit HTTP rules to match against the
|
|
4477
|
+
# incoming request.
|
|
4478
|
+
# Corresponds to the JSON property `httpRules`
|
|
4479
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRule>]
|
|
4480
|
+
attr_accessor :http_rules
|
|
4481
|
+
|
|
4482
|
+
# Optional. Stores labels as key value pairs.
|
|
4483
|
+
# Corresponds to the JSON property `labels`
|
|
4484
|
+
# @return [Hash<String,String>]
|
|
4485
|
+
attr_accessor :labels
|
|
4486
|
+
|
|
4487
|
+
# Identifier. Specifies the name of the `RateLimitPolicy` resource.
|
|
4488
|
+
# Corresponds to the JSON property `name`
|
|
4489
|
+
# @return [String]
|
|
4490
|
+
attr_accessor :name
|
|
4491
|
+
|
|
4492
|
+
# Optional. Specifies a list of rate limit buckets to be used for rate limiting.
|
|
4493
|
+
# Rate limit buckets will be referenced by the rate limit actions by name.
|
|
4494
|
+
# Corresponds to the JSON property `rateLimitBuckets`
|
|
4495
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucket>]
|
|
4496
|
+
attr_accessor :rate_limit_buckets
|
|
4497
|
+
|
|
4498
|
+
# Required. Specifies a list of targets to which this policy applies.
|
|
4499
|
+
# Corresponds to the JSON property `targets`
|
|
4500
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyTarget>]
|
|
4501
|
+
attr_accessor :targets
|
|
4502
|
+
|
|
4503
|
+
# Output only. Represents the update timestamp.
|
|
4504
|
+
# Corresponds to the JSON property `updateTime`
|
|
4505
|
+
# @return [String]
|
|
4506
|
+
attr_accessor :update_time
|
|
4507
|
+
|
|
4508
|
+
def initialize(**args)
|
|
4509
|
+
update!(**args)
|
|
4510
|
+
end
|
|
4511
|
+
|
|
4512
|
+
# Update properties of this object
|
|
4513
|
+
def update!(**args)
|
|
4514
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
|
4515
|
+
@description = args[:description] if args.key?(:description)
|
|
4516
|
+
@http_rules = args[:http_rules] if args.key?(:http_rules)
|
|
4517
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
4518
|
+
@name = args[:name] if args.key?(:name)
|
|
4519
|
+
@rate_limit_buckets = args[:rate_limit_buckets] if args.key?(:rate_limit_buckets)
|
|
4520
|
+
@targets = args[:targets] if args.key?(:targets)
|
|
4521
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
|
4522
|
+
end
|
|
4523
|
+
end
|
|
4524
|
+
|
|
4525
|
+
# Describes properties of a rate limit bucket.
|
|
4526
|
+
class RateLimitPolicyRateLimitBucket
|
|
4527
|
+
include Google::Apis::Core::Hashable
|
|
4528
|
+
|
|
4529
|
+
# Describes a limit for enforcement.
|
|
4530
|
+
# Corresponds to the JSON property `defaultLimit`
|
|
4531
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketLimit]
|
|
4532
|
+
attr_accessor :default_limit
|
|
4533
|
+
|
|
4534
|
+
# Optional. Specifies whether the rate limit bucket is in dry-run mode.
|
|
4535
|
+
# Corresponds to the JSON property `dryRun`
|
|
4536
|
+
# @return [Boolean]
|
|
4537
|
+
attr_accessor :dry_run
|
|
4538
|
+
alias_method :dry_run?, :dry_run
|
|
4539
|
+
|
|
4540
|
+
# Required. Specifies the keys to use for rate limiting. At least one key is
|
|
4541
|
+
# required. If multiple keys are specified, the keys will be combined and used
|
|
4542
|
+
# as a single key.
|
|
4543
|
+
# Corresponds to the JSON property `keys`
|
|
4544
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketKey>]
|
|
4545
|
+
attr_accessor :keys
|
|
4546
|
+
|
|
4547
|
+
# Required. Specifies the name of the rate limit bucket. Name will be used to
|
|
4548
|
+
# reference the bucket in the RateLimitAction.
|
|
4549
|
+
# Corresponds to the JSON property `name`
|
|
4550
|
+
# @return [String]
|
|
4551
|
+
attr_accessor :name
|
|
4552
|
+
|
|
4553
|
+
# Optional. Specifies a list of user overrides to apply to the rate limit bucket.
|
|
4554
|
+
# Corresponds to the JSON property `userOverrides`
|
|
4555
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketUserOverride>]
|
|
4556
|
+
attr_accessor :user_overrides
|
|
4557
|
+
|
|
4558
|
+
def initialize(**args)
|
|
4559
|
+
update!(**args)
|
|
4560
|
+
end
|
|
4561
|
+
|
|
4562
|
+
# Update properties of this object
|
|
4563
|
+
def update!(**args)
|
|
4564
|
+
@default_limit = args[:default_limit] if args.key?(:default_limit)
|
|
4565
|
+
@dry_run = args[:dry_run] if args.key?(:dry_run)
|
|
4566
|
+
@keys = args[:keys] if args.key?(:keys)
|
|
4567
|
+
@name = args[:name] if args.key?(:name)
|
|
4568
|
+
@user_overrides = args[:user_overrides] if args.key?(:user_overrides)
|
|
4569
|
+
end
|
|
4570
|
+
end
|
|
4571
|
+
|
|
4572
|
+
# Describes the count limit for enforcement.
|
|
4573
|
+
class RateLimitPolicyRateLimitBucketCountLimit
|
|
4574
|
+
include Google::Apis::Core::Hashable
|
|
4575
|
+
|
|
4576
|
+
# Required. Specifies the maximum number of costs allowed in the specified
|
|
4577
|
+
# interval. Must be non-negative.
|
|
4578
|
+
# Corresponds to the JSON property `count`
|
|
4579
|
+
# @return [Fixnum]
|
|
4580
|
+
attr_accessor :count
|
|
4581
|
+
|
|
4582
|
+
# Required. Specifies the interval in units for which the count limit is
|
|
4583
|
+
# enforced. Must be positive.
|
|
4584
|
+
# Corresponds to the JSON property `interval`
|
|
4585
|
+
# @return [Fixnum]
|
|
4586
|
+
attr_accessor :interval
|
|
4587
|
+
|
|
4588
|
+
# Required. Specifies the unit of the interval. Defaults to MINUTES.
|
|
4589
|
+
# Corresponds to the JSON property `intervalUnit`
|
|
4590
|
+
# @return [String]
|
|
4591
|
+
attr_accessor :interval_unit
|
|
4592
|
+
|
|
4593
|
+
def initialize(**args)
|
|
4594
|
+
update!(**args)
|
|
4595
|
+
end
|
|
4596
|
+
|
|
4597
|
+
# Update properties of this object
|
|
4598
|
+
def update!(**args)
|
|
4599
|
+
@count = args[:count] if args.key?(:count)
|
|
4600
|
+
@interval = args[:interval] if args.key?(:interval)
|
|
4601
|
+
@interval_unit = args[:interval_unit] if args.key?(:interval_unit)
|
|
4602
|
+
end
|
|
4603
|
+
end
|
|
4604
|
+
|
|
4605
|
+
# Describes properties of a key to use for rate limiting.
|
|
4606
|
+
class RateLimitPolicyRateLimitBucketKey
|
|
4607
|
+
include Google::Apis::Core::Hashable
|
|
4608
|
+
|
|
4609
|
+
# Optional. Specifies the header name if key_type is HTTP_HEADER.
|
|
4610
|
+
# Corresponds to the JSON property `header`
|
|
4611
|
+
# @return [String]
|
|
4612
|
+
attr_accessor :header
|
|
4613
|
+
|
|
4614
|
+
# Required. Specifies the type of key to use for rate limiting.
|
|
4615
|
+
# Corresponds to the JSON property `keyType`
|
|
4616
|
+
# @return [String]
|
|
4617
|
+
attr_accessor :key_type
|
|
4618
|
+
|
|
4619
|
+
# Optional. Specifies the principal type if key_type is PRINCIPAL.
|
|
4620
|
+
# Corresponds to the JSON property `principalType`
|
|
4621
|
+
# @return [String]
|
|
4622
|
+
attr_accessor :principal_type
|
|
4623
|
+
|
|
4624
|
+
def initialize(**args)
|
|
4625
|
+
update!(**args)
|
|
4626
|
+
end
|
|
4627
|
+
|
|
4628
|
+
# Update properties of this object
|
|
4629
|
+
def update!(**args)
|
|
4630
|
+
@header = args[:header] if args.key?(:header)
|
|
4631
|
+
@key_type = args[:key_type] if args.key?(:key_type)
|
|
4632
|
+
@principal_type = args[:principal_type] if args.key?(:principal_type)
|
|
4633
|
+
end
|
|
4634
|
+
end
|
|
4635
|
+
|
|
4636
|
+
# Describes a limit for enforcement.
|
|
4637
|
+
class RateLimitPolicyRateLimitBucketLimit
|
|
4638
|
+
include Google::Apis::Core::Hashable
|
|
4639
|
+
|
|
4640
|
+
# Describes the count limit for enforcement.
|
|
4641
|
+
# Corresponds to the JSON property `countLimit`
|
|
4642
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketCountLimit]
|
|
4643
|
+
attr_accessor :count_limit
|
|
4644
|
+
|
|
4645
|
+
def initialize(**args)
|
|
4646
|
+
update!(**args)
|
|
4647
|
+
end
|
|
4648
|
+
|
|
4649
|
+
# Update properties of this object
|
|
4650
|
+
def update!(**args)
|
|
4651
|
+
@count_limit = args[:count_limit] if args.key?(:count_limit)
|
|
4652
|
+
end
|
|
4653
|
+
end
|
|
4654
|
+
|
|
4655
|
+
# Describes properties of a user override for the rate limit bucket.
|
|
4656
|
+
class RateLimitPolicyRateLimitBucketUserOverride
|
|
4657
|
+
include Google::Apis::Core::Hashable
|
|
4658
|
+
|
|
4659
|
+
# Describes a limit for enforcement.
|
|
4660
|
+
# Corresponds to the JSON property `limit`
|
|
4661
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketLimit]
|
|
4662
|
+
attr_accessor :limit
|
|
4663
|
+
|
|
4664
|
+
# Specifies the key to override. Key fields must match the key types specified
|
|
4665
|
+
# in the rate limit bucket. Key type ALL does not support overrides.
|
|
4666
|
+
# Corresponds to the JSON property `overrideKey`
|
|
4667
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketUserOverrideOverrideKey]
|
|
4668
|
+
attr_accessor :override_key
|
|
4669
|
+
|
|
4670
|
+
def initialize(**args)
|
|
4671
|
+
update!(**args)
|
|
4672
|
+
end
|
|
4673
|
+
|
|
4674
|
+
# Update properties of this object
|
|
4675
|
+
def update!(**args)
|
|
4676
|
+
@limit = args[:limit] if args.key?(:limit)
|
|
4677
|
+
@override_key = args[:override_key] if args.key?(:override_key)
|
|
4678
|
+
end
|
|
4679
|
+
end
|
|
4680
|
+
|
|
4681
|
+
# Specifies the key to override. Key fields must match the key types specified
|
|
4682
|
+
# in the rate limit bucket. Key type ALL does not support overrides.
|
|
4683
|
+
class RateLimitPolicyRateLimitBucketUserOverrideOverrideKey
|
|
4684
|
+
include Google::Apis::Core::Hashable
|
|
4685
|
+
|
|
4686
|
+
# Optional. Specifies the HTTP headers if the rate limit bucket keys contain
|
|
4687
|
+
# keys of type HTTP_HEADER. Number of headers and header names must match the
|
|
4688
|
+
# rate limit bucket key.
|
|
4689
|
+
# Corresponds to the JSON property `httpHeaders`
|
|
4690
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketUserOverrideOverrideKeyHttpHeader>]
|
|
4691
|
+
attr_accessor :http_headers
|
|
4692
|
+
|
|
4693
|
+
# Optional. Specifies the HTTP path if the rate limit bucket keys contain a key
|
|
4694
|
+
# of type HTTP_PATH.
|
|
4695
|
+
# Corresponds to the JSON property `httpPath`
|
|
4696
|
+
# @return [String]
|
|
4697
|
+
attr_accessor :http_path
|
|
4698
|
+
|
|
4699
|
+
# Optional. Specifies the MCP tool if the rate limit bucket keys contain a key
|
|
4700
|
+
# of type MCP_TOOL.
|
|
4701
|
+
# Corresponds to the JSON property `mcpTool`
|
|
4702
|
+
# @return [String]
|
|
4703
|
+
attr_accessor :mcp_tool
|
|
4704
|
+
|
|
4705
|
+
# Optional. Specifies the principals if the rate limit bucket keys contain keys
|
|
4706
|
+
# of PRINCIPAL. Number of principals and principal types must match the rate
|
|
4707
|
+
# limit bucket key.
|
|
4708
|
+
# Corresponds to the JSON property `principals`
|
|
4709
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitBucketUserOverrideOverrideKeyPrincipal>]
|
|
4710
|
+
attr_accessor :principals
|
|
4711
|
+
|
|
4712
|
+
# Optional. Specifies the source IP if the rate limit bucket keys contain a key
|
|
4713
|
+
# of type SOURCE_IP.
|
|
4714
|
+
# Corresponds to the JSON property `sourceIp`
|
|
4715
|
+
# @return [String]
|
|
4716
|
+
attr_accessor :source_ip
|
|
4717
|
+
|
|
4718
|
+
def initialize(**args)
|
|
4719
|
+
update!(**args)
|
|
4720
|
+
end
|
|
4721
|
+
|
|
4722
|
+
# Update properties of this object
|
|
4723
|
+
def update!(**args)
|
|
4724
|
+
@http_headers = args[:http_headers] if args.key?(:http_headers)
|
|
4725
|
+
@http_path = args[:http_path] if args.key?(:http_path)
|
|
4726
|
+
@mcp_tool = args[:mcp_tool] if args.key?(:mcp_tool)
|
|
4727
|
+
@principals = args[:principals] if args.key?(:principals)
|
|
4728
|
+
@source_ip = args[:source_ip] if args.key?(:source_ip)
|
|
4729
|
+
end
|
|
4730
|
+
end
|
|
4731
|
+
|
|
4732
|
+
# Specifies the key in the type HTTP header to override.
|
|
4733
|
+
class RateLimitPolicyRateLimitBucketUserOverrideOverrideKeyHttpHeader
|
|
4734
|
+
include Google::Apis::Core::Hashable
|
|
4735
|
+
|
|
4736
|
+
# Required. Specifies the header name of the key.
|
|
4737
|
+
# Corresponds to the JSON property `header`
|
|
4738
|
+
# @return [String]
|
|
4739
|
+
attr_accessor :header
|
|
4740
|
+
|
|
4741
|
+
# Required. Specifies the header value of the key.
|
|
4742
|
+
# Corresponds to the JSON property `value`
|
|
4743
|
+
# @return [String]
|
|
4744
|
+
attr_accessor :value
|
|
4745
|
+
|
|
4746
|
+
def initialize(**args)
|
|
4747
|
+
update!(**args)
|
|
4748
|
+
end
|
|
4749
|
+
|
|
4750
|
+
# Update properties of this object
|
|
4751
|
+
def update!(**args)
|
|
4752
|
+
@header = args[:header] if args.key?(:header)
|
|
4753
|
+
@value = args[:value] if args.key?(:value)
|
|
4754
|
+
end
|
|
4755
|
+
end
|
|
4756
|
+
|
|
4757
|
+
# Specifies the key in the type PRINCIPAL to override.
|
|
4758
|
+
class RateLimitPolicyRateLimitBucketUserOverrideOverrideKeyPrincipal
|
|
4759
|
+
include Google::Apis::Core::Hashable
|
|
4760
|
+
|
|
4761
|
+
# Required. Specifies the principal value of the key.
|
|
4762
|
+
# Corresponds to the JSON property `principal`
|
|
4763
|
+
# @return [String]
|
|
4764
|
+
attr_accessor :principal
|
|
4765
|
+
|
|
4766
|
+
# Required. Specifies the principal type of the key.
|
|
4767
|
+
# Corresponds to the JSON property `principalType`
|
|
4768
|
+
# @return [String]
|
|
4769
|
+
attr_accessor :principal_type
|
|
4770
|
+
|
|
4771
|
+
def initialize(**args)
|
|
4772
|
+
update!(**args)
|
|
4773
|
+
end
|
|
4774
|
+
|
|
4775
|
+
# Update properties of this object
|
|
4776
|
+
def update!(**args)
|
|
4777
|
+
@principal = args[:principal] if args.key?(:principal)
|
|
4778
|
+
@principal_type = args[:principal_type] if args.key?(:principal_type)
|
|
4779
|
+
end
|
|
4780
|
+
end
|
|
4781
|
+
|
|
4782
|
+
# Specifies conditions to match against the incoming request.
|
|
4783
|
+
class RateLimitPolicyRateLimitRule
|
|
4784
|
+
include Google::Apis::Core::Hashable
|
|
4785
|
+
|
|
4786
|
+
# Describes properties of the sources of a request.
|
|
4787
|
+
# Corresponds to the JSON property `from`
|
|
4788
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleFrom]
|
|
4789
|
+
attr_accessor :from
|
|
4790
|
+
|
|
4791
|
+
# Optional. Specifies the actions to take when this rule is matched.
|
|
4792
|
+
# Corresponds to the JSON property `rateLimitActions`
|
|
4793
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleRateLimitAction>]
|
|
4794
|
+
attr_accessor :rate_limit_actions
|
|
4795
|
+
|
|
4796
|
+
# Describes properties of the targets of a request.
|
|
4797
|
+
# Corresponds to the JSON property `to`
|
|
4798
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleTo]
|
|
4799
|
+
attr_accessor :to
|
|
4800
|
+
|
|
4801
|
+
def initialize(**args)
|
|
4802
|
+
update!(**args)
|
|
4803
|
+
end
|
|
4804
|
+
|
|
4805
|
+
# Update properties of this object
|
|
4806
|
+
def update!(**args)
|
|
4807
|
+
@from = args[:from] if args.key?(:from)
|
|
4808
|
+
@rate_limit_actions = args[:rate_limit_actions] if args.key?(:rate_limit_actions)
|
|
4809
|
+
@to = args[:to] if args.key?(:to)
|
|
4810
|
+
end
|
|
4811
|
+
end
|
|
4812
|
+
|
|
4813
|
+
# Describes properties of the sources of a request.
|
|
4814
|
+
class RateLimitPolicyRateLimitRuleFrom
|
|
4815
|
+
include Google::Apis::Core::Hashable
|
|
4816
|
+
|
|
4817
|
+
# Describes the properties of a request source.
|
|
4818
|
+
# Corresponds to the JSON property `notSource`
|
|
4819
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleFromSource]
|
|
4820
|
+
attr_accessor :not_source
|
|
4821
|
+
|
|
4822
|
+
# Describes the properties of a request source.
|
|
4823
|
+
# Corresponds to the JSON property `source`
|
|
4824
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleFromSource]
|
|
4825
|
+
attr_accessor :source
|
|
4826
|
+
|
|
4827
|
+
def initialize(**args)
|
|
4828
|
+
update!(**args)
|
|
4829
|
+
end
|
|
4830
|
+
|
|
4831
|
+
# Update properties of this object
|
|
4832
|
+
def update!(**args)
|
|
4833
|
+
@not_source = args[:not_source] if args.key?(:not_source)
|
|
4834
|
+
@source = args[:source] if args.key?(:source)
|
|
4835
|
+
end
|
|
4836
|
+
end
|
|
4837
|
+
|
|
4838
|
+
# Describes the properties of a request source.
|
|
4839
|
+
class RateLimitPolicyRateLimitRuleFromSource
|
|
4840
|
+
include Google::Apis::Core::Hashable
|
|
4841
|
+
|
|
4842
|
+
# Required. Contains a list of identities derived from the client's certificate.
|
|
4843
|
+
# This field does not match on a request unless frontend mutual TLS is enabled
|
|
4844
|
+
# for the Gateway and the client certificate is successfully validated by mTLS.
|
|
4845
|
+
# Each identity is a string whose value is matched against a list of URI SANs,
|
|
4846
|
+
# DNS Name SANs, or the common name in the client's certificate. A match happens
|
|
4847
|
+
# when any principal matches with the rule.
|
|
4848
|
+
# Corresponds to the JSON property `principals`
|
|
4849
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRulePrincipal>]
|
|
4850
|
+
attr_accessor :principals
|
|
4851
|
+
|
|
4852
|
+
def initialize(**args)
|
|
4853
|
+
update!(**args)
|
|
4854
|
+
end
|
|
4855
|
+
|
|
4856
|
+
# Update properties of this object
|
|
4857
|
+
def update!(**args)
|
|
4858
|
+
@principals = args[:principals] if args.key?(:principals)
|
|
4859
|
+
end
|
|
4860
|
+
end
|
|
4861
|
+
|
|
4862
|
+
# Determines how an HTTP header is matched.
|
|
4863
|
+
class RateLimitPolicyRateLimitRuleHeaderMatch
|
|
4864
|
+
include Google::Apis::Core::Hashable
|
|
4865
|
+
|
|
4866
|
+
# Optional. Specifies the name of the header in the request.
|
|
4867
|
+
# Corresponds to the JSON property `name`
|
|
4868
|
+
# @return [String]
|
|
4869
|
+
attr_accessor :name
|
|
4870
|
+
|
|
4871
|
+
# Determines how a string value is matched.
|
|
4872
|
+
# Corresponds to the JSON property `value`
|
|
4873
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleStringMatch]
|
|
4874
|
+
attr_accessor :value
|
|
4875
|
+
|
|
4876
|
+
def initialize(**args)
|
|
4877
|
+
update!(**args)
|
|
4878
|
+
end
|
|
4879
|
+
|
|
4880
|
+
# Update properties of this object
|
|
4881
|
+
def update!(**args)
|
|
4882
|
+
@name = args[:name] if args.key?(:name)
|
|
4883
|
+
@value = args[:value] if args.key?(:value)
|
|
4884
|
+
end
|
|
4885
|
+
end
|
|
4886
|
+
|
|
4887
|
+
# Describes the properties of a principal for matching.
|
|
4888
|
+
class RateLimitPolicyRateLimitRulePrincipal
|
|
4889
|
+
include Google::Apis::Core::Hashable
|
|
4890
|
+
|
|
4891
|
+
# Determines how a string value is matched.
|
|
4892
|
+
# Corresponds to the JSON property `principal`
|
|
4893
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleStringMatch]
|
|
4894
|
+
attr_accessor :principal
|
|
4895
|
+
|
|
4896
|
+
# Optional. Decides what principal value the principal rule will match against.
|
|
4897
|
+
# If not specified, defaults to CLIENT_CERT_URI_SAN.
|
|
4898
|
+
# Corresponds to the JSON property `principalSelector`
|
|
4899
|
+
# @return [String]
|
|
4900
|
+
attr_accessor :principal_selector
|
|
4901
|
+
|
|
4902
|
+
def initialize(**args)
|
|
4903
|
+
update!(**args)
|
|
4904
|
+
end
|
|
4905
|
+
|
|
4906
|
+
# Update properties of this object
|
|
4907
|
+
def update!(**args)
|
|
4908
|
+
@principal = args[:principal] if args.key?(:principal)
|
|
4909
|
+
@principal_selector = args[:principal_selector] if args.key?(:principal_selector)
|
|
4910
|
+
end
|
|
4911
|
+
end
|
|
4912
|
+
|
|
4913
|
+
# Describes the action to take when the rate limit rule is matched.
|
|
4914
|
+
class RateLimitPolicyRateLimitRuleRateLimitAction
|
|
4915
|
+
include Google::Apis::Core::Hashable
|
|
4916
|
+
|
|
4917
|
+
# Required. Specifies the name of the rate limit bucket to apply when this rule
|
|
4918
|
+
# is matched.
|
|
4919
|
+
# Corresponds to the JSON property `rateLimitBucket`
|
|
4920
|
+
# @return [String]
|
|
4921
|
+
attr_accessor :rate_limit_bucket
|
|
4922
|
+
|
|
4923
|
+
def initialize(**args)
|
|
4924
|
+
update!(**args)
|
|
4925
|
+
end
|
|
4926
|
+
|
|
4927
|
+
# Update properties of this object
|
|
4928
|
+
def update!(**args)
|
|
4929
|
+
@rate_limit_bucket = args[:rate_limit_bucket] if args.key?(:rate_limit_bucket)
|
|
4930
|
+
end
|
|
4931
|
+
end
|
|
4932
|
+
|
|
4933
|
+
# Determines how a string value is matched.
|
|
4934
|
+
class RateLimitPolicyRateLimitRuleStringMatch
|
|
4935
|
+
include Google::Apis::Core::Hashable
|
|
4936
|
+
|
|
4937
|
+
# Checks if the input string contains the substring specified here. Note: empty
|
|
4938
|
+
# contains match is not allowed, please use regex instead. Examples: * ``abc``
|
|
4939
|
+
# matches the value ``xyz.abc.def``
|
|
4940
|
+
# Corresponds to the JSON property `contains`
|
|
4941
|
+
# @return [String]
|
|
4942
|
+
attr_accessor :contains
|
|
4943
|
+
|
|
4944
|
+
# Matches the input string exactly to the string specified here. Examples: * ``
|
|
4945
|
+
# abc`` only matches the value ``abc``.
|
|
4946
|
+
# Corresponds to the JSON property `exact`
|
|
4947
|
+
# @return [String]
|
|
4948
|
+
attr_accessor :exact
|
|
4949
|
+
|
|
4950
|
+
# Optional. Indicates if the exact/prefix/suffix/contains matching should be
|
|
4951
|
+
# case insensitive. For example, when true, the matcher ``data`` matches both
|
|
4952
|
+
# input strings ``Data`` and ``data``.
|
|
4953
|
+
# Corresponds to the JSON property `ignoreCase`
|
|
4954
|
+
# @return [Boolean]
|
|
4955
|
+
attr_accessor :ignore_case
|
|
4956
|
+
alias_method :ignore_case?, :ignore_case
|
|
4957
|
+
|
|
4958
|
+
# Checks if the input string has the prefix specified here. Note: empty prefix
|
|
4959
|
+
# is not allowed, please use regex instead. Examples: * ``abc`` matches the
|
|
4960
|
+
# value ``abc.xyz``
|
|
4961
|
+
# Corresponds to the JSON property `prefix`
|
|
4962
|
+
# @return [String]
|
|
4963
|
+
attr_accessor :prefix
|
|
4964
|
+
|
|
4965
|
+
# Checks if the input string has the suffix specified here. Note: empty suffix
|
|
4966
|
+
# is not allowed, please use regex instead. Examples: * ``abc`` matches the
|
|
4967
|
+
# value ``xyz.abc``
|
|
4968
|
+
# Corresponds to the JSON property `suffix`
|
|
4969
|
+
# @return [String]
|
|
4970
|
+
attr_accessor :suffix
|
|
4971
|
+
|
|
4972
|
+
def initialize(**args)
|
|
4973
|
+
update!(**args)
|
|
4974
|
+
end
|
|
4975
|
+
|
|
4976
|
+
# Update properties of this object
|
|
4977
|
+
def update!(**args)
|
|
4978
|
+
@contains = args[:contains] if args.key?(:contains)
|
|
4979
|
+
@exact = args[:exact] if args.key?(:exact)
|
|
4980
|
+
@ignore_case = args[:ignore_case] if args.key?(:ignore_case)
|
|
4981
|
+
@prefix = args[:prefix] if args.key?(:prefix)
|
|
4982
|
+
@suffix = args[:suffix] if args.key?(:suffix)
|
|
4983
|
+
end
|
|
4984
|
+
end
|
|
4985
|
+
|
|
4986
|
+
# Describes properties of the targets of a request.
|
|
4987
|
+
class RateLimitPolicyRateLimitRuleTo
|
|
4988
|
+
include Google::Apis::Core::Hashable
|
|
4989
|
+
|
|
4990
|
+
# Describes properties of a request target.
|
|
4991
|
+
# Corresponds to the JSON property `destination`
|
|
4992
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleToDestination]
|
|
4993
|
+
attr_accessor :destination
|
|
4994
|
+
|
|
4995
|
+
# Describes properties of a request target.
|
|
4996
|
+
# Corresponds to the JSON property `notDestination`
|
|
4997
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleToDestination]
|
|
4998
|
+
attr_accessor :not_destination
|
|
4999
|
+
|
|
5000
|
+
def initialize(**args)
|
|
5001
|
+
update!(**args)
|
|
5002
|
+
end
|
|
5003
|
+
|
|
5004
|
+
# Update properties of this object
|
|
5005
|
+
def update!(**args)
|
|
5006
|
+
@destination = args[:destination] if args.key?(:destination)
|
|
5007
|
+
@not_destination = args[:not_destination] if args.key?(:not_destination)
|
|
5008
|
+
end
|
|
5009
|
+
end
|
|
5010
|
+
|
|
5011
|
+
# Describes properties of a request target.
|
|
5012
|
+
class RateLimitPolicyRateLimitRuleToDestination
|
|
5013
|
+
include Google::Apis::Core::Hashable
|
|
5014
|
+
|
|
5015
|
+
# Describes a set of HTTP headers to match against.
|
|
5016
|
+
# Corresponds to the JSON property `headerSet`
|
|
5017
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleToDestinationHeaderSet]
|
|
5018
|
+
attr_accessor :header_set
|
|
5019
|
+
|
|
5020
|
+
# Optional. Specifies a list of HTTP Hosts to match against. The match can be
|
|
5021
|
+
# one of exact, prefix, suffix, or contains (substring match). Matches are
|
|
5022
|
+
# always case sensitive unless the ignoreCase is set. The match follows OR
|
|
5023
|
+
# semantics which means that if any of the hosts match, the operation is
|
|
5024
|
+
# considered to be matched.
|
|
5025
|
+
# Corresponds to the JSON property `hosts`
|
|
5026
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleStringMatch>]
|
|
5027
|
+
attr_accessor :hosts
|
|
5028
|
+
|
|
5029
|
+
# Describes a set of MCP protocol attributes to match against for a given MCP
|
|
5030
|
+
# request. This field is only valid if the targeted Gateway or Forwarding Rule
|
|
5031
|
+
# has an Agent Gateway attached to it.
|
|
5032
|
+
# Corresponds to the JSON property `mcp`
|
|
5033
|
+
# @return [Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleToDestinationMcp]
|
|
5034
|
+
attr_accessor :mcp
|
|
5035
|
+
|
|
5036
|
+
# Optional. Specifies a list of HTTP methods to match against. Each entry must
|
|
5037
|
+
# be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It
|
|
5038
|
+
# only allows exact match and is always case sensitive. The match follows OR
|
|
5039
|
+
# semantics which means that if any of the methods match, the operation is
|
|
5040
|
+
# considered to be matched.
|
|
5041
|
+
# Corresponds to the JSON property `methods`
|
|
5042
|
+
# @return [Array<String>]
|
|
5043
|
+
attr_accessor :methods_prop
|
|
5044
|
+
|
|
5045
|
+
# Optional. Specifies a list of paths to match against. The match can be one of
|
|
5046
|
+
# exact, prefix, suffix, or contains (substring match). Matches are always case
|
|
5047
|
+
# sensitive unless the ignoreCase is set. The match follows OR semantics which
|
|
5048
|
+
# means that if any of the paths match, the operation is considered to be
|
|
5049
|
+
# matched. Note that this path match includes the query parameters. For gRPC
|
|
5050
|
+
# services, this should be a fully-qualified name of the form /package.service/
|
|
5051
|
+
# method.
|
|
5052
|
+
# Corresponds to the JSON property `paths`
|
|
5053
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleStringMatch>]
|
|
5054
|
+
attr_accessor :paths
|
|
5055
|
+
|
|
5056
|
+
def initialize(**args)
|
|
5057
|
+
update!(**args)
|
|
5058
|
+
end
|
|
5059
|
+
|
|
5060
|
+
# Update properties of this object
|
|
5061
|
+
def update!(**args)
|
|
5062
|
+
@header_set = args[:header_set] if args.key?(:header_set)
|
|
5063
|
+
@hosts = args[:hosts] if args.key?(:hosts)
|
|
5064
|
+
@mcp = args[:mcp] if args.key?(:mcp)
|
|
5065
|
+
@methods_prop = args[:methods_prop] if args.key?(:methods_prop)
|
|
5066
|
+
@paths = args[:paths] if args.key?(:paths)
|
|
5067
|
+
end
|
|
5068
|
+
end
|
|
5069
|
+
|
|
5070
|
+
# Describes a set of HTTP headers to match against.
|
|
5071
|
+
class RateLimitPolicyRateLimitRuleToDestinationHeaderSet
|
|
5072
|
+
include Google::Apis::Core::Hashable
|
|
5073
|
+
|
|
5074
|
+
# Required. Contains a list of headers to match against in http header. The
|
|
5075
|
+
# match can be one of exact, prefix, suffix, or contains (substring match). The
|
|
5076
|
+
# match follows AND semantics which means all the headers must match. Matches
|
|
5077
|
+
# are always case sensitive unless the ignoreCase is set.
|
|
5078
|
+
# Corresponds to the JSON property `headers`
|
|
5079
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleHeaderMatch>]
|
|
5080
|
+
attr_accessor :headers
|
|
5081
|
+
|
|
5082
|
+
def initialize(**args)
|
|
5083
|
+
update!(**args)
|
|
5084
|
+
end
|
|
5085
|
+
|
|
5086
|
+
# Update properties of this object
|
|
5087
|
+
def update!(**args)
|
|
5088
|
+
@headers = args[:headers] if args.key?(:headers)
|
|
5089
|
+
end
|
|
5090
|
+
end
|
|
5091
|
+
|
|
5092
|
+
# Describes a set of MCP protocol attributes to match against for a given MCP
|
|
5093
|
+
# request. This field is only valid if the targeted Gateway or Forwarding Rule
|
|
5094
|
+
# has an Agent Gateway attached to it.
|
|
5095
|
+
class RateLimitPolicyRateLimitRuleToDestinationMcp
|
|
5096
|
+
include Google::Apis::Core::Hashable
|
|
5097
|
+
|
|
5098
|
+
# Optional. If specified, matches on the MCP protocol’s non-access specific
|
|
5099
|
+
# methods namely: * initialize * completion/ * logging/ * notifications/ * ping
|
|
5100
|
+
# Defaults to SKIP_BASE_PROTOCOL_METHODS if not specified.
|
|
5101
|
+
# Corresponds to the JSON property `baseProtocolMethodsOption`
|
|
5102
|
+
# @return [String]
|
|
5103
|
+
attr_accessor :base_protocol_methods_option
|
|
5104
|
+
|
|
5105
|
+
# Optional. A list of MCP methods and associated parameter names to match on. It
|
|
5106
|
+
# is recommended to use this field to match on tools, prompts and resource
|
|
5107
|
+
# accesses while setting the baseProtocolMethodsOption to
|
|
5108
|
+
# MATCH_BASE_PROTOCOL_METHODS to match on all the other MCP protocol methods.
|
|
5109
|
+
# Limited to 10 MCP methods per Rate Limit Policy.
|
|
5110
|
+
# Corresponds to the JSON property `methods`
|
|
5111
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleToDestinationMcpMethod>]
|
|
5112
|
+
attr_accessor :methods_prop
|
|
5113
|
+
|
|
5114
|
+
def initialize(**args)
|
|
5115
|
+
update!(**args)
|
|
5116
|
+
end
|
|
5117
|
+
|
|
5118
|
+
# Update properties of this object
|
|
5119
|
+
def update!(**args)
|
|
5120
|
+
@base_protocol_methods_option = args[:base_protocol_methods_option] if args.key?(:base_protocol_methods_option)
|
|
5121
|
+
@methods_prop = args[:methods_prop] if args.key?(:methods_prop)
|
|
5122
|
+
end
|
|
5123
|
+
end
|
|
5124
|
+
|
|
5125
|
+
# Describes a set of MCP methods to match against. This field is only valid if
|
|
5126
|
+
# the targeted Gateway or Forwarding Rule has an Agent Gateway attached to it.
|
|
5127
|
+
class RateLimitPolicyRateLimitRuleToDestinationMcpMethod
|
|
5128
|
+
include Google::Apis::Core::Hashable
|
|
5129
|
+
|
|
5130
|
+
# Required. Specifies the MCP method to match against. Allowed values are as
|
|
5131
|
+
# follows: 1. `tools`, `prompts`, `resources` - these will match against all sub
|
|
5132
|
+
# methods under the respective methods. 2. `prompts/list`, `tools/list`, `
|
|
5133
|
+
# resources/list`, `resources/templates/list` 3. `prompts/get`, `tools/call`, `
|
|
5134
|
+
# resources/subscribe`, `resources/unsubscribe`, `resources/read` Params cannot
|
|
5135
|
+
# be specified for categories 1 and 2.
|
|
5136
|
+
# Corresponds to the JSON property `name`
|
|
5137
|
+
# @return [String]
|
|
5138
|
+
attr_accessor :name
|
|
5139
|
+
|
|
5140
|
+
# Optional. Specifies a list of MCP method parameter names to match against. The
|
|
5141
|
+
# match can be one of exact, prefix, suffix, or contains (substring match).
|
|
5142
|
+
# Matches are always case sensitive unless the ignoreCase is set.
|
|
5143
|
+
# Corresponds to the JSON property `params`
|
|
5144
|
+
# @return [Array<Google::Apis::NetworksecurityV1beta1::RateLimitPolicyRateLimitRuleStringMatch>]
|
|
5145
|
+
attr_accessor :params
|
|
5146
|
+
|
|
5147
|
+
def initialize(**args)
|
|
5148
|
+
update!(**args)
|
|
5149
|
+
end
|
|
5150
|
+
|
|
5151
|
+
# Update properties of this object
|
|
5152
|
+
def update!(**args)
|
|
5153
|
+
@name = args[:name] if args.key?(:name)
|
|
5154
|
+
@params = args[:params] if args.key?(:params)
|
|
5155
|
+
end
|
|
5156
|
+
end
|
|
5157
|
+
|
|
5158
|
+
# Specifies the target to which this policy applies.
|
|
5159
|
+
class RateLimitPolicyTarget
|
|
5160
|
+
include Google::Apis::Core::Hashable
|
|
5161
|
+
|
|
5162
|
+
# Required. Reference to a Gateway or Forwarding Rule resource on which this
|
|
5163
|
+
# policy will be applied.
|
|
5164
|
+
# Corresponds to the JSON property `resource`
|
|
5165
|
+
# @return [String]
|
|
5166
|
+
attr_accessor :resource
|
|
5167
|
+
|
|
5168
|
+
def initialize(**args)
|
|
5169
|
+
update!(**args)
|
|
5170
|
+
end
|
|
5171
|
+
|
|
5172
|
+
# Update properties of this object
|
|
5173
|
+
def update!(**args)
|
|
5174
|
+
@resource = args[:resource] if args.key?(:resource)
|
|
5175
|
+
end
|
|
5176
|
+
end
|
|
5177
|
+
|
|
4431
5178
|
# Request used by the RemoveAddressGroupItems method.
|
|
4432
5179
|
class RemoveAddressGroupItemsRequest
|
|
4433
5180
|
include Google::Apis::Core::Hashable
|