@@ -278,6 +278,13 @@ class AuthzPolicy
278278 # @return [String]
279279 attr_accessor :name
280280
281+ # Optional. Immutable. Defines the type of authorization being performed. If not
282+ # specified, `REQUEST_AUTHZ` is applied. This field cannot be changed once
283+ # AuthzPolicy is created.
284+ # Corresponds to the JSON property `policyProfile`
285+ # @return [String]
286+ attr_accessor :policy_profile
287+
281288 # Specifies the set of targets to which this policy should be applied to.
282289 # Corresponds to the JSON property `target`
283290 # @return [Google::Apis::NetworksecurityV1::AuthzPolicyTarget]
@@ -301,6 +308,7 @@ def update!(**args)
301308 @http_rules = args [ :http_rules ] if args . key? ( :http_rules )
302309 @labels = args [ :labels ] if args . key? ( :labels )
303310 @name = args [ :name ] if args . key? ( :name )
311+ @policy_profile = args [ :policy_profile ] if args . key? ( :policy_profile )
304312 @target = args [ :target ] if args . key? ( :target )
305313 @update_time = args [ :update_time ] if args . key? ( :update_time )
306314 end
@@ -642,6 +650,12 @@ class AuthzPolicyAuthzRuleToRequestOperation
642650 # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
643651 attr_accessor :hosts
644652
653+ # Describes a set of MCP protocol attributes to match against for a given MCP
654+ # request.
655+ # Corresponds to the JSON property `mcp`
656+ # @return [Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleToRequestOperationMcp]
657+ attr_accessor :mcp
658+
645659 # Optional. A list of HTTP methods to match against. Each entry must be a valid
646660 # HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only
647661 # allows exact match and is always case sensitive. Limited to 10 methods per
@@ -668,6 +682,7 @@ def initialize(**args)
668682 def update! ( **args )
669683 @header_set = args [ :header_set ] if args . key? ( :header_set )
670684 @hosts = args [ :hosts ] if args . key? ( :hosts )
685+ @mcp = args [ :mcp ] if args . key? ( :mcp )
671686 @methods_prop = args [ :methods_prop ] if args . key? ( :methods_prop )
672687 @paths = args [ :paths ] if args . key? ( :paths )
673688 end
@@ -696,6 +711,71 @@ def update!(**args)
696711 end
697712 end
698713
714+ # Describes a set of MCP protocol attributes to match against for a given MCP
715+ # request.
716+ class AuthzPolicyAuthzRuleToRequestOperationMcp
717+ include Google ::Apis ::Core ::Hashable
718+
719+ # Optional. If specified, matches on the MCP protocol’s non-access specific
720+ # methods namely: * initialize * completion/ * logging/ * notifications/ * ping
721+ # Defaults to SKIP_BASE_PROTOCOL_METHODS if not specified.
722+ # Corresponds to the JSON property `baseProtocolMethodsOption`
723+ # @return [String]
724+ attr_accessor :base_protocol_methods_option
725+
726+ # Optional. A list of MCP methods and associated parameters to match on. It is
727+ # recommended to use this field to match on tools, prompts and resource accesses
728+ # while setting the baseProtocolMethodsOption to MATCH_BASE_PROTOCOL_METHODS to
729+ # match on all the other MCP protocol methods. Limited to 10 MCP methods per
730+ # Authorization Policy.
731+ # Corresponds to the JSON property `methods`
732+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleToRequestOperationMcpMethod>]
733+ attr_accessor :methods_prop
734+
735+ def initialize ( **args )
736+ update! ( **args )
737+ end
738+
739+ # Update properties of this object
740+ def update! ( **args )
741+ @base_protocol_methods_option = args [ :base_protocol_methods_option ] if args . key? ( :base_protocol_methods_option )
742+ @methods_prop = args [ :methods_prop ] if args . key? ( :methods_prop )
743+ end
744+ end
745+
746+ # Describes a set of MCP methods to match against.
747+ class AuthzPolicyAuthzRuleToRequestOperationMcpMethod
748+ include Google ::Apis ::Core ::Hashable
749+
750+ # Required. The MCP method to match against. Allowed values are as follows: 1. `
751+ # tools`, `prompts`, `resources` - these will match against all sub methods
752+ # under the respective methods. 2. `prompts/list`, `tools/list`, `resources/list`
753+ # , `resources/templates/list` 3. `prompts/get`, `tools/call`, `resources/
754+ # subscribe`, `resources/unsubscribe`, `resources/read` Params cannot be
755+ # specified for categories 1 and 2.
756+ # Corresponds to the JSON property `name`
757+ # @return [String]
758+ attr_accessor :name
759+
760+ # Optional. A list of MCP method parameters to match against. The match can be
761+ # one of exact, prefix, suffix, or contains (substring match). Matches are
762+ # always case sensitive unless the ignoreCase is set. Limited to 10 MCP method
763+ # parameters per Authorization Policy.
764+ # Corresponds to the JSON property `params`
765+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
766+ attr_accessor :params
767+
768+ def initialize ( **args )
769+ update! ( **args )
770+ end
771+
772+ # Update properties of this object
773+ def update! ( **args )
774+ @name = args [ :name ] if args . key? ( :name )
775+ @params = args [ :params ] if args . key? ( :params )
776+ end
777+ end
778+
699779 # Allows delegating authorization decisions to Cloud IAP or to Service
700780 # Extensions.
701781 class AuthzPolicyCustomProvider
@@ -769,17 +849,19 @@ def update!(**args)
769849 class AuthzPolicyTarget
770850 include Google ::Apis ::Core ::Hashable
771851
772- # Required. All gateways and forwarding rules referenced by this policy and
773- # extensions must share the same load balancing scheme. Supported values: `
774- # INTERNAL_MANAGED` and `EXTERNAL_MANAGED`. For more information, refer to [
775- # Backend services overview](https://cloud.google.com/load-balancing/docs/
776- # backend-service).
852+ # Optional. All gateways and forwarding rules referenced by this policy and
853+ # extensions must share the same load balancing scheme. Required only when
854+ # targeting forwarding rules. If targeting Secure Web Proxy, this field must be `
855+ # INTERNAL_MANAGED` or not specified. Must not be specified when targeting Agent
856+ # Gateway. Supported values: `INTERNAL_MANAGED` and `EXTERNAL_MANAGED`. For more
857+ # information, refer to [Backend services overview](https://cloud.google.com/
858+ # load-balancing/docs/backend-service).
777859 # Corresponds to the JSON property `loadBalancingScheme`
778860 # @return [String]
779861 attr_accessor :load_balancing_scheme
780862
781- # Required. A list of references to the Forwarding Rules on which this policy
782- # will be applied.
863+ # Required. A list of references to the Forwarding Rules, Secure Web Proxy
864+ # Gateways, or Agent Gateways on which this policy will be applied.
783865 # Corresponds to the JSON property `resources`
784866 # @return [Array<String>]
785867 attr_accessor :resources
@@ -1249,7 +1331,9 @@ class FirewallEndpoint
12491331 # @return [Array<Google::Apis::NetworksecurityV1::FirewallEndpointAssociationReference>]
12501332 attr_accessor :associations
12511333
1252- # Required. Project to bill on endpoint uptime usage.
1334+ # Optional. Project to charge for the deployed firewall endpoint. This field
1335+ # must be specified when creating the endpoint in the organization scope, and
1336+ # should be omitted otherwise.
12531337 # Corresponds to the JSON property `billingProjectId`
12541338 # @return [String]
12551339 attr_accessor :billing_project_id
@@ -2396,6 +2480,13 @@ class InterceptEndpointGroupAssociation
23962480 # @return [String]
23972481 attr_accessor :network
23982482
2483+ # Output only. Identifier used by the data-path. See the NSI GENEVE format for
2484+ # more details: https://docs.cloud.google.com/network-security-integration/docs/
2485+ # understand-geneve#network_id
2486+ # Corresponds to the JSON property `networkCookie`
2487+ # @return [Fixnum]
2488+ attr_accessor :network_cookie
2489+
23992490 # Output only. The current state of the resource does not match the user's
24002491 # intended state, and the system is working to reconcile them. This part of the
24012492 # normal operation (e.g. adding a new location to the target deployment group).
@@ -2429,6 +2520,7 @@ def update!(**args)
24292520 @locations_details = args [ :locations_details ] if args . key? ( :locations_details )
24302521 @name = args [ :name ] if args . key? ( :name )
24312522 @network = args [ :network ] if args . key? ( :network )
2523+ @network_cookie = args [ :network_cookie ] if args . key? ( :network_cookie )
24322524 @reconciling = args [ :reconciling ] if args . key? ( :reconciling )
24332525 @state = args [ :state ] if args . key? ( :state )
24342526 @update_time = args [ :update_time ] if args . key? ( :update_time )
0 commit comments