diff --git a/packages/google-cloud-compute/README.rst b/packages/google-cloud-compute/README.rst index 995acbfdae6d..bb5f494d7fe2 100644 --- a/packages/google-cloud-compute/README.rst +++ b/packages/google-cloud-compute/README.rst @@ -26,12 +26,12 @@ In order to use this library, you first need to go through the following steps: 1. `Select or create a Cloud Platform project.`_ 2. `Enable billing for your project.`_ 3. `Enable the Compute Engine.`_ -4. `Setup Authentication.`_ +4. `Set up Authentication.`_ .. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project .. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project .. _Enable the Compute Engine.: https://cloud.google.com/compute/ -.. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html +.. _Set up Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html Installation ~~~~~~~~~~~~ diff --git a/packages/google-cloud-compute/google/cloud/compute/__init__.py b/packages/google-cloud-compute/google/cloud/compute/__init__.py index 17634defb96d..d23fd25bb1f0 100644 --- a/packages/google-cloud-compute/google/cloud/compute/__init__.py +++ b/packages/google-cloud-compute/google/cloud/compute/__init__.py @@ -259,6 +259,7 @@ AddInstancesInstanceGroupRequest, AddInstanceTargetPoolRequest, AddNodesNodeGroupRequest, + AddPacketMirroringRuleNetworkFirewallPolicyRequest, AddPeeringNetworkRequest, AddResourcePoliciesDiskRequest, AddResourcePoliciesInstanceRequest, @@ -384,6 +385,9 @@ BfdPacket, BfdStatus, BfdStatusPacketCounts, + BgpRoute, + BgpRouteAsPath, + BgpRouteNetworkLayerReachabilityInformation, Binding, BulkInsertDiskRequest, BulkInsertDiskResource, @@ -486,6 +490,7 @@ DeleteRegionUrlMapRequest, DeleteReservationRequest, DeleteResourcePolicyRequest, + DeleteRoutePolicyRouterRequest, DeleteRouteRequest, DeleteRouterRequest, DeleteSecurityPolicyRequest, @@ -660,6 +665,7 @@ GetNodeTemplateRequest, GetNodeTypeRequest, GetPacketMirroringRequest, + GetPacketMirroringRuleNetworkFirewallPolicyRequest, GetProjectRequest, GetPublicAdvertisedPrefixeRequest, GetPublicDelegatedPrefixeRequest, @@ -688,6 +694,7 @@ GetRegionUrlMapRequest, GetReservationRequest, GetResourcePolicyRequest, + GetRoutePolicyRouterRequest, GetRouteRequest, GetRouterRequest, GetRouterStatusRouterRequest, @@ -981,6 +988,7 @@ ListAvailableFeaturesSslPoliciesRequest, ListBackendBucketsRequest, ListBackendServicesRequest, + ListBgpRoutesRoutersRequest, ListDisksRequest, ListDisksStoragePoolsRequest, ListDiskTypesRequest, @@ -1061,6 +1069,7 @@ ListRegionZonesRequest, ListReservationsRequest, ListResourcePoliciesRequest, + ListRoutePoliciesRoutersRequest, ListRoutersRequest, ListRoutesRequest, ListSecurityPoliciesRequest, @@ -1215,6 +1224,7 @@ PatchNetworkRequest, PatchNodeGroupRequest, PatchPacketMirroringRequest, + PatchPacketMirroringRuleNetworkFirewallPolicyRequest, PatchPerInstanceConfigsInstanceGroupManagerRequest, PatchPerInstanceConfigsRegionInstanceGroupManagerRequest, PatchPublicAdvertisedPrefixeRequest, @@ -1230,6 +1240,7 @@ PatchRegionTargetHttpsProxyRequest, PatchRegionUrlMapRequest, PatchResourcePolicyRequest, + PatchRoutePolicyRouterRequest, PatchRouterRequest, PatchRuleFirewallPolicyRequest, PatchRuleNetworkFirewallPolicyRequest, @@ -1324,6 +1335,7 @@ RemoveHealthCheckTargetPoolRequest, RemoveInstancesInstanceGroupRequest, RemoveInstanceTargetPoolRequest, + RemovePacketMirroringRuleNetworkFirewallPolicyRequest, RemovePeeringNetworkRequest, RemoveResourcePoliciesDiskRequest, RemoveResourcePoliciesInstanceRequest, @@ -1374,6 +1386,8 @@ Route, RouteAsPath, RouteList, + RoutePolicy, + RoutePolicyPolicyTerm, Router, RouterAdvertisedIpRange, RouterAggregatedList, @@ -1389,6 +1403,9 @@ RouterNatRule, RouterNatRuleAction, RouterNatSubnetworkToNat, + RoutersGetRoutePolicyResponse, + RoutersListBgpRoutes, + RoutersListRoutePolicies, RoutersPreviewResponse, RoutersScopedList, RouterStatus, @@ -1713,6 +1730,7 @@ UpdateRegionHealthCheckRequest, UpdateRegionUrlMapRequest, UpdateReservationRequest, + UpdateRoutePolicyRouterRequest, UpdateRouterRequest, UpdateShieldedInstanceConfigInstanceRequest, UpdateStoragePoolRequest, @@ -1887,6 +1905,7 @@ "AddInstancesInstanceGroupRequest", "AddInstanceTargetPoolRequest", "AddNodesNodeGroupRequest", + "AddPacketMirroringRuleNetworkFirewallPolicyRequest", "AddPeeringNetworkRequest", "AddResourcePoliciesDiskRequest", "AddResourcePoliciesInstanceRequest", @@ -2012,6 +2031,9 @@ "BfdPacket", "BfdStatus", "BfdStatusPacketCounts", + "BgpRoute", + "BgpRouteAsPath", + "BgpRouteNetworkLayerReachabilityInformation", "Binding", "BulkInsertDiskRequest", "BulkInsertDiskResource", @@ -2114,6 +2136,7 @@ "DeleteRegionUrlMapRequest", "DeleteReservationRequest", "DeleteResourcePolicyRequest", + "DeleteRoutePolicyRouterRequest", "DeleteRouteRequest", "DeleteRouterRequest", "DeleteSecurityPolicyRequest", @@ -2288,6 +2311,7 @@ "GetNodeTemplateRequest", "GetNodeTypeRequest", "GetPacketMirroringRequest", + "GetPacketMirroringRuleNetworkFirewallPolicyRequest", "GetProjectRequest", "GetPublicAdvertisedPrefixeRequest", "GetPublicDelegatedPrefixeRequest", @@ -2316,6 +2340,7 @@ "GetRegionUrlMapRequest", "GetReservationRequest", "GetResourcePolicyRequest", + "GetRoutePolicyRouterRequest", "GetRouteRequest", "GetRouterRequest", "GetRouterStatusRouterRequest", @@ -2609,6 +2634,7 @@ "ListAvailableFeaturesSslPoliciesRequest", "ListBackendBucketsRequest", "ListBackendServicesRequest", + "ListBgpRoutesRoutersRequest", "ListDisksRequest", "ListDisksStoragePoolsRequest", "ListDiskTypesRequest", @@ -2689,6 +2715,7 @@ "ListRegionZonesRequest", "ListReservationsRequest", "ListResourcePoliciesRequest", + "ListRoutePoliciesRoutersRequest", "ListRoutersRequest", "ListRoutesRequest", "ListSecurityPoliciesRequest", @@ -2843,6 +2870,7 @@ "PatchNetworkRequest", "PatchNodeGroupRequest", "PatchPacketMirroringRequest", + "PatchPacketMirroringRuleNetworkFirewallPolicyRequest", "PatchPerInstanceConfigsInstanceGroupManagerRequest", "PatchPerInstanceConfigsRegionInstanceGroupManagerRequest", "PatchPublicAdvertisedPrefixeRequest", @@ -2858,6 +2886,7 @@ "PatchRegionTargetHttpsProxyRequest", "PatchRegionUrlMapRequest", "PatchResourcePolicyRequest", + "PatchRoutePolicyRouterRequest", "PatchRouterRequest", "PatchRuleFirewallPolicyRequest", "PatchRuleNetworkFirewallPolicyRequest", @@ -2952,6 +2981,7 @@ "RemoveHealthCheckTargetPoolRequest", "RemoveInstancesInstanceGroupRequest", "RemoveInstanceTargetPoolRequest", + "RemovePacketMirroringRuleNetworkFirewallPolicyRequest", "RemovePeeringNetworkRequest", "RemoveResourcePoliciesDiskRequest", "RemoveResourcePoliciesInstanceRequest", @@ -3002,6 +3032,8 @@ "Route", "RouteAsPath", "RouteList", + "RoutePolicy", + "RoutePolicyPolicyTerm", "Router", "RouterAdvertisedIpRange", "RouterAggregatedList", @@ -3017,6 +3049,9 @@ "RouterNatRule", "RouterNatRuleAction", "RouterNatSubnetworkToNat", + "RoutersGetRoutePolicyResponse", + "RoutersListBgpRoutes", + "RoutersListRoutePolicies", "RoutersPreviewResponse", "RoutersScopedList", "RouterStatus", @@ -3341,6 +3376,7 @@ "UpdateRegionHealthCheckRequest", "UpdateRegionUrlMapRequest", "UpdateReservationRequest", + "UpdateRoutePolicyRouterRequest", "UpdateRouterRequest", "UpdateShieldedInstanceConfigInstanceRequest", "UpdateStoragePoolRequest", diff --git a/packages/google-cloud-compute/google/cloud/compute/gapic_version.py b/packages/google-cloud-compute/google/cloud/compute/gapic_version.py index 547a38985bb7..558c8aab67c5 100644 --- a/packages/google-cloud-compute/google/cloud/compute/gapic_version.py +++ b/packages/google-cloud-compute/google/cloud/compute/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "1.25.0" # {x-release-please-version} +__version__ = "0.0.0" # {x-release-please-version} diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/__init__.py b/packages/google-cloud-compute/google/cloud/compute_v1/__init__.py index cdd7b1d58cff..0810b52e6900 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/__init__.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/__init__.py @@ -141,6 +141,7 @@ AddInstancesInstanceGroupRequest, AddInstanceTargetPoolRequest, AddNodesNodeGroupRequest, + AddPacketMirroringRuleNetworkFirewallPolicyRequest, AddPeeringNetworkRequest, AddResourcePoliciesDiskRequest, AddResourcePoliciesInstanceRequest, @@ -266,6 +267,9 @@ BfdPacket, BfdStatus, BfdStatusPacketCounts, + BgpRoute, + BgpRouteAsPath, + BgpRouteNetworkLayerReachabilityInformation, Binding, BulkInsertDiskRequest, BulkInsertDiskResource, @@ -368,6 +372,7 @@ DeleteRegionUrlMapRequest, DeleteReservationRequest, DeleteResourcePolicyRequest, + DeleteRoutePolicyRouterRequest, DeleteRouteRequest, DeleteRouterRequest, DeleteSecurityPolicyRequest, @@ -542,6 +547,7 @@ GetNodeTemplateRequest, GetNodeTypeRequest, GetPacketMirroringRequest, + GetPacketMirroringRuleNetworkFirewallPolicyRequest, GetProjectRequest, GetPublicAdvertisedPrefixeRequest, GetPublicDelegatedPrefixeRequest, @@ -570,6 +576,7 @@ GetRegionUrlMapRequest, GetReservationRequest, GetResourcePolicyRequest, + GetRoutePolicyRouterRequest, GetRouteRequest, GetRouterRequest, GetRouterStatusRouterRequest, @@ -863,6 +870,7 @@ ListAvailableFeaturesSslPoliciesRequest, ListBackendBucketsRequest, ListBackendServicesRequest, + ListBgpRoutesRoutersRequest, ListDisksRequest, ListDisksStoragePoolsRequest, ListDiskTypesRequest, @@ -943,6 +951,7 @@ ListRegionZonesRequest, ListReservationsRequest, ListResourcePoliciesRequest, + ListRoutePoliciesRoutersRequest, ListRoutersRequest, ListRoutesRequest, ListSecurityPoliciesRequest, @@ -1097,6 +1106,7 @@ PatchNetworkRequest, PatchNodeGroupRequest, PatchPacketMirroringRequest, + PatchPacketMirroringRuleNetworkFirewallPolicyRequest, PatchPerInstanceConfigsInstanceGroupManagerRequest, PatchPerInstanceConfigsRegionInstanceGroupManagerRequest, PatchPublicAdvertisedPrefixeRequest, @@ -1112,6 +1122,7 @@ PatchRegionTargetHttpsProxyRequest, PatchRegionUrlMapRequest, PatchResourcePolicyRequest, + PatchRoutePolicyRouterRequest, PatchRouterRequest, PatchRuleFirewallPolicyRequest, PatchRuleNetworkFirewallPolicyRequest, @@ -1206,6 +1217,7 @@ RemoveHealthCheckTargetPoolRequest, RemoveInstancesInstanceGroupRequest, RemoveInstanceTargetPoolRequest, + RemovePacketMirroringRuleNetworkFirewallPolicyRequest, RemovePeeringNetworkRequest, RemoveResourcePoliciesDiskRequest, RemoveResourcePoliciesInstanceRequest, @@ -1256,6 +1268,8 @@ Route, RouteAsPath, RouteList, + RoutePolicy, + RoutePolicyPolicyTerm, Router, RouterAdvertisedIpRange, RouterAggregatedList, @@ -1271,6 +1285,9 @@ RouterNatRule, RouterNatRuleAction, RouterNatSubnetworkToNat, + RoutersGetRoutePolicyResponse, + RoutersListBgpRoutes, + RoutersListRoutePolicies, RoutersPreviewResponse, RoutersScopedList, RouterStatus, @@ -1595,6 +1612,7 @@ UpdateRegionHealthCheckRequest, UpdateRegionUrlMapRequest, UpdateReservationRequest, + UpdateRoutePolicyRouterRequest, UpdateRouterRequest, UpdateShieldedInstanceConfigInstanceRequest, UpdateStoragePoolRequest, @@ -1672,6 +1690,7 @@ "AddInstanceTargetPoolRequest", "AddInstancesInstanceGroupRequest", "AddNodesNodeGroupRequest", + "AddPacketMirroringRuleNetworkFirewallPolicyRequest", "AddPeeringNetworkRequest", "AddResourcePoliciesDiskRequest", "AddResourcePoliciesInstanceRequest", @@ -1800,6 +1819,9 @@ "BfdPacket", "BfdStatus", "BfdStatusPacketCounts", + "BgpRoute", + "BgpRouteAsPath", + "BgpRouteNetworkLayerReachabilityInformation", "Binding", "BulkInsertDiskRequest", "BulkInsertDiskResource", @@ -1902,6 +1924,7 @@ "DeleteRegionUrlMapRequest", "DeleteReservationRequest", "DeleteResourcePolicyRequest", + "DeleteRoutePolicyRouterRequest", "DeleteRouteRequest", "DeleteRouterRequest", "DeleteSecurityPolicyRequest", @@ -2083,6 +2106,7 @@ "GetNodeTemplateRequest", "GetNodeTypeRequest", "GetPacketMirroringRequest", + "GetPacketMirroringRuleNetworkFirewallPolicyRequest", "GetProjectRequest", "GetPublicAdvertisedPrefixeRequest", "GetPublicDelegatedPrefixeRequest", @@ -2111,6 +2135,7 @@ "GetRegionUrlMapRequest", "GetReservationRequest", "GetResourcePolicyRequest", + "GetRoutePolicyRouterRequest", "GetRouteRequest", "GetRouterRequest", "GetRouterStatusRouterRequest", @@ -2425,6 +2450,7 @@ "ListAvailableFeaturesSslPoliciesRequest", "ListBackendBucketsRequest", "ListBackendServicesRequest", + "ListBgpRoutesRoutersRequest", "ListDiskTypesRequest", "ListDisksRequest", "ListDisksStoragePoolsRequest", @@ -2505,6 +2531,7 @@ "ListRegionsRequest", "ListReservationsRequest", "ListResourcePoliciesRequest", + "ListRoutePoliciesRoutersRequest", "ListRoutersRequest", "ListRoutesRequest", "ListSecurityPoliciesRequest", @@ -2671,6 +2698,7 @@ "PatchNetworkRequest", "PatchNodeGroupRequest", "PatchPacketMirroringRequest", + "PatchPacketMirroringRuleNetworkFirewallPolicyRequest", "PatchPerInstanceConfigsInstanceGroupManagerRequest", "PatchPerInstanceConfigsRegionInstanceGroupManagerRequest", "PatchPublicAdvertisedPrefixeRequest", @@ -2686,6 +2714,7 @@ "PatchRegionTargetHttpsProxyRequest", "PatchRegionUrlMapRequest", "PatchResourcePolicyRequest", + "PatchRoutePolicyRouterRequest", "PatchRouterRequest", "PatchRuleFirewallPolicyRequest", "PatchRuleNetworkFirewallPolicyRequest", @@ -2808,6 +2837,7 @@ "RemoveHealthCheckTargetPoolRequest", "RemoveInstanceTargetPoolRequest", "RemoveInstancesInstanceGroupRequest", + "RemovePacketMirroringRuleNetworkFirewallPolicyRequest", "RemovePeeringNetworkRequest", "RemoveResourcePoliciesDiskRequest", "RemoveResourcePoliciesInstanceRequest", @@ -2860,6 +2890,8 @@ "Route", "RouteAsPath", "RouteList", + "RoutePolicy", + "RoutePolicyPolicyTerm", "Router", "RouterAdvertisedIpRange", "RouterAggregatedList", @@ -2881,6 +2913,9 @@ "RouterStatusNatStatusNatRuleStatus", "RouterStatusResponse", "RoutersClient", + "RoutersGetRoutePolicyResponse", + "RoutersListBgpRoutes", + "RoutersListRoutePolicies", "RoutersPreviewResponse", "RoutersScopedList", "RoutesClient", @@ -3218,6 +3253,7 @@ "UpdateRegionHealthCheckRequest", "UpdateRegionUrlMapRequest", "UpdateReservationRequest", + "UpdateRoutePolicyRouterRequest", "UpdateRouterRequest", "UpdateShieldedInstanceConfigInstanceRequest", "UpdateStoragePoolRequest", diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/gapic_metadata.json b/packages/google-cloud-compute/google/cloud/compute_v1/gapic_metadata.json index dc47fbee26c3..8a29ebae6f52 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/gapic_metadata.json +++ b/packages/google-cloud-compute/google/cloud/compute_v1/gapic_metadata.json @@ -1967,6 +1967,11 @@ "add_association" ] }, + "AddPacketMirroringRule": { + "methods": [ + "add_packet_mirroring_rule" + ] + }, "AddRule": { "methods": [ "add_rule" @@ -2002,6 +2007,11 @@ "get_iam_policy" ] }, + "GetPacketMirroringRule": { + "methods": [ + "get_packet_mirroring_rule" + ] + }, "GetRule": { "methods": [ "get_rule" @@ -2022,6 +2032,11 @@ "patch" ] }, + "PatchPacketMirroringRule": { + "methods": [ + "patch_packet_mirroring_rule" + ] + }, "PatchRule": { "methods": [ "patch_rule" @@ -2032,6 +2047,11 @@ "remove_association" ] }, + "RemovePacketMirroringRule": { + "methods": [ + "remove_packet_mirroring_rule" + ] + }, "RemoveRule": { "methods": [ "remove_rule" @@ -3715,6 +3735,11 @@ "delete" ] }, + "DeleteRoutePolicy": { + "methods": [ + "delete_route_policy" + ] + }, "Get": { "methods": [ "get" @@ -3730,6 +3755,11 @@ "get_nat_mapping_info" ] }, + "GetRoutePolicy": { + "methods": [ + "get_route_policy" + ] + }, "GetRouterStatus": { "methods": [ "get_router_status" @@ -3745,11 +3775,26 @@ "list" ] }, + "ListBgpRoutes": { + "methods": [ + "list_bgp_routes" + ] + }, + "ListRoutePolicies": { + "methods": [ + "list_route_policies" + ] + }, "Patch": { "methods": [ "patch" ] }, + "PatchRoutePolicy": { + "methods": [ + "patch_route_policy" + ] + }, "Preview": { "methods": [ "preview" @@ -3759,6 +3804,11 @@ "methods": [ "update" ] + }, + "UpdateRoutePolicy": { + "methods": [ + "update_route_policy" + ] } } } diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/gapic_version.py b/packages/google-cloud-compute/google/cloud/compute_v1/gapic_version.py index 547a38985bb7..558c8aab67c5 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/gapic_version.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "1.25.0" # {x-release-please-version} +__version__ = "0.0.0" # {x-release-please-version} diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/client.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/client.py index 121fb8fcb00b..1b3df8fd4024 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/client.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/client.py @@ -996,10 +996,10 @@ def error_code(self): # Done; return the response. return response - def add_rule_unary( + def add_packet_mirroring_rule_unary( self, request: Optional[ - Union[compute.AddRuleNetworkFirewallPolicyRequest, dict] + Union[compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, @@ -1009,7 +1009,8 @@ def add_rule_unary( timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Inserts a rule into a firewall policy. + r"""Inserts a packet mirroring rule into a firewall + policy. .. code-block:: python @@ -1022,27 +1023,27 @@ def add_rule_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_add_rule(): + def sample_add_packet_mirroring_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.AddRuleNetworkFirewallPolicyRequest( + request = compute_v1.AddPacketMirroringRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.add_rule(request=request) + response = client.add_packet_mirroring_rule(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.AddRuleNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.AddPacketMirroringRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.AddRule. See the - method description for details. + NetworkFirewallPolicies.AddPacketMirroringRule. + See the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1088,8 +1089,12 @@ def sample_add_rule(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.AddRuleNetworkFirewallPolicyRequest): - request = compute.AddRuleNetworkFirewallPolicyRequest(request) + if not isinstance( + request, compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest + ): + request = compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest( + request + ) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -1101,7 +1106,9 @@ def sample_add_rule(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.add_rule] + rpc = self._transport._wrapped_methods[ + self._transport.add_packet_mirroring_rule + ] # Certain fields should be provided within the metadata header; # add these here. @@ -1128,10 +1135,10 @@ def sample_add_rule(): # Done; return the response. return response - def add_rule( + def add_packet_mirroring_rule( self, request: Optional[ - Union[compute.AddRuleNetworkFirewallPolicyRequest, dict] + Union[compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, @@ -1141,7 +1148,8 @@ def add_rule( timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> extended_operation.ExtendedOperation: - r"""Inserts a rule into a firewall policy. + r"""Inserts a packet mirroring rule into a firewall + policy. .. code-block:: python @@ -1154,27 +1162,27 @@ def add_rule( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_add_rule(): + def sample_add_packet_mirroring_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.AddRuleNetworkFirewallPolicyRequest( + request = compute_v1.AddPacketMirroringRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.add_rule(request=request) + response = client.add_packet_mirroring_rule(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.AddRuleNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.AddPacketMirroringRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.AddRule. See the - method description for details. + NetworkFirewallPolicies.AddPacketMirroringRule. + See the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1220,8 +1228,12 @@ def sample_add_rule(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.AddRuleNetworkFirewallPolicyRequest): - request = compute.AddRuleNetworkFirewallPolicyRequest(request) + if not isinstance( + request, compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest + ): + request = compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest( + request + ) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -1233,7 +1245,9 @@ def sample_add_rule(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.add_rule] + rpc = self._transport._wrapped_methods[ + self._transport.add_packet_mirroring_rule + ] # Certain fields should be provided within the metadata header; # add these here. @@ -1284,22 +1298,20 @@ def error_code(self): # Done; return the response. return response - def aggregated_list( + def add_rule_unary( self, request: Optional[ - Union[compute.AggregatedListNetworkFirewallPoliciesRequest, dict] + Union[compute.AddRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, + firewall_policy: Optional[str] = None, + firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> pagers.AggregatedListPager: - r"""Retrieves an aggregated list of network firewall policies, - listing network firewall policies from all applicable scopes - (global and regional) and grouping the results per scope. To - prevent failure, Google recommends that you set the - ``returnPartialSuccess`` parameter to ``true``. + ) -> compute.Operation: + r"""Inserts a rule into a firewall policy. .. code-block:: python @@ -1312,32 +1324,44 @@ def aggregated_list( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_aggregated_list(): + def sample_add_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.AggregatedListNetworkFirewallPoliciesRequest( + request = compute_v1.AddRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - page_result = client.aggregated_list(request=request) + response = client.add_rule(request=request) # Handle the response - for response in page_result: - print(response) + print(response) Args: - request (Union[google.cloud.compute_v1.types.AggregatedListNetworkFirewallPoliciesRequest, dict]): + request (Union[google.cloud.compute_v1.types.AddRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.AggregatedList. - See the method description for details. + NetworkFirewallPolicies.AddRule. See the + method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field on the ``request`` instance; if ``request`` is provided, this should not be set. + firewall_policy (str): + Name of the firewall policy to + update. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): + The body resource for this request + This corresponds to the ``firewall_policy_rule_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1347,16 +1371,17 @@ def sample_aggregated_list(): be of type `bytes`. Returns: - google.cloud.compute_v1.services.network_firewall_policies.pagers.AggregatedListPager: - Iterating over this object will yield - results and resolve additional pages - automatically. + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. """ # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project]) + has_flattened_params = any( + [project, firewall_policy, firewall_policy_rule_resource] + ) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -1365,23 +1390,30 @@ def sample_aggregated_list(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance( - request, compute.AggregatedListNetworkFirewallPoliciesRequest - ): - request = compute.AggregatedListNetworkFirewallPoliciesRequest(request) + if not isinstance(request, compute.AddRuleNetworkFirewallPolicyRequest): + request = compute.AddRuleNetworkFirewallPolicyRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + if firewall_policy_rule_resource is not None: + request.firewall_policy_rule_resource = firewall_policy_rule_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.aggregated_list] + rpc = self._transport._wrapped_methods[self._transport.add_rule] # Certain fields should be provided within the metadata header; # add these here. metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata((("project", request.project),)), + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), ) # Validate the universe domain. @@ -1395,33 +1427,23 @@ def sample_aggregated_list(): metadata=metadata, ) - # This method is paged; wrap the response in a pager, which provides - # an `__iter__` convenience method. - response = pagers.AggregatedListPager( - method=rpc, - request=request, - response=response, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - # Done; return the response. return response - def clone_rules_unary( + def add_rule( self, request: Optional[ - Union[compute.CloneRulesNetworkFirewallPolicyRequest, dict] + Union[compute.AddRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, firewall_policy: Optional[str] = None, + firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.Operation: - r"""Copies rules to the specified firewall policy. + ) -> extended_operation.ExtendedOperation: + r"""Inserts a rule into a firewall policy. .. code-block:: python @@ -1434,27 +1456,27 @@ def clone_rules_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_clone_rules(): + def sample_add_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.CloneRulesNetworkFirewallPolicyRequest( + request = compute_v1.AddRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.clone_rules(request=request) + response = client.add_rule(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.CloneRulesNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.AddRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.CloneRules. See - the method description for details. + NetworkFirewallPolicies.AddRule. See the + method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1467,6 +1489,11 @@ def sample_clone_rules(): This corresponds to the ``firewall_policy`` field on the ``request`` instance; if ``request`` is provided, this should not be set. + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): + The body resource for this request + This corresponds to the ``firewall_policy_rule_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1484,7 +1511,9 @@ def sample_clone_rules(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, firewall_policy]) + has_flattened_params = any( + [project, firewall_policy, firewall_policy_rule_resource] + ) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -1493,18 +1522,20 @@ def sample_clone_rules(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.CloneRulesNetworkFirewallPolicyRequest): - request = compute.CloneRulesNetworkFirewallPolicyRequest(request) + if not isinstance(request, compute.AddRuleNetworkFirewallPolicyRequest): + request = compute.AddRuleNetworkFirewallPolicyRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if firewall_policy is not None: request.firewall_policy = firewall_policy + if firewall_policy_rule_resource is not None: + request.firewall_policy_rule_resource = firewall_policy_rule_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.clone_rules] + rpc = self._transport._wrapped_methods[self._transport.add_rule] # Certain fields should be provided within the metadata header; # add these here. @@ -1528,22 +1559,49 @@ def sample_clone_rules(): metadata=metadata, ) + operation_service = self._transport._global_operations_client + operation_request = compute.GetGlobalOperationRequest() + operation_request.project = request.project + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) + # Cancel is not part of extended operations yet. + cancel_operation = lambda: None + + # Note: this class is an implementation detail to provide a uniform + # set of names for certain fields in the extended operation proto message. + # See google.api_core.extended_operation.ExtendedOperation for details + # on these properties and the expected interface. + class _CustomOperation(extended_operation.ExtendedOperation): + @property + def error_message(self): + return self._extended_operation.http_error_message + + @property + def error_code(self): + return self._extended_operation.http_error_status_code + + response = _CustomOperation.make(get_operation, cancel_operation, response) + # Done; return the response. return response - def clone_rules( + def aggregated_list( self, request: Optional[ - Union[compute.CloneRulesNetworkFirewallPolicyRequest, dict] + Union[compute.AggregatedListNetworkFirewallPoliciesRequest, dict] ] = None, *, project: Optional[str] = None, - firewall_policy: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> extended_operation.ExtendedOperation: - r"""Copies rules to the specified firewall policy. + ) -> pagers.AggregatedListPager: + r"""Retrieves an aggregated list of network firewall policies, + listing network firewall policies from all applicable scopes + (global and regional) and grouping the results per scope. To + prevent failure, Google recommends that you set the + ``returnPartialSuccess`` parameter to ``true``. .. code-block:: python @@ -1556,39 +1614,32 @@ def clone_rules( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_clone_rules(): + def sample_aggregated_list(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.CloneRulesNetworkFirewallPolicyRequest( - firewall_policy="firewall_policy_value", + request = compute_v1.AggregatedListNetworkFirewallPoliciesRequest( project="project_value", ) # Make the request - response = client.clone_rules(request=request) + page_result = client.aggregated_list(request=request) # Handle the response - print(response) + for response in page_result: + print(response) Args: - request (Union[google.cloud.compute_v1.types.CloneRulesNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.AggregatedListNetworkFirewallPoliciesRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.CloneRules. See - the method description for details. + NetworkFirewallPolicies.AggregatedList. + See the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - firewall_policy (str): - Name of the firewall policy to - update. - - This corresponds to the ``firewall_policy`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1598,15 +1649,16 @@ def sample_clone_rules(): be of type `bytes`. Returns: - google.api_core.extended_operation.ExtendedOperation: - An object representing a extended - long-running operation. + google.cloud.compute_v1.services.network_firewall_policies.pagers.AggregatedListPager: + Iterating over this object will yield + results and resolve additional pages + automatically. """ # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, firewall_policy]) + has_flattened_params = any([project]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -1615,28 +1667,23 @@ def sample_clone_rules(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.CloneRulesNetworkFirewallPolicyRequest): - request = compute.CloneRulesNetworkFirewallPolicyRequest(request) + if not isinstance( + request, compute.AggregatedListNetworkFirewallPoliciesRequest + ): + request = compute.AggregatedListNetworkFirewallPoliciesRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project - if firewall_policy is not None: - request.firewall_policy = firewall_policy # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.clone_rules] + rpc = self._transport._wrapped_methods[self._transport.aggregated_list] # Certain fields should be provided within the metadata header; # add these here. metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - ( - ("project", request.project), - ("firewall_policy", request.firewall_policy), - ) - ), + gapic_v1.routing_header.to_grpc_metadata((("project", request.project),)), ) # Validate the universe domain. @@ -1650,12 +1697,267 @@ def sample_clone_rules(): metadata=metadata, ) - operation_service = self._transport._global_operations_client - operation_request = compute.GetGlobalOperationRequest() - operation_request.project = request.project - operation_request.operation = response.name + # This method is paged; wrap the response in a pager, which provides + # an `__iter__` convenience method. + response = pagers.AggregatedListPager( + method=rpc, + request=request, + response=response, + retry=retry, + timeout=timeout, + metadata=metadata, + ) - get_operation = functools.partial(operation_service.get, operation_request) + # Done; return the response. + return response + + def clone_rules_unary( + self, + request: Optional[ + Union[compute.CloneRulesNetworkFirewallPolicyRequest, dict] + ] = None, + *, + project: Optional[str] = None, + firewall_policy: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Copies rules to the specified firewall policy. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_clone_rules(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.CloneRulesNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.clone_rules(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.CloneRulesNetworkFirewallPolicyRequest, dict]): + The request object. A request message for + NetworkFirewallPolicies.CloneRules. See + the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy (str): + Name of the firewall policy to + update. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, firewall_policy]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.CloneRulesNetworkFirewallPolicyRequest): + request = compute.CloneRulesNetworkFirewallPolicyRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.clone_rules] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def clone_rules( + self, + request: Optional[ + Union[compute.CloneRulesNetworkFirewallPolicyRequest, dict] + ] = None, + *, + project: Optional[str] = None, + firewall_policy: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> extended_operation.ExtendedOperation: + r"""Copies rules to the specified firewall policy. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_clone_rules(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.CloneRulesNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.clone_rules(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.CloneRulesNetworkFirewallPolicyRequest, dict]): + The request object. A request message for + NetworkFirewallPolicies.CloneRules. See + the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy (str): + Name of the firewall policy to + update. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, firewall_policy]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.CloneRulesNetworkFirewallPolicyRequest): + request = compute.CloneRulesNetworkFirewallPolicyRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.clone_rules] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + operation_service = self._transport._global_operations_client + operation_request = compute.GetGlobalOperationRequest() + operation_request.project = request.project + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) # Cancel is not part of extended operations yet. cancel_operation = lambda: None @@ -2326,10 +2628,10 @@ def sample_get_iam_policy(): # Done; return the response. return response - def get_rule( + def get_packet_mirroring_rule( self, request: Optional[ - Union[compute.GetRuleNetworkFirewallPolicyRequest, dict] + Union[compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, @@ -2338,7 +2640,8 @@ def get_rule( timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.FirewallPolicyRule: - r"""Gets a rule of the specified priority. + r"""Gets a packet mirroring rule of the specified + priority. .. code-block:: python @@ -2351,18 +2654,148 @@ def get_rule( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_get_rule(): + def sample_get_packet_mirroring_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.GetRuleNetworkFirewallPolicyRequest( + request = compute_v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.get_rule(request=request) + response = client.get_packet_mirroring_rule(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.GetPacketMirroringRuleNetworkFirewallPolicyRequest, dict]): + The request object. A request message for + NetworkFirewallPolicies.GetPacketMirroringRule. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy (str): + Name of the firewall policy to which + the queried rule belongs. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.cloud.compute_v1.types.FirewallPolicyRule: + Represents a rule that describes one + or more match conditions along with the + action to be taken when traffic matches + this condition (allow or deny). + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, firewall_policy]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance( + request, compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest + ): + request = compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest( + request + ) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[ + self._transport.get_packet_mirroring_rule + ] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_rule( + self, + request: Optional[ + Union[compute.GetRuleNetworkFirewallPolicyRequest, dict] + ] = None, + *, + project: Optional[str] = None, + firewall_policy: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.FirewallPolicyRule: + r"""Gets a rule of the specified priority. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_get_rule(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.GetRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.get_rule(request=request) # Handle the response print(response) @@ -2764,16 +3197,576 @@ def sample_list(): be of type `bytes`. Returns: - google.cloud.compute_v1.services.network_firewall_policies.pagers.ListPager: - Iterating over this object will yield - results and resolve additional pages - automatically. + google.cloud.compute_v1.services.network_firewall_policies.pagers.ListPager: + Iterating over this object will yield + results and resolve additional pages + automatically. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.ListNetworkFirewallPoliciesRequest): + request = compute.ListNetworkFirewallPoliciesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("project", request.project),)), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__iter__` convenience method. + response = pagers.ListPager( + method=rpc, + request=request, + response=response, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def patch_unary( + self, + request: Optional[ + Union[compute.PatchNetworkFirewallPolicyRequest, dict] + ] = None, + *, + project: Optional[str] = None, + firewall_policy: Optional[str] = None, + firewall_policy_resource: Optional[compute.FirewallPolicy] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Patches the specified policy with the data included + in the request. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_patch(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.PatchNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.patch(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.PatchNetworkFirewallPolicyRequest, dict]): + The request object. A request message for + NetworkFirewallPolicies.Patch. See the + method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy (str): + Name of the firewall policy to + update. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy_resource (google.cloud.compute_v1.types.FirewallPolicy): + The body resource for this request + This corresponds to the ``firewall_policy_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, firewall_policy, firewall_policy_resource]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.PatchNetworkFirewallPolicyRequest): + request = compute.PatchNetworkFirewallPolicyRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + if firewall_policy_resource is not None: + request.firewall_policy_resource = firewall_policy_resource + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.patch] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def patch( + self, + request: Optional[ + Union[compute.PatchNetworkFirewallPolicyRequest, dict] + ] = None, + *, + project: Optional[str] = None, + firewall_policy: Optional[str] = None, + firewall_policy_resource: Optional[compute.FirewallPolicy] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> extended_operation.ExtendedOperation: + r"""Patches the specified policy with the data included + in the request. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_patch(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.PatchNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.patch(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.PatchNetworkFirewallPolicyRequest, dict]): + The request object. A request message for + NetworkFirewallPolicies.Patch. See the + method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy (str): + Name of the firewall policy to + update. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy_resource (google.cloud.compute_v1.types.FirewallPolicy): + The body resource for this request + This corresponds to the ``firewall_policy_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, firewall_policy, firewall_policy_resource]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.PatchNetworkFirewallPolicyRequest): + request = compute.PatchNetworkFirewallPolicyRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + if firewall_policy_resource is not None: + request.firewall_policy_resource = firewall_policy_resource + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.patch] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + operation_service = self._transport._global_operations_client + operation_request = compute.GetGlobalOperationRequest() + operation_request.project = request.project + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) + # Cancel is not part of extended operations yet. + cancel_operation = lambda: None + + # Note: this class is an implementation detail to provide a uniform + # set of names for certain fields in the extended operation proto message. + # See google.api_core.extended_operation.ExtendedOperation for details + # on these properties and the expected interface. + class _CustomOperation(extended_operation.ExtendedOperation): + @property + def error_message(self): + return self._extended_operation.http_error_message + + @property + def error_code(self): + return self._extended_operation.http_error_status_code + + response = _CustomOperation.make(get_operation, cancel_operation, response) + + # Done; return the response. + return response + + def patch_packet_mirroring_rule_unary( + self, + request: Optional[ + Union[compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, dict] + ] = None, + *, + project: Optional[str] = None, + firewall_policy: Optional[str] = None, + firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Patches a packet mirroring rule of the specified + priority. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_patch_packet_mirroring_rule(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.patch_packet_mirroring_rule(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, dict]): + The request object. A request message for + NetworkFirewallPolicies.PatchPacketMirroringRule. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy (str): + Name of the firewall policy to + update. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): + The body resource for this request + This corresponds to the ``firewall_policy_rule_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any( + [project, firewall_policy, firewall_policy_rule_resource] + ) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance( + request, compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest + ): + request = compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest( + request + ) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + if firewall_policy_rule_resource is not None: + request.firewall_policy_rule_resource = firewall_policy_rule_resource + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[ + self._transport.patch_packet_mirroring_rule + ] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def patch_packet_mirroring_rule( + self, + request: Optional[ + Union[compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, dict] + ] = None, + *, + project: Optional[str] = None, + firewall_policy: Optional[str] = None, + firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> extended_operation.ExtendedOperation: + r"""Patches a packet mirroring rule of the specified + priority. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_patch_packet_mirroring_rule(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.patch_packet_mirroring_rule(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, dict]): + The request object. A request message for + NetworkFirewallPolicies.PatchPacketMirroringRule. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy (str): + Name of the firewall policy to + update. + + This corresponds to the ``firewall_policy`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): + The body resource for this request + This corresponds to the ``firewall_policy_rule_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. """ # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project]) + has_flattened_params = any( + [project, firewall_policy, firewall_policy_rule_resource] + ) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -2782,21 +3775,36 @@ def sample_list(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.ListNetworkFirewallPoliciesRequest): - request = compute.ListNetworkFirewallPoliciesRequest(request) + if not isinstance( + request, compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest + ): + request = compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest( + request + ) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project + if firewall_policy is not None: + request.firewall_policy = firewall_policy + if firewall_policy_rule_resource is not None: + request.firewall_policy_rule_resource = firewall_policy_rule_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list] + rpc = self._transport._wrapped_methods[ + self._transport.patch_packet_mirroring_rule + ] # Certain fields should be provided within the metadata header; # add these here. metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata((("project", request.project),)), + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("firewall_policy", request.firewall_policy), + ) + ), ) # Validate the universe domain. @@ -2810,35 +3818,47 @@ def sample_list(): metadata=metadata, ) - # This method is paged; wrap the response in a pager, which provides - # an `__iter__` convenience method. - response = pagers.ListPager( - method=rpc, - request=request, - response=response, - retry=retry, - timeout=timeout, - metadata=metadata, - ) + operation_service = self._transport._global_operations_client + operation_request = compute.GetGlobalOperationRequest() + operation_request.project = request.project + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) + # Cancel is not part of extended operations yet. + cancel_operation = lambda: None + + # Note: this class is an implementation detail to provide a uniform + # set of names for certain fields in the extended operation proto message. + # See google.api_core.extended_operation.ExtendedOperation for details + # on these properties and the expected interface. + class _CustomOperation(extended_operation.ExtendedOperation): + @property + def error_message(self): + return self._extended_operation.http_error_message + + @property + def error_code(self): + return self._extended_operation.http_error_status_code + + response = _CustomOperation.make(get_operation, cancel_operation, response) # Done; return the response. return response - def patch_unary( + def patch_rule_unary( self, request: Optional[ - Union[compute.PatchNetworkFirewallPolicyRequest, dict] + Union[compute.PatchRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, firewall_policy: Optional[str] = None, - firewall_policy_resource: Optional[compute.FirewallPolicy] = None, + firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Patches the specified policy with the data included - in the request. + r"""Patches a rule of the specified priority. .. code-block:: python @@ -2851,27 +3871,27 @@ def patch_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_patch(): + def sample_patch_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.PatchNetworkFirewallPolicyRequest( + request = compute_v1.PatchRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.patch(request=request) + response = client.patch_rule(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.PatchNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.PatchRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.Patch. See the - method description for details. + NetworkFirewallPolicies.PatchRule. See + the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -2884,9 +3904,9 @@ def sample_patch(): This corresponds to the ``firewall_policy`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - firewall_policy_resource (google.cloud.compute_v1.types.FirewallPolicy): + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): The body resource for this request - This corresponds to the ``firewall_policy_resource`` field + This corresponds to the ``firewall_policy_rule_resource`` field on the ``request`` instance; if ``request`` is provided, this should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -2906,7 +3926,9 @@ def sample_patch(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, firewall_policy, firewall_policy_resource]) + has_flattened_params = any( + [project, firewall_policy, firewall_policy_rule_resource] + ) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -2915,20 +3937,20 @@ def sample_patch(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.PatchNetworkFirewallPolicyRequest): - request = compute.PatchNetworkFirewallPolicyRequest(request) + if not isinstance(request, compute.PatchRuleNetworkFirewallPolicyRequest): + request = compute.PatchRuleNetworkFirewallPolicyRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if firewall_policy is not None: request.firewall_policy = firewall_policy - if firewall_policy_resource is not None: - request.firewall_policy_resource = firewall_policy_resource + if firewall_policy_rule_resource is not None: + request.firewall_policy_rule_resource = firewall_policy_rule_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.patch] + rpc = self._transport._wrapped_methods[self._transport.patch_rule] # Certain fields should be provided within the metadata header; # add these here. @@ -2955,21 +3977,20 @@ def sample_patch(): # Done; return the response. return response - def patch( + def patch_rule( self, request: Optional[ - Union[compute.PatchNetworkFirewallPolicyRequest, dict] + Union[compute.PatchRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, firewall_policy: Optional[str] = None, - firewall_policy_resource: Optional[compute.FirewallPolicy] = None, + firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> extended_operation.ExtendedOperation: - r"""Patches the specified policy with the data included - in the request. + r"""Patches a rule of the specified priority. .. code-block:: python @@ -2982,27 +4003,27 @@ def patch( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_patch(): + def sample_patch_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.PatchNetworkFirewallPolicyRequest( + request = compute_v1.PatchRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.patch(request=request) + response = client.patch_rule(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.PatchNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.PatchRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.Patch. See the - method description for details. + NetworkFirewallPolicies.PatchRule. See + the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -3015,9 +4036,9 @@ def sample_patch(): This corresponds to the ``firewall_policy`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - firewall_policy_resource (google.cloud.compute_v1.types.FirewallPolicy): + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): The body resource for this request - This corresponds to the ``firewall_policy_resource`` field + This corresponds to the ``firewall_policy_rule_resource`` field on the ``request`` instance; if ``request`` is provided, this should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -3037,7 +4058,9 @@ def sample_patch(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, firewall_policy, firewall_policy_resource]) + has_flattened_params = any( + [project, firewall_policy, firewall_policy_rule_resource] + ) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -3046,20 +4069,20 @@ def sample_patch(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.PatchNetworkFirewallPolicyRequest): - request = compute.PatchNetworkFirewallPolicyRequest(request) + if not isinstance(request, compute.PatchRuleNetworkFirewallPolicyRequest): + request = compute.PatchRuleNetworkFirewallPolicyRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if firewall_policy is not None: request.firewall_policy = firewall_policy - if firewall_policy_resource is not None: - request.firewall_policy_resource = firewall_policy_resource + if firewall_policy_rule_resource is not None: + request.firewall_policy_rule_resource = firewall_policy_rule_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.patch] + rpc = self._transport._wrapped_methods[self._transport.patch_rule] # Certain fields should be provided within the metadata header; # add these here. @@ -3110,20 +4133,20 @@ def error_code(self): # Done; return the response. return response - def patch_rule_unary( + def remove_association_unary( self, request: Optional[ - Union[compute.PatchRuleNetworkFirewallPolicyRequest, dict] + Union[compute.RemoveAssociationNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, firewall_policy: Optional[str] = None, - firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Patches a rule of the specified priority. + r"""Removes an association for the specified firewall + policy. .. code-block:: python @@ -3136,27 +4159,27 @@ def patch_rule_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_patch_rule(): + def sample_remove_association(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.PatchRuleNetworkFirewallPolicyRequest( + request = compute_v1.RemoveAssociationNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.patch_rule(request=request) + response = client.remove_association(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.PatchRuleNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.RemoveAssociationNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.PatchRule. See - the method description for details. + NetworkFirewallPolicies.RemoveAssociation. + See the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -3169,11 +4192,6 @@ def sample_patch_rule(): This corresponds to the ``firewall_policy`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): - The body resource for this request - This corresponds to the ``firewall_policy_rule_resource`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -3191,9 +4209,7 @@ def sample_patch_rule(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any( - [project, firewall_policy, firewall_policy_rule_resource] - ) + has_flattened_params = any([project, firewall_policy]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -3202,20 +4218,20 @@ def sample_patch_rule(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.PatchRuleNetworkFirewallPolicyRequest): - request = compute.PatchRuleNetworkFirewallPolicyRequest(request) + if not isinstance( + request, compute.RemoveAssociationNetworkFirewallPolicyRequest + ): + request = compute.RemoveAssociationNetworkFirewallPolicyRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if firewall_policy is not None: request.firewall_policy = firewall_policy - if firewall_policy_rule_resource is not None: - request.firewall_policy_rule_resource = firewall_policy_rule_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.patch_rule] + rpc = self._transport._wrapped_methods[self._transport.remove_association] # Certain fields should be provided within the metadata header; # add these here. @@ -3242,20 +4258,20 @@ def sample_patch_rule(): # Done; return the response. return response - def patch_rule( + def remove_association( self, request: Optional[ - Union[compute.PatchRuleNetworkFirewallPolicyRequest, dict] + Union[compute.RemoveAssociationNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, firewall_policy: Optional[str] = None, - firewall_policy_rule_resource: Optional[compute.FirewallPolicyRule] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> extended_operation.ExtendedOperation: - r"""Patches a rule of the specified priority. + r"""Removes an association for the specified firewall + policy. .. code-block:: python @@ -3268,27 +4284,27 @@ def patch_rule( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_patch_rule(): + def sample_remove_association(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.PatchRuleNetworkFirewallPolicyRequest( + request = compute_v1.RemoveAssociationNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.patch_rule(request=request) + response = client.remove_association(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.PatchRuleNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.RemoveAssociationNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.PatchRule. See - the method description for details. + NetworkFirewallPolicies.RemoveAssociation. + See the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -3301,11 +4317,6 @@ def sample_patch_rule(): This corresponds to the ``firewall_policy`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): - The body resource for this request - This corresponds to the ``firewall_policy_rule_resource`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -3323,9 +4334,7 @@ def sample_patch_rule(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any( - [project, firewall_policy, firewall_policy_rule_resource] - ) + has_flattened_params = any([project, firewall_policy]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -3334,20 +4343,20 @@ def sample_patch_rule(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.PatchRuleNetworkFirewallPolicyRequest): - request = compute.PatchRuleNetworkFirewallPolicyRequest(request) + if not isinstance( + request, compute.RemoveAssociationNetworkFirewallPolicyRequest + ): + request = compute.RemoveAssociationNetworkFirewallPolicyRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if firewall_policy is not None: request.firewall_policy = firewall_policy - if firewall_policy_rule_resource is not None: - request.firewall_policy_rule_resource = firewall_policy_rule_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.patch_rule] + rpc = self._transport._wrapped_methods[self._transport.remove_association] # Certain fields should be provided within the metadata header; # add these here. @@ -3398,10 +4407,10 @@ def error_code(self): # Done; return the response. return response - def remove_association_unary( + def remove_packet_mirroring_rule_unary( self, request: Optional[ - Union[compute.RemoveAssociationNetworkFirewallPolicyRequest, dict] + Union[compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, @@ -3410,8 +4419,8 @@ def remove_association_unary( timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Removes an association for the specified firewall - policy. + r"""Deletes a packet mirroring rule of the specified + priority. .. code-block:: python @@ -3424,26 +4433,26 @@ def remove_association_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_remove_association(): + def sample_remove_packet_mirroring_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.RemoveAssociationNetworkFirewallPolicyRequest( + request = compute_v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.remove_association(request=request) + response = client.remove_packet_mirroring_rule(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.RemoveAssociationNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.RemoveAssociation. + NetworkFirewallPolicies.RemovePacketMirroringRule. See the method description for details. project (str): Project ID for this request. @@ -3484,9 +4493,11 @@ def sample_remove_association(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. if not isinstance( - request, compute.RemoveAssociationNetworkFirewallPolicyRequest + request, compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest ): - request = compute.RemoveAssociationNetworkFirewallPolicyRequest(request) + request = compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest( + request + ) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -3496,7 +4507,9 @@ def sample_remove_association(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.remove_association] + rpc = self._transport._wrapped_methods[ + self._transport.remove_packet_mirroring_rule + ] # Certain fields should be provided within the metadata header; # add these here. @@ -3523,10 +4536,10 @@ def sample_remove_association(): # Done; return the response. return response - def remove_association( + def remove_packet_mirroring_rule( self, request: Optional[ - Union[compute.RemoveAssociationNetworkFirewallPolicyRequest, dict] + Union[compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, dict] ] = None, *, project: Optional[str] = None, @@ -3535,8 +4548,8 @@ def remove_association( timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> extended_operation.ExtendedOperation: - r"""Removes an association for the specified firewall - policy. + r"""Deletes a packet mirroring rule of the specified + priority. .. code-block:: python @@ -3549,26 +4562,26 @@ def remove_association( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_remove_association(): + def sample_remove_packet_mirroring_rule(): # Create a client client = compute_v1.NetworkFirewallPoliciesClient() # Initialize request argument(s) - request = compute_v1.RemoveAssociationNetworkFirewallPolicyRequest( + request = compute_v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest( firewall_policy="firewall_policy_value", project="project_value", ) # Make the request - response = client.remove_association(request=request) + response = client.remove_packet_mirroring_rule(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.RemoveAssociationNetworkFirewallPolicyRequest, dict]): + request (Union[google.cloud.compute_v1.types.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, dict]): The request object. A request message for - NetworkFirewallPolicies.RemoveAssociation. + NetworkFirewallPolicies.RemovePacketMirroringRule. See the method description for details. project (str): Project ID for this request. @@ -3609,9 +4622,11 @@ def sample_remove_association(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. if not isinstance( - request, compute.RemoveAssociationNetworkFirewallPolicyRequest + request, compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest ): - request = compute.RemoveAssociationNetworkFirewallPolicyRequest(request) + request = compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest( + request + ) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -3621,7 +4636,9 @@ def sample_remove_association(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.remove_association] + rpc = self._transport._wrapped_methods[ + self._transport.remove_packet_mirroring_rule + ] # Certain fields should be provided within the metadata header; # add these here. diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/base.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/base.py index 43db934d1ab0..a4a6e584afa9 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/base.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/base.py @@ -138,6 +138,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.add_packet_mirroring_rule: gapic_v1.method.wrap_method( + self.add_packet_mirroring_rule, + default_timeout=None, + client_info=client_info, + ), self.add_rule: gapic_v1.method.wrap_method( self.add_rule, default_timeout=None, @@ -173,6 +178,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.get_packet_mirroring_rule: gapic_v1.method.wrap_method( + self.get_packet_mirroring_rule, + default_timeout=None, + client_info=client_info, + ), self.get_rule: gapic_v1.method.wrap_method( self.get_rule, default_timeout=None, @@ -193,6 +203,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.patch_packet_mirroring_rule: gapic_v1.method.wrap_method( + self.patch_packet_mirroring_rule, + default_timeout=None, + client_info=client_info, + ), self.patch_rule: gapic_v1.method.wrap_method( self.patch_rule, default_timeout=None, @@ -203,6 +218,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.remove_packet_mirroring_rule: gapic_v1.method.wrap_method( + self.remove_packet_mirroring_rule, + default_timeout=None, + client_info=client_info, + ), self.remove_rule: gapic_v1.method.wrap_method( self.remove_rule, default_timeout=None, @@ -238,6 +258,15 @@ def add_association( ]: raise NotImplementedError() + @property + def add_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest], + Union[compute.Operation, Awaitable[compute.Operation]], + ]: + raise NotImplementedError() + @property def add_rule( self, @@ -307,6 +336,15 @@ def get_iam_policy( ]: raise NotImplementedError() + @property + def get_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest], + Union[compute.FirewallPolicyRule, Awaitable[compute.FirewallPolicyRule]], + ]: + raise NotImplementedError() + @property def get_rule( self, @@ -343,6 +381,15 @@ def patch( ]: raise NotImplementedError() + @property + def patch_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest], + Union[compute.Operation, Awaitable[compute.Operation]], + ]: + raise NotImplementedError() + @property def patch_rule( self, @@ -361,6 +408,15 @@ def remove_association( ]: raise NotImplementedError() + @property + def remove_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest], + Union[compute.Operation, Awaitable[compute.Operation]], + ]: + raise NotImplementedError() + @property def remove_rule( self, diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest.py index 4f57cb9f55ff..d3341eaab7af 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest.py @@ -76,6 +76,14 @@ def post_add_association(self, response): logging.log(f"Received response: {response}") return response + def pre_add_packet_mirroring_rule(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_add_packet_mirroring_rule(self, response): + logging.log(f"Received response: {response}") + return response + def pre_add_rule(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -132,6 +140,14 @@ def post_get_iam_policy(self, response): logging.log(f"Received response: {response}") return response + def pre_get_packet_mirroring_rule(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_get_packet_mirroring_rule(self, response): + logging.log(f"Received response: {response}") + return response + def pre_get_rule(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -164,6 +180,14 @@ def post_patch(self, response): logging.log(f"Received response: {response}") return response + def pre_patch_packet_mirroring_rule(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_patch_packet_mirroring_rule(self, response): + logging.log(f"Received response: {response}") + return response + def pre_patch_rule(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -180,6 +204,14 @@ def post_remove_association(self, response): logging.log(f"Received response: {response}") return response + def pre_remove_packet_mirroring_rule(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_remove_packet_mirroring_rule(self, response): + logging.log(f"Received response: {response}") + return response + def pre_remove_rule(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -257,6 +289,55 @@ def post_add_association_with_metadata( """ return response, metadata + def pre_add_packet_mirroring_rule( + self, + request: compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, + Sequence[Tuple[str, Union[str, bytes]]], + ]: + """Pre-rpc interceptor for add_packet_mirroring_rule + + Override in a subclass to manipulate the request or metadata + before they are sent to the NetworkFirewallPolicies server. + """ + return request, metadata + + def post_add_packet_mirroring_rule( + self, response: compute.Operation + ) -> compute.Operation: + """Post-rpc interceptor for add_packet_mirroring_rule + + DEPRECATED. Please use the `post_add_packet_mirroring_rule_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the NetworkFirewallPolicies server but before + it is returned to user code. This `post_add_packet_mirroring_rule` interceptor runs + before the `post_add_packet_mirroring_rule_with_metadata` interceptor. + """ + return response + + def post_add_packet_mirroring_rule_with_metadata( + self, + response: compute.Operation, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.Operation, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for add_packet_mirroring_rule + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the NetworkFirewallPolicies server but before it is returned to user code. + + We recommend only using this `post_add_packet_mirroring_rule_with_metadata` + interceptor in new development instead of the `post_add_packet_mirroring_rule` interceptor. + When both interceptors are used, this `post_add_packet_mirroring_rule_with_metadata` interceptor runs after the + `post_add_packet_mirroring_rule` interceptor. The (possibly modified) response returned by + `post_add_packet_mirroring_rule` will be passed to + `post_add_packet_mirroring_rule_with_metadata`. + """ + return response, metadata + def pre_add_rule( self, request: compute.AddRuleNetworkFirewallPolicyRequest, @@ -594,6 +675,55 @@ def post_get_iam_policy_with_metadata( """ return response, metadata + def pre_get_packet_mirroring_rule( + self, + request: compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest, + Sequence[Tuple[str, Union[str, bytes]]], + ]: + """Pre-rpc interceptor for get_packet_mirroring_rule + + Override in a subclass to manipulate the request or metadata + before they are sent to the NetworkFirewallPolicies server. + """ + return request, metadata + + def post_get_packet_mirroring_rule( + self, response: compute.FirewallPolicyRule + ) -> compute.FirewallPolicyRule: + """Post-rpc interceptor for get_packet_mirroring_rule + + DEPRECATED. Please use the `post_get_packet_mirroring_rule_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the NetworkFirewallPolicies server but before + it is returned to user code. This `post_get_packet_mirroring_rule` interceptor runs + before the `post_get_packet_mirroring_rule_with_metadata` interceptor. + """ + return response + + def post_get_packet_mirroring_rule_with_metadata( + self, + response: compute.FirewallPolicyRule, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.FirewallPolicyRule, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for get_packet_mirroring_rule + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the NetworkFirewallPolicies server but before it is returned to user code. + + We recommend only using this `post_get_packet_mirroring_rule_with_metadata` + interceptor in new development instead of the `post_get_packet_mirroring_rule` interceptor. + When both interceptors are used, this `post_get_packet_mirroring_rule_with_metadata` interceptor runs after the + `post_get_packet_mirroring_rule` interceptor. The (possibly modified) response returned by + `post_get_packet_mirroring_rule` will be passed to + `post_get_packet_mirroring_rule_with_metadata`. + """ + return response, metadata + def pre_get_rule( self, request: compute.GetRuleNetworkFirewallPolicyRequest, @@ -786,6 +916,55 @@ def post_patch_with_metadata( """ return response, metadata + def pre_patch_packet_mirroring_rule( + self, + request: compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, + Sequence[Tuple[str, Union[str, bytes]]], + ]: + """Pre-rpc interceptor for patch_packet_mirroring_rule + + Override in a subclass to manipulate the request or metadata + before they are sent to the NetworkFirewallPolicies server. + """ + return request, metadata + + def post_patch_packet_mirroring_rule( + self, response: compute.Operation + ) -> compute.Operation: + """Post-rpc interceptor for patch_packet_mirroring_rule + + DEPRECATED. Please use the `post_patch_packet_mirroring_rule_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the NetworkFirewallPolicies server but before + it is returned to user code. This `post_patch_packet_mirroring_rule` interceptor runs + before the `post_patch_packet_mirroring_rule_with_metadata` interceptor. + """ + return response + + def post_patch_packet_mirroring_rule_with_metadata( + self, + response: compute.Operation, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.Operation, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for patch_packet_mirroring_rule + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the NetworkFirewallPolicies server but before it is returned to user code. + + We recommend only using this `post_patch_packet_mirroring_rule_with_metadata` + interceptor in new development instead of the `post_patch_packet_mirroring_rule` interceptor. + When both interceptors are used, this `post_patch_packet_mirroring_rule_with_metadata` interceptor runs after the + `post_patch_packet_mirroring_rule` interceptor. The (possibly modified) response returned by + `post_patch_packet_mirroring_rule` will be passed to + `post_patch_packet_mirroring_rule_with_metadata`. + """ + return response, metadata + def pre_patch_rule( self, request: compute.PatchRuleNetworkFirewallPolicyRequest, @@ -880,6 +1059,55 @@ def post_remove_association_with_metadata( """ return response, metadata + def pre_remove_packet_mirroring_rule( + self, + request: compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, + Sequence[Tuple[str, Union[str, bytes]]], + ]: + """Pre-rpc interceptor for remove_packet_mirroring_rule + + Override in a subclass to manipulate the request or metadata + before they are sent to the NetworkFirewallPolicies server. + """ + return request, metadata + + def post_remove_packet_mirroring_rule( + self, response: compute.Operation + ) -> compute.Operation: + """Post-rpc interceptor for remove_packet_mirroring_rule + + DEPRECATED. Please use the `post_remove_packet_mirroring_rule_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the NetworkFirewallPolicies server but before + it is returned to user code. This `post_remove_packet_mirroring_rule` interceptor runs + before the `post_remove_packet_mirroring_rule_with_metadata` interceptor. + """ + return response + + def post_remove_packet_mirroring_rule_with_metadata( + self, + response: compute.Operation, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.Operation, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for remove_packet_mirroring_rule + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the NetworkFirewallPolicies server but before it is returned to user code. + + We recommend only using this `post_remove_packet_mirroring_rule_with_metadata` + interceptor in new development instead of the `post_remove_packet_mirroring_rule` interceptor. + When both interceptors are used, this `post_remove_packet_mirroring_rule_with_metadata` interceptor runs after the + `post_remove_packet_mirroring_rule` interceptor. The (possibly modified) response returned by + `post_remove_packet_mirroring_rule` will be passed to + `post_remove_packet_mirroring_rule_with_metadata`. + """ + return response, metadata + def pre_remove_rule( self, request: compute.RemoveRuleNetworkFirewallPolicyRequest, @@ -1288,12 +1516,12 @@ def __call__( ) return resp - class _AddRule( - _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule, + class _AddPacketMirroringRule( + _BaseNetworkFirewallPoliciesRestTransport._BaseAddPacketMirroringRule, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.AddRule") + return hash("NetworkFirewallPoliciesRestTransport.AddPacketMirroringRule") @staticmethod def _get_response( @@ -1320,19 +1548,19 @@ def _get_response( def __call__( self, - request: compute.AddRuleNetworkFirewallPolicyRequest, + request: compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Call the add rule method over HTTP. + r"""Call the add packet mirroring rule method over HTTP. Args: - request (~.compute.AddRuleNetworkFirewallPolicyRequest): + request (~.compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest): The request object. A request message for - NetworkFirewallPolicies.AddRule. See the - method description for details. + NetworkFirewallPolicies.AddPacketMirroringRule. + See the method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1364,20 +1592,22 @@ def __call__( """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BaseAddPacketMirroringRule._get_http_options() ) - request, metadata = self._interceptor.pre_add_rule(request, metadata) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_transcoded_request( + request, metadata = self._interceptor.pre_add_packet_mirroring_rule( + request, metadata + ) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseAddPacketMirroringRule._get_transcoded_request( http_options, request ) - body = _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_request_body_json( + body = _BaseNetworkFirewallPoliciesRestTransport._BaseAddPacketMirroringRule._get_request_body_json( transcoded_request ) # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_query_params_json( + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseAddPacketMirroringRule._get_query_params_json( transcoded_request ) @@ -1399,17 +1629,17 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.AddRule", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.AddPacketMirroringRule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "AddRule", + "rpcName": "AddPacketMirroringRule", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = NetworkFirewallPoliciesRestTransport._AddRule._get_response( + response = NetworkFirewallPoliciesRestTransport._AddPacketMirroringRule._get_response( self._host, metadata, query_params, @@ -1430,9 +1660,9 @@ def __call__( json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_add_rule(resp) + resp = self._interceptor.post_add_packet_mirroring_rule(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_add_rule_with_metadata( + resp, _ = self._interceptor.post_add_packet_mirroring_rule_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -1448,22 +1678,22 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.add_rule", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.add_packet_mirroring_rule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "AddRule", + "rpcName": "AddPacketMirroringRule", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _AggregatedList( - _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList, + class _AddRule( + _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.AggregatedList") + return hash("NetworkFirewallPoliciesRestTransport.AddRule") @staticmethod def _get_response( @@ -1484,24 +1714,25 @@ def _get_response( timeout=timeout, headers=headers, params=rest_helpers.flatten_query_params(query_params, strict=True), + data=body, ) return response def __call__( self, - request: compute.AggregatedListNetworkFirewallPoliciesRequest, + request: compute.AddRuleNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.NetworkFirewallPolicyAggregatedList: - r"""Call the aggregated list method over HTTP. + ) -> compute.Operation: + r"""Call the add rule method over HTTP. Args: - request (~.compute.AggregatedListNetworkFirewallPoliciesRequest): + request (~.compute.AddRuleNetworkFirewallPolicyRequest): The request object. A request message for - NetworkFirewallPolicies.AggregatedList. - See the method description for details. + NetworkFirewallPolicies.AddRule. See the + method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1511,21 +1742,42 @@ def __call__( be of type `bytes`. Returns: - ~.compute.NetworkFirewallPolicyAggregatedList: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_http_options() ) - request, metadata = self._interceptor.pre_aggregated_list(request, metadata) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList._get_transcoded_request( + request, metadata = self._interceptor.pre_add_rule(request, metadata) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_transcoded_request( http_options, request ) + body = _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_request_body_json( + transcoded_request + ) + # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList._get_query_params_json( + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseAddRule._get_query_params_json( transcoded_request ) @@ -1547,25 +1799,24 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.AggregatedList", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.AddRule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "AggregatedList", + "rpcName": "AddRule", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = ( - NetworkFirewallPoliciesRestTransport._AggregatedList._get_response( - self._host, - metadata, - query_params, - self._session, - timeout, - transcoded_request, - ) + response = NetworkFirewallPoliciesRestTransport._AddRule._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + body, ) # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception @@ -1574,23 +1825,21 @@ def __call__( raise core_exceptions.from_http_response(response) # Return the response - resp = compute.NetworkFirewallPolicyAggregatedList() - pb_resp = compute.NetworkFirewallPolicyAggregatedList.pb(resp) + resp = compute.Operation() + pb_resp = compute.Operation.pb(resp) json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_aggregated_list(resp) + resp = self._interceptor.post_add_rule(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_aggregated_list_with_metadata( + resp, _ = self._interceptor.post_add_rule_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( logging.DEBUG ): # pragma: NO COVER try: - response_payload = ( - compute.NetworkFirewallPolicyAggregatedList.to_json(response) - ) + response_payload = compute.Operation.to_json(response) except: response_payload = None http_response = { @@ -1599,10 +1848,161 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.aggregated_list", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.add_rule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "AggregatedList", + "rpcName": "AddRule", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _AggregatedList( + _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList, + NetworkFirewallPoliciesRestStub, + ): + def __hash__(self): + return hash("NetworkFirewallPoliciesRestTransport.AggregatedList") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + ) + return response + + def __call__( + self, + request: compute.AggregatedListNetworkFirewallPoliciesRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.NetworkFirewallPolicyAggregatedList: + r"""Call the aggregated list method over HTTP. + + Args: + request (~.compute.AggregatedListNetworkFirewallPoliciesRequest): + The request object. A request message for + NetworkFirewallPolicies.AggregatedList. + See the method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.NetworkFirewallPolicyAggregatedList: + + """ + + http_options = ( + _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList._get_http_options() + ) + + request, metadata = self._interceptor.pre_aggregated_list(request, metadata) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList._get_transcoded_request( + http_options, request + ) + + # Jsonify the query params + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseAggregatedList._get_query_params_json( + transcoded_request + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.AggregatedList", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "AggregatedList", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = ( + NetworkFirewallPoliciesRestTransport._AggregatedList._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.NetworkFirewallPolicyAggregatedList() + pb_resp = compute.NetworkFirewallPolicyAggregatedList.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_aggregated_list(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_aggregated_list_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = ( + compute.NetworkFirewallPolicyAggregatedList.to_json(response) + ) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.aggregated_list", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "AggregatedList", "metadata": http_response["headers"], "httpResponse": http_response, }, @@ -2405,12 +2805,12 @@ def __call__( ) return resp - class _GetRule( - _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule, + class _GetPacketMirroringRule( + _BaseNetworkFirewallPoliciesRestTransport._BaseGetPacketMirroringRule, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.GetRule") + return hash("NetworkFirewallPoliciesRestTransport.GetPacketMirroringRule") @staticmethod def _get_response( @@ -2436,19 +2836,19 @@ def _get_response( def __call__( self, - request: compute.GetRuleNetworkFirewallPolicyRequest, + request: compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.FirewallPolicyRule: - r"""Call the get rule method over HTTP. + r"""Call the get packet mirroring rule method over HTTP. Args: - request (~.compute.GetRuleNetworkFirewallPolicyRequest): + request (~.compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest): The request object. A request message for - NetworkFirewallPolicies.GetRule. See the - method description for details. + NetworkFirewallPolicies.GetPacketMirroringRule. + See the method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -2467,16 +2867,18 @@ def __call__( """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BaseGetPacketMirroringRule._get_http_options() ) - request, metadata = self._interceptor.pre_get_rule(request, metadata) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule._get_transcoded_request( + request, metadata = self._interceptor.pre_get_packet_mirroring_rule( + request, metadata + ) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseGetPacketMirroringRule._get_transcoded_request( http_options, request ) # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule._get_query_params_json( + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseGetPacketMirroringRule._get_query_params_json( transcoded_request ) @@ -2498,17 +2900,17 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.GetRule", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.GetPacketMirroringRule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "GetRule", + "rpcName": "GetPacketMirroringRule", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = NetworkFirewallPoliciesRestTransport._GetRule._get_response( + response = NetworkFirewallPoliciesRestTransport._GetPacketMirroringRule._get_response( self._host, metadata, query_params, @@ -2528,9 +2930,9 @@ def __call__( json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_get_rule(resp) + resp = self._interceptor.post_get_packet_mirroring_rule(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_get_rule_with_metadata( + resp, _ = self._interceptor.post_get_packet_mirroring_rule_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -2546,22 +2948,22 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.get_rule", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.get_packet_mirroring_rule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "GetRule", + "rpcName": "GetPacketMirroringRule", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _Insert( - _BaseNetworkFirewallPoliciesRestTransport._BaseInsert, + class _GetRule( + _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.Insert") + return hash("NetworkFirewallPoliciesRestTransport.GetRule") @staticmethod def _get_response( @@ -2582,24 +2984,23 @@ def _get_response( timeout=timeout, headers=headers, params=rest_helpers.flatten_query_params(query_params, strict=True), - data=body, ) return response def __call__( self, - request: compute.InsertNetworkFirewallPolicyRequest, + request: compute.GetRuleNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.Operation: - r"""Call the insert method over HTTP. + ) -> compute.FirewallPolicyRule: + r"""Call the get rule method over HTTP. Args: - request (~.compute.InsertNetworkFirewallPolicyRequest): + request (~.compute.GetRuleNetworkFirewallPolicyRequest): The request object. A request message for - NetworkFirewallPolicies.Insert. See the + NetworkFirewallPolicies.GetRule. See the method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -2610,42 +3011,509 @@ def __call__( be of type `bytes`. Returns: - ~.compute.Operation: - Represents an Operation resource. Google Compute Engine - has three Operation resources: \* - `Global `__ - \* - `Regional `__ - \* - `Zonal `__ - You can use an operation resource to manage asynchronous - API requests. For more information, read Handling API - responses. Operations can be global, regional or zonal. - - For global operations, use the ``globalOperations`` - resource. - For regional operations, use the - ``regionOperations`` resource. - For zonal operations, - use the ``zoneOperations`` resource. For more - information, read Global, Regional, and Zonal Resources. - Note that completed Operation resources have a limited - retention period. + ~.compute.FirewallPolicyRule: + Represents a rule that describes one + or more match conditions along with the + action to be taken when traffic matches + this condition (allow or deny). """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule._get_http_options() ) - request, metadata = self._interceptor.pre_insert(request, metadata) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_transcoded_request( + request, metadata = self._interceptor.pre_get_rule(request, metadata) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule._get_transcoded_request( http_options, request ) - body = _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_request_body_json( + # Jsonify the query params + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseGetRule._get_query_params_json( transcoded_request ) - # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_query_params_json( + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.GetRule", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "GetRule", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = NetworkFirewallPoliciesRestTransport._GetRule._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.FirewallPolicyRule() + pb_resp = compute.FirewallPolicyRule.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_get_rule(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_get_rule_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.FirewallPolicyRule.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.get_rule", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "GetRule", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _Insert( + _BaseNetworkFirewallPoliciesRestTransport._BaseInsert, + NetworkFirewallPoliciesRestStub, + ): + def __hash__(self): + return hash("NetworkFirewallPoliciesRestTransport.Insert") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + data=body, + ) + return response + + def __call__( + self, + request: compute.InsertNetworkFirewallPolicyRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Call the insert method over HTTP. + + Args: + request (~.compute.InsertNetworkFirewallPolicyRequest): + The request object. A request message for + NetworkFirewallPolicies.Insert. See the + method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. + + """ + + http_options = ( + _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_http_options() + ) + + request, metadata = self._interceptor.pre_insert(request, metadata) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_transcoded_request( + http_options, request + ) + + body = _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_request_body_json( + transcoded_request + ) + + # Jsonify the query params + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseInsert._get_query_params_json( + transcoded_request + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.Insert", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "Insert", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = NetworkFirewallPoliciesRestTransport._Insert._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + body, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.Operation() + pb_resp = compute.Operation.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_insert(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_insert_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.Operation.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.insert", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "Insert", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _List( + _BaseNetworkFirewallPoliciesRestTransport._BaseList, + NetworkFirewallPoliciesRestStub, + ): + def __hash__(self): + return hash("NetworkFirewallPoliciesRestTransport.List") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + ) + return response + + def __call__( + self, + request: compute.ListNetworkFirewallPoliciesRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.FirewallPolicyList: + r"""Call the list method over HTTP. + + Args: + request (~.compute.ListNetworkFirewallPoliciesRequest): + The request object. A request message for + NetworkFirewallPolicies.List. See the + method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.FirewallPolicyList: + + """ + + http_options = ( + _BaseNetworkFirewallPoliciesRestTransport._BaseList._get_http_options() + ) + + request, metadata = self._interceptor.pre_list(request, metadata) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseList._get_transcoded_request( + http_options, request + ) + + # Jsonify the query params + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseList._get_query_params_json( + transcoded_request + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.List", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "List", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = NetworkFirewallPoliciesRestTransport._List._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.FirewallPolicyList() + pb_resp = compute.FirewallPolicyList.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_list(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_list_with_metadata(resp, response_metadata) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.FirewallPolicyList.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.list", + extra={ + "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "rpcName": "List", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _Patch( + _BaseNetworkFirewallPoliciesRestTransport._BasePatch, + NetworkFirewallPoliciesRestStub, + ): + def __hash__(self): + return hash("NetworkFirewallPoliciesRestTransport.Patch") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + data=body, + ) + return response + + def __call__( + self, + request: compute.PatchNetworkFirewallPolicyRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Call the patch method over HTTP. + + Args: + request (~.compute.PatchNetworkFirewallPolicyRequest): + The request object. A request message for + NetworkFirewallPolicies.Patch. See the + method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. + + """ + + http_options = ( + _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_http_options() + ) + + request, metadata = self._interceptor.pre_patch(request, metadata) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_transcoded_request( + http_options, request + ) + + body = _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_request_body_json( + transcoded_request + ) + + # Jsonify the query params + query_params = _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_query_params_json( transcoded_request ) @@ -2667,17 +3535,17 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.Insert", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.Patch", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "Insert", + "rpcName": "Patch", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = NetworkFirewallPoliciesRestTransport._Insert._get_response( + response = NetworkFirewallPoliciesRestTransport._Patch._get_response( self._host, metadata, query_params, @@ -2698,9 +3566,9 @@ def __call__( json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_insert(resp) + resp = self._interceptor.post_patch(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_insert_with_metadata( + resp, _ = self._interceptor.post_patch_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -2716,22 +3584,22 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.insert", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "Insert", + "rpcName": "Patch", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _List( - _BaseNetworkFirewallPoliciesRestTransport._BaseList, + class _PatchPacketMirroringRule( + _BaseNetworkFirewallPoliciesRestTransport._BasePatchPacketMirroringRule, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.List") + return hash("NetworkFirewallPoliciesRestTransport.PatchPacketMirroringRule") @staticmethod def _get_response( @@ -2752,48 +3620,73 @@ def _get_response( timeout=timeout, headers=headers, params=rest_helpers.flatten_query_params(query_params, strict=True), + data=body, ) return response def __call__( self, - request: compute.ListNetworkFirewallPoliciesRequest, + request: compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.FirewallPolicyList: - r"""Call the list method over HTTP. - - Args: - request (~.compute.ListNetworkFirewallPoliciesRequest): - The request object. A request message for - NetworkFirewallPolicies.List. See the - method description for details. - retry (google.api_core.retry.Retry): Designation of what errors, if any, - should be retried. - timeout (float): The timeout for this request. - metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be - sent along with the request as metadata. Normally, each value must be of type `str`, - but for metadata keys ending with the suffix `-bin`, the corresponding values must - be of type `bytes`. - - Returns: - ~.compute.FirewallPolicyList: + ) -> compute.Operation: + r"""Call the patch packet mirroring + rule method over HTTP. + + Args: + request (~.compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest): + The request object. A request message for + NetworkFirewallPolicies.PatchPacketMirroringRule. + See the method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BaseList._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BasePatchPacketMirroringRule._get_http_options() ) - request, metadata = self._interceptor.pre_list(request, metadata) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseList._get_transcoded_request( + request, metadata = self._interceptor.pre_patch_packet_mirroring_rule( + request, metadata + ) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BasePatchPacketMirroringRule._get_transcoded_request( http_options, request ) + body = _BaseNetworkFirewallPoliciesRestTransport._BasePatchPacketMirroringRule._get_request_body_json( + transcoded_request + ) + # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseList._get_query_params_json( + query_params = _BaseNetworkFirewallPoliciesRestTransport._BasePatchPacketMirroringRule._get_query_params_json( transcoded_request ) @@ -2815,23 +3708,24 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.List", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.PatchPacketMirroringRule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "List", + "rpcName": "PatchPacketMirroringRule", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = NetworkFirewallPoliciesRestTransport._List._get_response( + response = NetworkFirewallPoliciesRestTransport._PatchPacketMirroringRule._get_response( self._host, metadata, query_params, self._session, timeout, transcoded_request, + body, ) # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception @@ -2840,19 +3734,21 @@ def __call__( raise core_exceptions.from_http_response(response) # Return the response - resp = compute.FirewallPolicyList() - pb_resp = compute.FirewallPolicyList.pb(resp) + resp = compute.Operation() + pb_resp = compute.Operation.pb(resp) json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_list(resp) + resp = self._interceptor.post_patch_packet_mirroring_rule(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_list_with_metadata(resp, response_metadata) + resp, _ = self._interceptor.post_patch_packet_mirroring_rule_with_metadata( + resp, response_metadata + ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( logging.DEBUG ): # pragma: NO COVER try: - response_payload = compute.FirewallPolicyList.to_json(response) + response_payload = compute.Operation.to_json(response) except: response_payload = None http_response = { @@ -2861,22 +3757,22 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.list", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch_packet_mirroring_rule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "List", + "rpcName": "PatchPacketMirroringRule", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _Patch( - _BaseNetworkFirewallPoliciesRestTransport._BasePatch, + class _PatchRule( + _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.Patch") + return hash("NetworkFirewallPoliciesRestTransport.PatchRule") @staticmethod def _get_response( @@ -2903,19 +3799,19 @@ def _get_response( def __call__( self, - request: compute.PatchNetworkFirewallPolicyRequest, + request: compute.PatchRuleNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Call the patch method over HTTP. + r"""Call the patch rule method over HTTP. Args: - request (~.compute.PatchNetworkFirewallPolicyRequest): + request (~.compute.PatchRuleNetworkFirewallPolicyRequest): The request object. A request message for - NetworkFirewallPolicies.Patch. See the - method description for details. + NetworkFirewallPolicies.PatchRule. See + the method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -2947,20 +3843,20 @@ def __call__( """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_http_options() ) - request, metadata = self._interceptor.pre_patch(request, metadata) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_transcoded_request( + request, metadata = self._interceptor.pre_patch_rule(request, metadata) + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_transcoded_request( http_options, request ) - body = _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_request_body_json( + body = _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_request_body_json( transcoded_request ) # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BasePatch._get_query_params_json( + query_params = _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_query_params_json( transcoded_request ) @@ -2982,17 +3878,17 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.Patch", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.PatchRule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "Patch", + "rpcName": "PatchRule", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = NetworkFirewallPoliciesRestTransport._Patch._get_response( + response = NetworkFirewallPoliciesRestTransport._PatchRule._get_response( self._host, metadata, query_params, @@ -3013,9 +3909,9 @@ def __call__( json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_patch(resp) + resp = self._interceptor.post_patch_rule(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_patch_with_metadata( + resp, _ = self._interceptor.post_patch_rule_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -3031,22 +3927,22 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch_rule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "Patch", + "rpcName": "PatchRule", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _PatchRule( - _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule, + class _RemoveAssociation( + _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.PatchRule") + return hash("NetworkFirewallPoliciesRestTransport.RemoveAssociation") @staticmethod def _get_response( @@ -3067,25 +3963,24 @@ def _get_response( timeout=timeout, headers=headers, params=rest_helpers.flatten_query_params(query_params, strict=True), - data=body, ) return response def __call__( self, - request: compute.PatchRuleNetworkFirewallPolicyRequest, + request: compute.RemoveAssociationNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Call the patch rule method over HTTP. + r"""Call the remove association method over HTTP. Args: - request (~.compute.PatchRuleNetworkFirewallPolicyRequest): + request (~.compute.RemoveAssociationNetworkFirewallPolicyRequest): The request object. A request message for - NetworkFirewallPolicies.PatchRule. See - the method description for details. + NetworkFirewallPolicies.RemoveAssociation. + See the method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -3117,20 +4012,18 @@ def __call__( """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation._get_http_options() ) - request, metadata = self._interceptor.pre_patch_rule(request, metadata) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_transcoded_request( - http_options, request + request, metadata = self._interceptor.pre_remove_association( + request, metadata ) - - body = _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_request_body_json( - transcoded_request + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation._get_transcoded_request( + http_options, request ) # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BasePatchRule._get_query_params_json( + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation._get_query_params_json( transcoded_request ) @@ -3152,24 +4045,25 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.PatchRule", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.RemoveAssociation", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "PatchRule", + "rpcName": "RemoveAssociation", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = NetworkFirewallPoliciesRestTransport._PatchRule._get_response( - self._host, - metadata, - query_params, - self._session, - timeout, - transcoded_request, - body, + response = ( + NetworkFirewallPoliciesRestTransport._RemoveAssociation._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) ) # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception @@ -3183,9 +4077,9 @@ def __call__( json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_patch_rule(resp) + resp = self._interceptor.post_remove_association(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_patch_rule_with_metadata( + resp, _ = self._interceptor.post_remove_association_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -3201,22 +4095,24 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch_rule", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_association", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "PatchRule", + "rpcName": "RemoveAssociation", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _RemoveAssociation( - _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation, + class _RemovePacketMirroringRule( + _BaseNetworkFirewallPoliciesRestTransport._BaseRemovePacketMirroringRule, NetworkFirewallPoliciesRestStub, ): def __hash__(self): - return hash("NetworkFirewallPoliciesRestTransport.RemoveAssociation") + return hash( + "NetworkFirewallPoliciesRestTransport.RemovePacketMirroringRule" + ) @staticmethod def _get_response( @@ -3242,62 +4138,63 @@ def _get_response( def __call__( self, - request: compute.RemoveAssociationNetworkFirewallPolicyRequest, + request: compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Call the remove association method over HTTP. - - Args: - request (~.compute.RemoveAssociationNetworkFirewallPolicyRequest): - The request object. A request message for - NetworkFirewallPolicies.RemoveAssociation. - See the method description for details. - retry (google.api_core.retry.Retry): Designation of what errors, if any, - should be retried. - timeout (float): The timeout for this request. - metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be - sent along with the request as metadata. Normally, each value must be of type `str`, - but for metadata keys ending with the suffix `-bin`, the corresponding values must - be of type `bytes`. - - Returns: - ~.compute.Operation: - Represents an Operation resource. Google Compute Engine - has three Operation resources: \* - `Global `__ - \* - `Regional `__ - \* - `Zonal `__ - You can use an operation resource to manage asynchronous - API requests. For more information, read Handling API - responses. Operations can be global, regional or zonal. - - For global operations, use the ``globalOperations`` - resource. - For regional operations, use the - ``regionOperations`` resource. - For zonal operations, - use the ``zoneOperations`` resource. For more - information, read Global, Regional, and Zonal Resources. - Note that completed Operation resources have a limited - retention period. + r"""Call the remove packet mirroring + rule method over HTTP. + + Args: + request (~.compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest): + The request object. A request message for + NetworkFirewallPolicies.RemovePacketMirroringRule. + See the method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. """ http_options = ( - _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation._get_http_options() + _BaseNetworkFirewallPoliciesRestTransport._BaseRemovePacketMirroringRule._get_http_options() ) - request, metadata = self._interceptor.pre_remove_association( + request, metadata = self._interceptor.pre_remove_packet_mirroring_rule( request, metadata ) - transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation._get_transcoded_request( + transcoded_request = _BaseNetworkFirewallPoliciesRestTransport._BaseRemovePacketMirroringRule._get_transcoded_request( http_options, request ) # Jsonify the query params - query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseRemoveAssociation._get_query_params_json( + query_params = _BaseNetworkFirewallPoliciesRestTransport._BaseRemovePacketMirroringRule._get_query_params_json( transcoded_request ) @@ -3319,25 +4216,23 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.RemoveAssociation", + f"Sending request for google.cloud.compute_v1.NetworkFirewallPoliciesClient.RemovePacketMirroringRule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "RemoveAssociation", + "rpcName": "RemovePacketMirroringRule", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = ( - NetworkFirewallPoliciesRestTransport._RemoveAssociation._get_response( - self._host, - metadata, - query_params, - self._session, - timeout, - transcoded_request, - ) + response = NetworkFirewallPoliciesRestTransport._RemovePacketMirroringRule._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, ) # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception @@ -3351,9 +4246,9 @@ def __call__( json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_remove_association(resp) + resp = self._interceptor.post_remove_packet_mirroring_rule(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_remove_association_with_metadata( + resp, _ = self._interceptor.post_remove_packet_mirroring_rule_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -3369,10 +4264,10 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_association", + "Received response for google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_packet_mirroring_rule", extra={ "serviceName": "google.cloud.compute.v1.NetworkFirewallPolicies", - "rpcName": "RemoveAssociation", + "rpcName": "RemovePacketMirroringRule", "metadata": http_response["headers"], "httpResponse": http_response, }, @@ -3886,6 +4781,16 @@ def add_association( # In C++ this would require a dynamic_cast return self._AddAssociation(self._session, self._host, self._interceptor) # type: ignore + @property + def add_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest], compute.Operation + ]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._AddPacketMirroringRule(self._session, self._host, self._interceptor) # type: ignore + @property def add_rule( self, @@ -3948,6 +4853,17 @@ def get_iam_policy( # In C++ this would require a dynamic_cast return self._GetIamPolicy(self._session, self._host, self._interceptor) # type: ignore + @property + def get_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest], + compute.FirewallPolicyRule, + ]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._GetPacketMirroringRule(self._session, self._host, self._interceptor) # type: ignore + @property def get_rule( self, @@ -3984,6 +4900,17 @@ def patch( # In C++ this would require a dynamic_cast return self._Patch(self._session, self._host, self._interceptor) # type: ignore + @property + def patch_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest], + compute.Operation, + ]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._PatchPacketMirroringRule(self._session, self._host, self._interceptor) # type: ignore + @property def patch_rule( self, @@ -4002,6 +4929,17 @@ def remove_association( # In C++ this would require a dynamic_cast return self._RemoveAssociation(self._session, self._host, self._interceptor) # type: ignore + @property + def remove_packet_mirroring_rule( + self, + ) -> Callable[ + [compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest], + compute.Operation, + ]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._RemovePacketMirroringRule(self._session, self._host, self._interceptor) # type: ignore + @property def remove_rule( self, diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest_base.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest_base.py index 6f191e61a07c..831e227f3ed8 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest_base.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/network_firewall_policies/transports/rest_base.py @@ -143,6 +143,64 @@ def _get_query_params_json(transcoded_request): return query_params + class _BaseAddPacketMirroringRule: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "post", + "uri": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addPacketMirroringRule", + "body": "firewall_policy_rule_resource", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest.pb( + request + ) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_request_body_json(transcoded_request): + # Jsonify the request body + + body = json_format.MessageToJson( + transcoded_request["body"], use_integers_for_enums=False + ) + return body + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseNetworkFirewallPoliciesRestTransport._BaseAddPacketMirroringRule._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BaseAddRule: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") @@ -477,6 +535,54 @@ def _get_query_params_json(transcoded_request): return query_params + class _BaseGetPacketMirroringRule: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "get", + "uri": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getPacketMirroringRule", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest.pb( + request + ) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseNetworkFirewallPoliciesRestTransport._BaseGetPacketMirroringRule._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BaseGetRule: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") @@ -681,6 +787,64 @@ def _get_query_params_json(transcoded_request): return query_params + class _BasePatchPacketMirroringRule: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "post", + "uri": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchPacketMirroringRule", + "body": "firewall_policy_rule_resource", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = ( + compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest.pb(request) + ) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_request_body_json(transcoded_request): + # Jsonify the request body + + body = json_format.MessageToJson( + transcoded_request["body"], use_integers_for_enums=False + ) + return body + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseNetworkFirewallPoliciesRestTransport._BasePatchPacketMirroringRule._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BasePatchRule: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") @@ -785,6 +949,56 @@ def _get_query_params_json(transcoded_request): return query_params + class _BaseRemovePacketMirroringRule: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "post", + "uri": "/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removePacketMirroringRule", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = ( + compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest.pb( + request + ) + ) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseNetworkFirewallPoliciesRestTransport._BaseRemovePacketMirroringRule._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BaseRemoveRule: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/client.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/client.py index d5a9503c1968..f9b753bd6252 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/client.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/client.py @@ -886,15 +886,16 @@ def sample_get(): Returns: google.cloud.compute_v1.types.Commitment: - Represents a regional Commitment - resource. Creating a commitment resource - means that you are purchasing a - committed use contract with an explicit - start and end time. You can create - commitments based on vCPUs and memory - usage and receive discounted rates. For - full details, read Signing Up for - Committed Use Discounts. + Represents a regional resource-based + commitment resource. Creating this + commitment resource means that you are + purchasing a resource-based committed + use contract, with an explicit start and + end time. You can purchase + resource-based commitments for both + hardware and software resources. For + more information, read Resource-based + committed use discounts """ # Create or coerce a protobuf request object. @@ -1377,8 +1378,8 @@ def update_unary( ) -> compute.Operation: r"""Updates the specified commitment with the data included in the request. Update is performed only on selected fields included as - part of update-mask. Only the following fields can be modified: - auto_renew. + part of update-mask. Only the following fields can be updated: + auto_renew and plan. .. code-block:: python @@ -1424,8 +1425,8 @@ def sample_update(): on the ``request`` instance; if ``request`` is provided, this should not be set. commitment (str): - Name of the commitment for which auto - renew is being updated. + Name of the commitment that you want + to update. This corresponds to the ``commitment`` field on the ``request`` instance; if ``request`` is provided, this @@ -1518,8 +1519,8 @@ def update( ) -> extended_operation.ExtendedOperation: r"""Updates the specified commitment with the data included in the request. Update is performed only on selected fields included as - part of update-mask. Only the following fields can be modified: - auto_renew. + part of update-mask. Only the following fields can be updated: + auto_renew and plan. .. code-block:: python @@ -1565,8 +1566,8 @@ def sample_update(): on the ``request`` instance; if ``request`` is provided, this should not be set. commitment (str): - Name of the commitment for which auto - renew is being updated. + Name of the commitment that you want + to update. This corresponds to the ``commitment`` field on the ``request`` instance; if ``request`` is provided, this diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/transports/rest.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/transports/rest.py index 5359bcab9485..be0e0d634ed8 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/transports/rest.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/region_commitments/transports/rest.py @@ -640,15 +640,16 @@ def __call__( Returns: ~.compute.Commitment: - Represents a regional Commitment - resource. Creating a commitment resource - means that you are purchasing a - committed use contract with an explicit - start and end time. You can create - commitments based on vCPUs and memory - usage and receive discounted rates. For - full details, read Signing Up for - Committed Use Discounts. + Represents a regional resource-based + commitment resource. Creating this + commitment resource means that you are + purchasing a resource-based committed + use contract, with an explicit start and + end time. You can purchase + resource-based commitments for both + hardware and software resources. For + more information, read Resource-based + committed use discounts """ diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/client.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/client.py index 31b2c8e2d0a9..02ff98778389 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/client.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/client.py @@ -1088,9 +1088,9 @@ def error_code(self): # Done; return the response. return response - def get( + def delete_route_policy_unary( self, - request: Optional[Union[compute.GetRouterRequest, dict]] = None, + request: Optional[Union[compute.DeleteRoutePolicyRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, @@ -1098,8 +1098,8 @@ def get( retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.Router: - r"""Returns the specified Router resource. + ) -> compute.Operation: + r"""Deletes Route Policy .. code-block:: python @@ -1112,27 +1112,28 @@ def get( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_get(): + def sample_delete_route_policy(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.GetRouterRequest( + request = compute_v1.DeleteRoutePolicyRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.get(request=request) + response = client.delete_route_policy(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.GetRouterRequest, dict]): - The request object. A request message for Routers.Get. - See the method description for details. + request (Union[google.cloud.compute_v1.types.DeleteRoutePolicyRouterRequest, dict]): + The request object. A request message for + Routers.DeleteRoutePolicy. See the + method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1144,8 +1145,8 @@ def sample_get(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to - return. + Name of the Router resource where + Route Policy is defined. This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this @@ -1159,10 +1160,9 @@ def sample_get(): be of type `bytes`. Returns: - google.cloud.compute_v1.types.Router: - Represents a Cloud Router resource. - For more information about Cloud Router, - read the Cloud Router overview. + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. """ # Create or coerce a protobuf request object. @@ -1177,8 +1177,8 @@ def sample_get(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.GetRouterRequest): - request = compute.GetRouterRequest(request) + if not isinstance(request, compute.DeleteRoutePolicyRouterRequest): + request = compute.DeleteRoutePolicyRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -1190,7 +1190,7 @@ def sample_get(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get] + rpc = self._transport._wrapped_methods[self._transport.delete_route_policy] # Certain fields should be provided within the metadata header; # add these here. @@ -1218,9 +1218,9 @@ def sample_get(): # Done; return the response. return response - def get_nat_ip_info( + def delete_route_policy( self, - request: Optional[Union[compute.GetNatIpInfoRouterRequest, dict]] = None, + request: Optional[Union[compute.DeleteRoutePolicyRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, @@ -1228,8 +1228,8 @@ def get_nat_ip_info( retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.NatIpInfoResponse: - r"""Retrieves runtime NAT IP information. + ) -> extended_operation.ExtendedOperation: + r"""Deletes Route Policy .. code-block:: python @@ -1242,28 +1242,28 @@ def get_nat_ip_info( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_get_nat_ip_info(): + def sample_delete_route_policy(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.GetNatIpInfoRouterRequest( + request = compute_v1.DeleteRoutePolicyRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.get_nat_ip_info(request=request) + response = client.delete_route_policy(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.GetNatIpInfoRouterRequest, dict]): + request (Union[google.cloud.compute_v1.types.DeleteRoutePolicyRouterRequest, dict]): The request object. A request message for - Routers.GetNatIpInfo. See the method - description for details. + Routers.DeleteRoutePolicy. See the + method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1275,9 +1275,8 @@ def sample_get_nat_ip_info(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to query - for Nat IP information. The name should - conform to RFC1035. + Name of the Router resource where + Route Policy is defined. This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this @@ -1291,7 +1290,9 @@ def sample_get_nat_ip_info(): be of type `bytes`. Returns: - google.cloud.compute_v1.types.NatIpInfoResponse: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. """ # Create or coerce a protobuf request object. @@ -1306,8 +1307,8 @@ def sample_get_nat_ip_info(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.GetNatIpInfoRouterRequest): - request = compute.GetNatIpInfoRouterRequest(request) + if not isinstance(request, compute.DeleteRoutePolicyRouterRequest): + request = compute.DeleteRoutePolicyRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -1319,7 +1320,7 @@ def sample_get_nat_ip_info(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_nat_ip_info] + rpc = self._transport._wrapped_methods[self._transport.delete_route_policy] # Certain fields should be provided within the metadata header; # add these here. @@ -1344,12 +1345,37 @@ def sample_get_nat_ip_info(): metadata=metadata, ) + operation_service = self._transport._region_operations_client + operation_request = compute.GetRegionOperationRequest() + operation_request.project = request.project + operation_request.region = request.region + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) + # Cancel is not part of extended operations yet. + cancel_operation = lambda: None + + # Note: this class is an implementation detail to provide a uniform + # set of names for certain fields in the extended operation proto message. + # See google.api_core.extended_operation.ExtendedOperation for details + # on these properties and the expected interface. + class _CustomOperation(extended_operation.ExtendedOperation): + @property + def error_message(self): + return self._extended_operation.http_error_message + + @property + def error_code(self): + return self._extended_operation.http_error_status_code + + response = _CustomOperation.make(get_operation, cancel_operation, response) + # Done; return the response. return response - def get_nat_mapping_info( + def get( self, - request: Optional[Union[compute.GetNatMappingInfoRoutersRequest, dict]] = None, + request: Optional[Union[compute.GetRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, @@ -1357,9 +1383,8 @@ def get_nat_mapping_info( retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> pagers.GetNatMappingInfoPager: - r"""Retrieves runtime Nat mapping information of VM - endpoints. + ) -> compute.Router: + r"""Returns the specified Router resource. .. code-block:: python @@ -1372,29 +1397,27 @@ def get_nat_mapping_info( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_get_nat_mapping_info(): + def sample_get(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.GetNatMappingInfoRoutersRequest( + request = compute_v1.GetRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - page_result = client.get_nat_mapping_info(request=request) + response = client.get(request=request) # Handle the response - for response in page_result: - print(response) + print(response) Args: - request (Union[google.cloud.compute_v1.types.GetNatMappingInfoRoutersRequest, dict]): - The request object. A request message for - Routers.GetNatMappingInfo. See the - method description for details. + request (Union[google.cloud.compute_v1.types.GetRouterRequest, dict]): + The request object. A request message for Routers.Get. + See the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1406,9 +1429,8 @@ def sample_get_nat_mapping_info(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to query - for Nat Mapping information of VM - endpoints. + Name of the Router resource to + return. This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this @@ -1422,12 +1444,10 @@ def sample_get_nat_mapping_info(): be of type `bytes`. Returns: - google.cloud.compute_v1.services.routers.pagers.GetNatMappingInfoPager: - Contains a list of - VmEndpointNatMappings. - Iterating over this object will yield - results and resolve additional pages - automatically. + google.cloud.compute_v1.types.Router: + Represents a Cloud Router resource. + For more information about Cloud Router, + read the Cloud Router overview. """ # Create or coerce a protobuf request object. @@ -1442,8 +1462,8 @@ def sample_get_nat_mapping_info(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.GetNatMappingInfoRoutersRequest): - request = compute.GetNatMappingInfoRoutersRequest(request) + if not isinstance(request, compute.GetRouterRequest): + request = compute.GetRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -1455,7 +1475,7 @@ def sample_get_nat_mapping_info(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_nat_mapping_info] + rpc = self._transport._wrapped_methods[self._transport.get] # Certain fields should be provided within the metadata header; # add these here. @@ -1480,23 +1500,12 @@ def sample_get_nat_mapping_info(): metadata=metadata, ) - # This method is paged; wrap the response in a pager, which provides - # an `__iter__` convenience method. - response = pagers.GetNatMappingInfoPager( - method=rpc, - request=request, - response=response, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - # Done; return the response. return response - def get_router_status( + def get_nat_ip_info( self, - request: Optional[Union[compute.GetRouterStatusRouterRequest, dict]] = None, + request: Optional[Union[compute.GetNatIpInfoRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, @@ -1504,9 +1513,8 @@ def get_router_status( retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.RouterStatusResponse: - r"""Retrieves runtime information of the specified - router. + ) -> compute.NatIpInfoResponse: + r"""Retrieves runtime NAT IP information. .. code-block:: python @@ -1519,27 +1527,27 @@ def get_router_status( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_get_router_status(): + def sample_get_nat_ip_info(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.GetRouterStatusRouterRequest( + request = compute_v1.GetNatIpInfoRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.get_router_status(request=request) + response = client.get_nat_ip_info(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.GetRouterStatusRouterRequest, dict]): + request (Union[google.cloud.compute_v1.types.GetNatIpInfoRouterRequest, dict]): The request object. A request message for - Routers.GetRouterStatus. See the method + Routers.GetNatIpInfo. See the method description for details. project (str): Project ID for this request. @@ -1552,7 +1560,10 @@ def sample_get_router_status(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to query. + Name of the Router resource to query + for Nat IP information. The name should + conform to RFC1035. + This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this should not be set. @@ -1565,7 +1576,7 @@ def sample_get_router_status(): be of type `bytes`. Returns: - google.cloud.compute_v1.types.RouterStatusResponse: + google.cloud.compute_v1.types.NatIpInfoResponse: """ # Create or coerce a protobuf request object. @@ -1580,8 +1591,8 @@ def sample_get_router_status(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.GetRouterStatusRouterRequest): - request = compute.GetRouterStatusRouterRequest(request) + if not isinstance(request, compute.GetNatIpInfoRouterRequest): + request = compute.GetNatIpInfoRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -1593,7 +1604,7 @@ def sample_get_router_status(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_router_status] + rpc = self._transport._wrapped_methods[self._transport.get_nat_ip_info] # Certain fields should be provided within the metadata header; # add these here. @@ -1621,19 +1632,19 @@ def sample_get_router_status(): # Done; return the response. return response - def insert_unary( + def get_nat_mapping_info( self, - request: Optional[Union[compute.InsertRouterRequest, dict]] = None, + request: Optional[Union[compute.GetNatMappingInfoRoutersRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, - router_resource: Optional[compute.Router] = None, + router: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.Operation: - r"""Creates a Router resource in the specified project - and region using the data included in the request. + ) -> pagers.GetNatMappingInfoPager: + r"""Retrieves runtime Nat mapping information of VM + endpoints. .. code-block:: python @@ -1646,26 +1657,29 @@ def insert_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_insert(): + def sample_get_nat_mapping_info(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.InsertRouterRequest( + request = compute_v1.GetNatMappingInfoRoutersRequest( project="project_value", region="region_value", + router="router_value", ) # Make the request - response = client.insert(request=request) + page_result = client.get_nat_mapping_info(request=request) # Handle the response - print(response) + for response in page_result: + print(response) Args: - request (Union[google.cloud.compute_v1.types.InsertRouterRequest, dict]): - The request object. A request message for Routers.Insert. - See the method description for details. + request (Union[google.cloud.compute_v1.types.GetNatMappingInfoRoutersRequest, dict]): + The request object. A request message for + Routers.GetNatMappingInfo. See the + method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1676,9 +1690,12 @@ def sample_insert(): This corresponds to the ``region`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - router_resource (google.cloud.compute_v1.types.Router): - The body resource for this request - This corresponds to the ``router_resource`` field + router (str): + Name of the Router resource to query + for Nat Mapping information of VM + endpoints. + + This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -1690,15 +1707,18 @@ def sample_insert(): be of type `bytes`. Returns: - google.api_core.extended_operation.ExtendedOperation: - An object representing a extended - long-running operation. + google.cloud.compute_v1.services.routers.pagers.GetNatMappingInfoPager: + Contains a list of + VmEndpointNatMappings. + Iterating over this object will yield + results and resolve additional pages + automatically. """ # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, region, router_resource]) + has_flattened_params = any([project, region, router]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -1707,20 +1727,20 @@ def sample_insert(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.InsertRouterRequest): - request = compute.InsertRouterRequest(request) + if not isinstance(request, compute.GetNatMappingInfoRoutersRequest): + request = compute.GetNatMappingInfoRoutersRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if region is not None: request.region = region - if router_resource is not None: - request.router_resource = router_resource + if router is not None: + request.router = router # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.insert] + rpc = self._transport._wrapped_methods[self._transport.get_nat_mapping_info] # Certain fields should be provided within the metadata header; # add these here. @@ -1729,6 +1749,7 @@ def sample_insert(): ( ("project", request.project), ("region", request.region), + ("router", request.router), ) ), ) @@ -1744,22 +1765,32 @@ def sample_insert(): metadata=metadata, ) + # This method is paged; wrap the response in a pager, which provides + # an `__iter__` convenience method. + response = pagers.GetNatMappingInfoPager( + method=rpc, + request=request, + response=response, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + # Done; return the response. return response - def insert( + def get_route_policy( self, - request: Optional[Union[compute.InsertRouterRequest, dict]] = None, + request: Optional[Union[compute.GetRoutePolicyRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, - router_resource: Optional[compute.Router] = None, + router: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> extended_operation.ExtendedOperation: - r"""Creates a Router resource in the specified project - and region using the data included in the request. + ) -> compute.RoutersGetRoutePolicyResponse: + r"""Returns specified Route Policy .. code-block:: python @@ -1772,26 +1803,28 @@ def insert( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_insert(): + def sample_get_route_policy(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.InsertRouterRequest( + request = compute_v1.GetRoutePolicyRouterRequest( project="project_value", region="region_value", + router="router_value", ) # Make the request - response = client.insert(request=request) + response = client.get_route_policy(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.InsertRouterRequest, dict]): - The request object. A request message for Routers.Insert. - See the method description for details. + request (Union[google.cloud.compute_v1.types.GetRoutePolicyRouterRequest, dict]): + The request object. A request message for + Routers.GetRoutePolicy. See the method + description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1802,9 +1835,1109 @@ def sample_insert(): This corresponds to the ``region`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - router_resource (google.cloud.compute_v1.types.Router): - The body resource for this request - This corresponds to the ``router_resource`` field + router (str): + Name of the Router resource to query + for the route policy. The name should + conform to RFC1035. + + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.cloud.compute_v1.types.RoutersGetRoutePolicyResponse: + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.GetRoutePolicyRouterRequest): + request = compute.GetRoutePolicyRouterRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router is not None: + request.router = router + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_route_policy] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ("router", request.router), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_router_status( + self, + request: Optional[Union[compute.GetRouterStatusRouterRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.RouterStatusResponse: + r"""Retrieves runtime information of the specified + router. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_get_router_status(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.GetRouterStatusRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.get_router_status(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.GetRouterStatusRouterRequest, dict]): + The request object. A request message for + Routers.GetRouterStatus. See the method + description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router (str): + Name of the Router resource to query. + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.cloud.compute_v1.types.RouterStatusResponse: + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.GetRouterStatusRouterRequest): + request = compute.GetRouterStatusRouterRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router is not None: + request.router = router + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_router_status] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ("router", request.router), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def insert_unary( + self, + request: Optional[Union[compute.InsertRouterRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router_resource: Optional[compute.Router] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Creates a Router resource in the specified project + and region using the data included in the request. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_insert(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.InsertRouterRequest( + project="project_value", + region="region_value", + ) + + # Make the request + response = client.insert(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.InsertRouterRequest, dict]): + The request object. A request message for Routers.Insert. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router_resource (google.cloud.compute_v1.types.Router): + The body resource for this request + This corresponds to the ``router_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router_resource]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.InsertRouterRequest): + request = compute.InsertRouterRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router_resource is not None: + request.router_resource = router_resource + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.insert] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def insert( + self, + request: Optional[Union[compute.InsertRouterRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router_resource: Optional[compute.Router] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> extended_operation.ExtendedOperation: + r"""Creates a Router resource in the specified project + and region using the data included in the request. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_insert(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.InsertRouterRequest( + project="project_value", + region="region_value", + ) + + # Make the request + response = client.insert(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.InsertRouterRequest, dict]): + The request object. A request message for Routers.Insert. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router_resource (google.cloud.compute_v1.types.Router): + The body resource for this request + This corresponds to the ``router_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router_resource]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.InsertRouterRequest): + request = compute.InsertRouterRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router_resource is not None: + request.router_resource = router_resource + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.insert] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + operation_service = self._transport._region_operations_client + operation_request = compute.GetRegionOperationRequest() + operation_request.project = request.project + operation_request.region = request.region + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) + # Cancel is not part of extended operations yet. + cancel_operation = lambda: None + + # Note: this class is an implementation detail to provide a uniform + # set of names for certain fields in the extended operation proto message. + # See google.api_core.extended_operation.ExtendedOperation for details + # on these properties and the expected interface. + class _CustomOperation(extended_operation.ExtendedOperation): + @property + def error_message(self): + return self._extended_operation.http_error_message + + @property + def error_code(self): + return self._extended_operation.http_error_status_code + + response = _CustomOperation.make(get_operation, cancel_operation, response) + + # Done; return the response. + return response + + def list( + self, + request: Optional[Union[compute.ListRoutersRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> pagers.ListPager: + r"""Retrieves a list of Router resources available to the + specified project. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_list(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.ListRoutersRequest( + project="project_value", + region="region_value", + ) + + # Make the request + page_result = client.list(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.ListRoutersRequest, dict]): + The request object. A request message for Routers.List. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.cloud.compute_v1.services.routers.pagers.ListPager: + Contains a list of Router resources. + + Iterating over this object will yield + results and resolve additional pages + automatically. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.ListRoutersRequest): + request = compute.ListRoutersRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__iter__` convenience method. + response = pagers.ListPager( + method=rpc, + request=request, + response=response, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_bgp_routes( + self, + request: Optional[Union[compute.ListBgpRoutesRoutersRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> pagers.ListBgpRoutesPager: + r"""Retrieves a list of router bgp routes available to + the specified project. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_list_bgp_routes(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.ListBgpRoutesRoutersRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + page_result = client.list_bgp_routes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.ListBgpRoutesRoutersRequest, dict]): + The request object. A request message for + Routers.ListBgpRoutes. See the method + description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router (str): + Name or id of the resource for this + request. Name should conform to RFC1035. + + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.cloud.compute_v1.services.routers.pagers.ListBgpRoutesPager: + Iterating over this object will yield + results and resolve additional pages + automatically. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.ListBgpRoutesRoutersRequest): + request = compute.ListBgpRoutesRoutersRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router is not None: + request.router = router + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_bgp_routes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ("router", request.router), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__iter__` convenience method. + response = pagers.ListBgpRoutesPager( + method=rpc, + request=request, + response=response, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_route_policies( + self, + request: Optional[Union[compute.ListRoutePoliciesRoutersRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> pagers.ListRoutePoliciesPager: + r"""Retrieves a list of router route policy subresources + available to the specified project. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_list_route_policies(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.ListRoutePoliciesRoutersRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + page_result = client.list_route_policies(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.ListRoutePoliciesRoutersRequest, dict]): + The request object. A request message for + Routers.ListRoutePolicies. See the + method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router (str): + Name or id of the resource for this + request. Name should conform to RFC1035. + + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.cloud.compute_v1.services.routers.pagers.ListRoutePoliciesPager: + Iterating over this object will yield + results and resolve additional pages + automatically. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.ListRoutePoliciesRoutersRequest): + request = compute.ListRoutePoliciesRoutersRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router is not None: + request.router = router + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_route_policies] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ("router", request.router), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__iter__` convenience method. + response = pagers.ListRoutePoliciesPager( + method=rpc, + request=request, + response=response, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def patch_unary( + self, + request: Optional[Union[compute.PatchRouterRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router: Optional[str] = None, + router_resource: Optional[compute.Router] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Patches the specified Router resource with the data + included in the request. This method supports PATCH + semantics and uses JSON merge patch format and + processing rules. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_patch(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.PatchRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.patch(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.PatchRouterRequest, dict]): + The request object. A request message for Routers.Patch. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router (str): + Name of the Router resource to patch. + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router_resource (google.cloud.compute_v1.types.Router): + The body resource for this request + This corresponds to the ``router_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. + + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router, router_resource]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.PatchRouterRequest): + request = compute.PatchRouterRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router is not None: + request.router = router + if router_resource is not None: + request.router_resource = router_resource + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.patch] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ("router", request.router), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def patch( + self, + request: Optional[Union[compute.PatchRouterRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router: Optional[str] = None, + router_resource: Optional[compute.Router] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> extended_operation.ExtendedOperation: + r"""Patches the specified Router resource with the data + included in the request. This method supports PATCH + semantics and uses JSON merge patch format and + processing rules. + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_patch(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.PatchRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.patch(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.PatchRouterRequest, dict]): + The request object. A request message for Routers.Patch. + See the method description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router (str): + Name of the Router resource to patch. + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router_resource (google.cloud.compute_v1.types.Router): + The body resource for this request + This corresponds to the ``router_resource`` field on the ``request`` instance; if ``request`` is provided, this should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -1824,7 +2957,7 @@ def sample_insert(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, region, router_resource]) + has_flattened_params = any([project, region, router, router_resource]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -1833,20 +2966,22 @@ def sample_insert(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.InsertRouterRequest): - request = compute.InsertRouterRequest(request) + if not isinstance(request, compute.PatchRouterRequest): + request = compute.PatchRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if region is not None: request.region = region + if router is not None: + request.router = router if router_resource is not None: request.router_resource = router_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.insert] + rpc = self._transport._wrapped_methods[self._transport.patch] # Certain fields should be provided within the metadata header; # add these here. @@ -1855,6 +2990,7 @@ def sample_insert(): ( ("project", request.project), ("region", request.region), + ("router", request.router), ) ), ) @@ -1898,18 +3034,19 @@ def error_code(self): # Done; return the response. return response - def list( + def patch_route_policy_unary( self, - request: Optional[Union[compute.ListRoutersRequest, dict]] = None, + request: Optional[Union[compute.PatchRoutePolicyRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, + router: Optional[str] = None, + route_policy_resource: Optional[compute.RoutePolicy] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> pagers.ListPager: - r"""Retrieves a list of Router resources available to the - specified project. + ) -> compute.Operation: + r"""Patches Route Policy .. code-block:: python @@ -1922,27 +3059,28 @@ def list( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_list(): + def sample_patch_route_policy(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.ListRoutersRequest( + request = compute_v1.PatchRoutePolicyRouterRequest( project="project_value", region="region_value", + router="router_value", ) # Make the request - page_result = client.list(request=request) + response = client.patch_route_policy(request=request) # Handle the response - for response in page_result: - print(response) + print(response) Args: - request (Union[google.cloud.compute_v1.types.ListRoutersRequest, dict]): - The request object. A request message for Routers.List. - See the method description for details. + request (Union[google.cloud.compute_v1.types.PatchRoutePolicyRouterRequest, dict]): + The request object. A request message for + Routers.PatchRoutePolicy. See the method + description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -1953,6 +3091,18 @@ def sample_list(): This corresponds to the ``region`` field on the ``request`` instance; if ``request`` is provided, this should not be set. + router (str): + Name of the Router resource where + Route Policy is defined. + + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + route_policy_resource (google.cloud.compute_v1.types.RoutePolicy): + The body resource for this request + This corresponds to the ``route_policy_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1962,18 +3112,153 @@ def sample_list(): be of type `bytes`. Returns: - google.cloud.compute_v1.services.routers.pagers.ListPager: - Contains a list of Router resources. + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. - Iterating over this object will yield - results and resolve additional pages - automatically. + """ + # Create or coerce a protobuf request object. + # - Quick check: If we got a request object, we should *not* have + # gotten any keyword arguments that map to the request. + has_flattened_params = any([project, region, router, route_policy_resource]) + if request is not None and has_flattened_params: + raise ValueError( + "If the `request` argument is set, then none of " + "the individual field arguments should be set." + ) + + # - Use the request object if provided (there's no risk of modifying the input as + # there are no flattened fields), or create one. + if not isinstance(request, compute.PatchRoutePolicyRouterRequest): + request = compute.PatchRoutePolicyRouterRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if project is not None: + request.project = project + if region is not None: + request.region = region + if router is not None: + request.router = router + if route_policy_resource is not None: + request.route_policy_resource = route_policy_resource + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.patch_route_policy] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + ( + ("project", request.project), + ("region", request.region), + ("router", request.router), + ) + ), + ) + + # Validate the universe domain. + self._validate_universe_domain() + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def patch_route_policy( + self, + request: Optional[Union[compute.PatchRoutePolicyRouterRequest, dict]] = None, + *, + project: Optional[str] = None, + region: Optional[str] = None, + router: Optional[str] = None, + route_policy_resource: Optional[compute.RoutePolicy] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> extended_operation.ExtendedOperation: + r"""Patches Route Policy + + .. code-block:: python + + # This snippet has been automatically generated and should be regarded as a + # code template only. + # It will require modifications to work: + # - It may require correct/in-range values for request initialization. + # - It may require specifying regional endpoints when creating the service + # client as shown in: + # https://googleapis.dev/python/google-api-core/latest/client_options.html + from google.cloud import compute_v1 + + def sample_patch_route_policy(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.PatchRoutePolicyRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.patch_route_policy(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.compute_v1.types.PatchRoutePolicyRouterRequest, dict]): + The request object. A request message for + Routers.PatchRoutePolicy. See the method + description for details. + project (str): + Project ID for this request. + This corresponds to the ``project`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + region (str): + Name of the region for this request. + This corresponds to the ``region`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + router (str): + Name of the Router resource where + Route Policy is defined. + + This corresponds to the ``router`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + route_policy_resource (google.cloud.compute_v1.types.RoutePolicy): + The body resource for this request + This corresponds to the ``route_policy_resource`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. """ # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, region]) + has_flattened_params = any([project, region, router, route_policy_resource]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -1982,18 +3267,22 @@ def sample_list(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.ListRoutersRequest): - request = compute.ListRoutersRequest(request) + if not isinstance(request, compute.PatchRoutePolicyRouterRequest): + request = compute.PatchRoutePolicyRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: request.project = project if region is not None: request.region = region + if router is not None: + request.router = router + if route_policy_resource is not None: + request.route_policy_resource = route_policy_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list] + rpc = self._transport._wrapped_methods[self._transport.patch_route_policy] # Certain fields should be provided within the metadata header; # add these here. @@ -2002,6 +3291,7 @@ def sample_list(): ( ("project", request.project), ("region", request.region), + ("router", request.router), ) ), ) @@ -2017,23 +3307,37 @@ def sample_list(): metadata=metadata, ) - # This method is paged; wrap the response in a pager, which provides - # an `__iter__` convenience method. - response = pagers.ListPager( - method=rpc, - request=request, - response=response, - retry=retry, - timeout=timeout, - metadata=metadata, - ) + operation_service = self._transport._region_operations_client + operation_request = compute.GetRegionOperationRequest() + operation_request.project = request.project + operation_request.region = request.region + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) + # Cancel is not part of extended operations yet. + cancel_operation = lambda: None + + # Note: this class is an implementation detail to provide a uniform + # set of names for certain fields in the extended operation proto message. + # See google.api_core.extended_operation.ExtendedOperation for details + # on these properties and the expected interface. + class _CustomOperation(extended_operation.ExtendedOperation): + @property + def error_message(self): + return self._extended_operation.http_error_message + + @property + def error_code(self): + return self._extended_operation.http_error_status_code + + response = _CustomOperation.make(get_operation, cancel_operation, response) # Done; return the response. return response - def patch_unary( + def preview( self, - request: Optional[Union[compute.PatchRouterRequest, dict]] = None, + request: Optional[Union[compute.PreviewRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, @@ -2042,11 +3346,10 @@ def patch_unary( retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.Operation: - r"""Patches the specified Router resource with the data - included in the request. This method supports PATCH - semantics and uses JSON merge patch format and - processing rules. + ) -> compute.RoutersPreviewResponse: + r"""Preview fields auto-generated during router create + and update operations. Calling this method does NOT + create or update the router. .. code-block:: python @@ -2059,27 +3362,28 @@ def patch_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_patch(): + def sample_preview(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.PatchRouterRequest( + request = compute_v1.PreviewRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.patch(request=request) + response = client.preview(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.PatchRouterRequest, dict]): - The request object. A request message for Routers.Patch. - See the method description for details. + request (Union[google.cloud.compute_v1.types.PreviewRouterRequest, dict]): + The request object. A request message for + Routers.Preview. See the method + description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -2091,7 +3395,7 @@ def sample_patch(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to patch. + Name of the Router resource to query. This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this should not be set. @@ -2109,9 +3413,7 @@ def sample_patch(): be of type `bytes`. Returns: - google.api_core.extended_operation.ExtendedOperation: - An object representing a extended - long-running operation. + google.cloud.compute_v1.types.RoutersPreviewResponse: """ # Create or coerce a protobuf request object. @@ -2126,8 +3428,8 @@ def sample_patch(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.PatchRouterRequest): - request = compute.PatchRouterRequest(request) + if not isinstance(request, compute.PreviewRouterRequest): + request = compute.PreviewRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -2141,7 +3443,7 @@ def sample_patch(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.patch] + rpc = self._transport._wrapped_methods[self._transport.preview] # Certain fields should be provided within the metadata header; # add these here. @@ -2169,9 +3471,9 @@ def sample_patch(): # Done; return the response. return response - def patch( + def update_unary( self, - request: Optional[Union[compute.PatchRouterRequest, dict]] = None, + request: Optional[Union[compute.UpdateRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, @@ -2180,11 +3482,13 @@ def patch( retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> extended_operation.ExtendedOperation: - r"""Patches the specified Router resource with the data - included in the request. This method supports PATCH - semantics and uses JSON merge patch format and - processing rules. + ) -> compute.Operation: + r"""Updates the specified Router resource with the data + included in the request. This method conforms to PUT + semantics, which requests that the state of the target + resource be created or replaced with the state defined + by the representation enclosed in the request message + payload. .. code-block:: python @@ -2197,26 +3501,26 @@ def patch( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_patch(): + def sample_update(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.PatchRouterRequest( + request = compute_v1.UpdateRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.patch(request=request) + response = client.update(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.PatchRouterRequest, dict]): - The request object. A request message for Routers.Patch. + request (Union[google.cloud.compute_v1.types.UpdateRouterRequest, dict]): + The request object. A request message for Routers.Update. See the method description for details. project (str): Project ID for this request. @@ -2229,7 +3533,9 @@ def sample_patch(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to patch. + Name of the Router resource to + update. + This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this should not be set. @@ -2264,8 +3570,8 @@ def sample_patch(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.PatchRouterRequest): - request = compute.PatchRouterRequest(request) + if not isinstance(request, compute.UpdateRouterRequest): + request = compute.UpdateRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -2279,7 +3585,7 @@ def sample_patch(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.patch] + rpc = self._transport._wrapped_methods[self._transport.update] # Certain fields should be provided within the metadata header; # add these here. @@ -2304,37 +3610,12 @@ def sample_patch(): metadata=metadata, ) - operation_service = self._transport._region_operations_client - operation_request = compute.GetRegionOperationRequest() - operation_request.project = request.project - operation_request.region = request.region - operation_request.operation = response.name - - get_operation = functools.partial(operation_service.get, operation_request) - # Cancel is not part of extended operations yet. - cancel_operation = lambda: None - - # Note: this class is an implementation detail to provide a uniform - # set of names for certain fields in the extended operation proto message. - # See google.api_core.extended_operation.ExtendedOperation for details - # on these properties and the expected interface. - class _CustomOperation(extended_operation.ExtendedOperation): - @property - def error_message(self): - return self._extended_operation.http_error_message - - @property - def error_code(self): - return self._extended_operation.http_error_status_code - - response = _CustomOperation.make(get_operation, cancel_operation, response) - # Done; return the response. return response - def preview( + def update( self, - request: Optional[Union[compute.PreviewRouterRequest, dict]] = None, + request: Optional[Union[compute.UpdateRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, @@ -2343,10 +3624,13 @@ def preview( retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.RoutersPreviewResponse: - r"""Preview fields auto-generated during router create - and update operations. Calling this method does NOT - create or update the router. + ) -> extended_operation.ExtendedOperation: + r"""Updates the specified Router resource with the data + included in the request. This method conforms to PUT + semantics, which requests that the state of the target + resource be created or replaced with the state defined + by the representation enclosed in the request message + payload. .. code-block:: python @@ -2359,28 +3643,27 @@ def preview( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_preview(): + def sample_update(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.PreviewRouterRequest( + request = compute_v1.UpdateRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.preview(request=request) + response = client.update(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.PreviewRouterRequest, dict]): - The request object. A request message for - Routers.Preview. See the method - description for details. + request (Union[google.cloud.compute_v1.types.UpdateRouterRequest, dict]): + The request object. A request message for Routers.Update. + See the method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -2392,7 +3675,9 @@ def sample_preview(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to query. + Name of the Router resource to + update. + This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this should not be set. @@ -2410,7 +3695,9 @@ def sample_preview(): be of type `bytes`. Returns: - google.cloud.compute_v1.types.RoutersPreviewResponse: + google.api_core.extended_operation.ExtendedOperation: + An object representing a extended + long-running operation. """ # Create or coerce a protobuf request object. @@ -2425,8 +3712,8 @@ def sample_preview(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.PreviewRouterRequest): - request = compute.PreviewRouterRequest(request) + if not isinstance(request, compute.UpdateRouterRequest): + request = compute.UpdateRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -2440,7 +3727,7 @@ def sample_preview(): # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.preview] + rpc = self._transport._wrapped_methods[self._transport.update] # Certain fields should be provided within the metadata header; # add these here. @@ -2465,27 +3752,47 @@ def sample_preview(): metadata=metadata, ) + operation_service = self._transport._region_operations_client + operation_request = compute.GetRegionOperationRequest() + operation_request.project = request.project + operation_request.region = request.region + operation_request.operation = response.name + + get_operation = functools.partial(operation_service.get, operation_request) + # Cancel is not part of extended operations yet. + cancel_operation = lambda: None + + # Note: this class is an implementation detail to provide a uniform + # set of names for certain fields in the extended operation proto message. + # See google.api_core.extended_operation.ExtendedOperation for details + # on these properties and the expected interface. + class _CustomOperation(extended_operation.ExtendedOperation): + @property + def error_message(self): + return self._extended_operation.http_error_message + + @property + def error_code(self): + return self._extended_operation.http_error_status_code + + response = _CustomOperation.make(get_operation, cancel_operation, response) + # Done; return the response. return response - def update_unary( + def update_route_policy_unary( self, - request: Optional[Union[compute.UpdateRouterRequest, dict]] = None, + request: Optional[Union[compute.UpdateRoutePolicyRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, router: Optional[str] = None, - router_resource: Optional[compute.Router] = None, + route_policy_resource: Optional[compute.RoutePolicy] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Updates the specified Router resource with the data - included in the request. This method conforms to PUT - semantics, which requests that the state of the target - resource be created or replaced with the state defined - by the representation enclosed in the request message - payload. + r"""Updates or creates new Route Policy .. code-block:: python @@ -2498,27 +3805,28 @@ def update_unary( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_update(): + def sample_update_route_policy(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.UpdateRouterRequest( + request = compute_v1.UpdateRoutePolicyRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.update(request=request) + response = client.update_route_policy(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.UpdateRouterRequest, dict]): - The request object. A request message for Routers.Update. - See the method description for details. + request (Union[google.cloud.compute_v1.types.UpdateRoutePolicyRouterRequest, dict]): + The request object. A request message for + Routers.UpdateRoutePolicy. See the + method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -2530,15 +3838,15 @@ def sample_update(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to - update. + Name of the Router resource where + Route Policy is defined. This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - router_resource (google.cloud.compute_v1.types.Router): + route_policy_resource (google.cloud.compute_v1.types.RoutePolicy): The body resource for this request - This corresponds to the ``router_resource`` field + This corresponds to the ``route_policy_resource`` field on the ``request`` instance; if ``request`` is provided, this should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -2558,7 +3866,7 @@ def sample_update(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, region, router, router_resource]) + has_flattened_params = any([project, region, router, route_policy_resource]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -2567,8 +3875,8 @@ def sample_update(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.UpdateRouterRequest): - request = compute.UpdateRouterRequest(request) + if not isinstance(request, compute.UpdateRoutePolicyRouterRequest): + request = compute.UpdateRoutePolicyRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -2577,12 +3885,12 @@ def sample_update(): request.region = region if router is not None: request.router = router - if router_resource is not None: - request.router_resource = router_resource + if route_policy_resource is not None: + request.route_policy_resource = route_policy_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.update] + rpc = self._transport._wrapped_methods[self._transport.update_route_policy] # Certain fields should be provided within the metadata header; # add these here. @@ -2610,24 +3918,19 @@ def sample_update(): # Done; return the response. return response - def update( + def update_route_policy( self, - request: Optional[Union[compute.UpdateRouterRequest, dict]] = None, + request: Optional[Union[compute.UpdateRoutePolicyRouterRequest, dict]] = None, *, project: Optional[str] = None, region: Optional[str] = None, router: Optional[str] = None, - router_resource: Optional[compute.Router] = None, + route_policy_resource: Optional[compute.RoutePolicy] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> extended_operation.ExtendedOperation: - r"""Updates the specified Router resource with the data - included in the request. This method conforms to PUT - semantics, which requests that the state of the target - resource be created or replaced with the state defined - by the representation enclosed in the request message - payload. + r"""Updates or creates new Route Policy .. code-block:: python @@ -2640,27 +3943,28 @@ def update( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import compute_v1 - def sample_update(): + def sample_update_route_policy(): # Create a client client = compute_v1.RoutersClient() # Initialize request argument(s) - request = compute_v1.UpdateRouterRequest( + request = compute_v1.UpdateRoutePolicyRouterRequest( project="project_value", region="region_value", router="router_value", ) # Make the request - response = client.update(request=request) + response = client.update_route_policy(request=request) # Handle the response print(response) Args: - request (Union[google.cloud.compute_v1.types.UpdateRouterRequest, dict]): - The request object. A request message for Routers.Update. - See the method description for details. + request (Union[google.cloud.compute_v1.types.UpdateRoutePolicyRouterRequest, dict]): + The request object. A request message for + Routers.UpdateRoutePolicy. See the + method description for details. project (str): Project ID for this request. This corresponds to the ``project`` field @@ -2672,15 +3976,15 @@ def sample_update(): on the ``request`` instance; if ``request`` is provided, this should not be set. router (str): - Name of the Router resource to - update. + Name of the Router resource where + Route Policy is defined. This corresponds to the ``router`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - router_resource (google.cloud.compute_v1.types.Router): + route_policy_resource (google.cloud.compute_v1.types.RoutePolicy): The body resource for this request - This corresponds to the ``router_resource`` field + This corresponds to the ``route_policy_resource`` field on the ``request`` instance; if ``request`` is provided, this should not be set. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -2700,7 +4004,7 @@ def sample_update(): # Create or coerce a protobuf request object. # - Quick check: If we got a request object, we should *not* have # gotten any keyword arguments that map to the request. - has_flattened_params = any([project, region, router, router_resource]) + has_flattened_params = any([project, region, router, route_policy_resource]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -2709,8 +4013,8 @@ def sample_update(): # - Use the request object if provided (there's no risk of modifying the input as # there are no flattened fields), or create one. - if not isinstance(request, compute.UpdateRouterRequest): - request = compute.UpdateRouterRequest(request) + if not isinstance(request, compute.UpdateRoutePolicyRouterRequest): + request = compute.UpdateRoutePolicyRouterRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if project is not None: @@ -2719,12 +4023,12 @@ def sample_update(): request.region = region if router is not None: request.router = router - if router_resource is not None: - request.router_resource = router_resource + if route_policy_resource is not None: + request.route_policy_resource = route_policy_resource # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.update] + rpc = self._transport._wrapped_methods[self._transport.update_route_policy] # Certain fields should be provided within the metadata header; # add these here. diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/pagers.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/pagers.py index 35694a7cc2d9..a5a7eb0c7cb0 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/pagers.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/pagers.py @@ -270,3 +270,155 @@ def __iter__(self) -> Iterator[compute.Router]: def __repr__(self) -> str: return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListBgpRoutesPager: + """A pager for iterating through ``list_bgp_routes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.compute_v1.types.RoutersListBgpRoutes` object, and + provides an ``__iter__`` method to iterate through its + ``result`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListBgpRoutes`` requests and continue to iterate + through the ``result`` field on the + corresponding responses. + + All the usual :class:`google.cloud.compute_v1.types.RoutersListBgpRoutes` + attributes are available on the pager. If multiple requests are made, only + the most recent response is retained, and thus used for attribute lookup. + """ + + def __init__( + self, + method: Callable[..., compute.RoutersListBgpRoutes], + request: compute.ListBgpRoutesRoutersRequest, + response: compute.RoutersListBgpRoutes, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = () + ): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.compute_v1.types.ListBgpRoutesRoutersRequest): + The initial request object. + response (google.cloud.compute_v1.types.RoutersListBgpRoutes): + The initial response object. + retry (google.api_core.retry.Retry): Designation of what errors, + if any, should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + """ + self._method = method + self._request = compute.ListBgpRoutesRoutersRequest(request) + self._response = response + self._retry = retry + self._timeout = timeout + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[compute.RoutersListBgpRoutes]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method( + self._request, + retry=self._retry, + timeout=self._timeout, + metadata=self._metadata, + ) + yield self._response + + def __iter__(self) -> Iterator[compute.BgpRoute]: + for page in self.pages: + yield from page.result + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListRoutePoliciesPager: + """A pager for iterating through ``list_route_policies`` requests. + + This class thinly wraps an initial + :class:`google.cloud.compute_v1.types.RoutersListRoutePolicies` object, and + provides an ``__iter__`` method to iterate through its + ``result`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListRoutePolicies`` requests and continue to iterate + through the ``result`` field on the + corresponding responses. + + All the usual :class:`google.cloud.compute_v1.types.RoutersListRoutePolicies` + attributes are available on the pager. If multiple requests are made, only + the most recent response is retained, and thus used for attribute lookup. + """ + + def __init__( + self, + method: Callable[..., compute.RoutersListRoutePolicies], + request: compute.ListRoutePoliciesRoutersRequest, + response: compute.RoutersListRoutePolicies, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = () + ): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.compute_v1.types.ListRoutePoliciesRoutersRequest): + The initial request object. + response (google.cloud.compute_v1.types.RoutersListRoutePolicies): + The initial response object. + retry (google.api_core.retry.Retry): Designation of what errors, + if any, should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + """ + self._method = method + self._request = compute.ListRoutePoliciesRoutersRequest(request) + self._response = response + self._retry = retry + self._timeout = timeout + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[compute.RoutersListRoutePolicies]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method( + self._request, + retry=self._retry, + timeout=self._timeout, + metadata=self._metadata, + ) + yield self._response + + def __iter__(self) -> Iterator[compute.RoutePolicy]: + for page in self.pages: + yield from page.result + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/base.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/base.py index 2df5c9e1b7c0..af3af5327dd9 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/base.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/base.py @@ -143,6 +143,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.delete_route_policy: gapic_v1.method.wrap_method( + self.delete_route_policy, + default_timeout=None, + client_info=client_info, + ), self.get: gapic_v1.method.wrap_method( self.get, default_timeout=None, @@ -158,6 +163,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.get_route_policy: gapic_v1.method.wrap_method( + self.get_route_policy, + default_timeout=None, + client_info=client_info, + ), self.get_router_status: gapic_v1.method.wrap_method( self.get_router_status, default_timeout=None, @@ -173,11 +183,26 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.list_bgp_routes: gapic_v1.method.wrap_method( + self.list_bgp_routes, + default_timeout=None, + client_info=client_info, + ), + self.list_route_policies: gapic_v1.method.wrap_method( + self.list_route_policies, + default_timeout=None, + client_info=client_info, + ), self.patch: gapic_v1.method.wrap_method( self.patch, default_timeout=None, client_info=client_info, ), + self.patch_route_policy: gapic_v1.method.wrap_method( + self.patch_route_policy, + default_timeout=None, + client_info=client_info, + ), self.preview: gapic_v1.method.wrap_method( self.preview, default_timeout=None, @@ -188,6 +213,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=None, client_info=client_info, ), + self.update_route_policy: gapic_v1.method.wrap_method( + self.update_route_policy, + default_timeout=None, + client_info=client_info, + ), } def close(self): @@ -217,6 +247,15 @@ def delete( ]: raise NotImplementedError() + @property + def delete_route_policy( + self, + ) -> Callable[ + [compute.DeleteRoutePolicyRouterRequest], + Union[compute.Operation, Awaitable[compute.Operation]], + ]: + raise NotImplementedError() + @property def get( self, @@ -246,6 +285,18 @@ def get_nat_mapping_info( ]: raise NotImplementedError() + @property + def get_route_policy( + self, + ) -> Callable[ + [compute.GetRoutePolicyRouterRequest], + Union[ + compute.RoutersGetRoutePolicyResponse, + Awaitable[compute.RoutersGetRoutePolicyResponse], + ], + ]: + raise NotImplementedError() + @property def get_router_status( self, @@ -273,6 +324,27 @@ def list( ]: raise NotImplementedError() + @property + def list_bgp_routes( + self, + ) -> Callable[ + [compute.ListBgpRoutesRoutersRequest], + Union[compute.RoutersListBgpRoutes, Awaitable[compute.RoutersListBgpRoutes]], + ]: + raise NotImplementedError() + + @property + def list_route_policies( + self, + ) -> Callable[ + [compute.ListRoutePoliciesRoutersRequest], + Union[ + compute.RoutersListRoutePolicies, + Awaitable[compute.RoutersListRoutePolicies], + ], + ]: + raise NotImplementedError() + @property def patch( self, @@ -282,6 +354,15 @@ def patch( ]: raise NotImplementedError() + @property + def patch_route_policy( + self, + ) -> Callable[ + [compute.PatchRoutePolicyRouterRequest], + Union[compute.Operation, Awaitable[compute.Operation]], + ]: + raise NotImplementedError() + @property def preview( self, @@ -302,6 +383,15 @@ def update( ]: raise NotImplementedError() + @property + def update_route_policy( + self, + ) -> Callable[ + [compute.UpdateRoutePolicyRouterRequest], + Union[compute.Operation, Awaitable[compute.Operation]], + ]: + raise NotImplementedError() + @property def kind(self) -> str: raise NotImplementedError() diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest.py index 7545ad578e44..44743b7f24b3 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest.py @@ -84,6 +84,14 @@ def post_delete(self, response): logging.log(f"Received response: {response}") return response + def pre_delete_route_policy(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_delete_route_policy(self, response): + logging.log(f"Received response: {response}") + return response + def pre_get(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -108,6 +116,14 @@ def post_get_nat_mapping_info(self, response): logging.log(f"Received response: {response}") return response + def pre_get_route_policy(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_get_route_policy(self, response): + logging.log(f"Received response: {response}") + return response + def pre_get_router_status(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -132,6 +148,22 @@ def post_list(self, response): logging.log(f"Received response: {response}") return response + def pre_list_bgp_routes(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_list_bgp_routes(self, response): + logging.log(f"Received response: {response}") + return response + + def pre_list_route_policies(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_list_route_policies(self, response): + logging.log(f"Received response: {response}") + return response + def pre_patch(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -140,6 +172,14 @@ def post_patch(self, response): logging.log(f"Received response: {response}") return response + def pre_patch_route_policy(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_patch_route_policy(self, response): + logging.log(f"Received response: {response}") + return response + def pre_preview(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata @@ -156,6 +196,14 @@ def post_update(self, response): logging.log(f"Received response: {response}") return response + def pre_update_route_policy(self, request, metadata): + logging.log(f"Received request: {request}") + return request, metadata + + def post_update_route_policy(self, response): + logging.log(f"Received response: {response}") + return response + transport = RoutersRestTransport(interceptor=MyCustomRoutersInterceptor()) client = RoutersClient(transport=transport) @@ -254,6 +302,54 @@ def post_delete_with_metadata( """ return response, metadata + def pre_delete_route_policy( + self, + request: compute.DeleteRoutePolicyRouterRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.DeleteRoutePolicyRouterRequest, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Pre-rpc interceptor for delete_route_policy + + Override in a subclass to manipulate the request or metadata + before they are sent to the Routers server. + """ + return request, metadata + + def post_delete_route_policy( + self, response: compute.Operation + ) -> compute.Operation: + """Post-rpc interceptor for delete_route_policy + + DEPRECATED. Please use the `post_delete_route_policy_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the Routers server but before + it is returned to user code. This `post_delete_route_policy` interceptor runs + before the `post_delete_route_policy_with_metadata` interceptor. + """ + return response + + def post_delete_route_policy_with_metadata( + self, + response: compute.Operation, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.Operation, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for delete_route_policy + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the Routers server but before it is returned to user code. + + We recommend only using this `post_delete_route_policy_with_metadata` + interceptor in new development instead of the `post_delete_route_policy` interceptor. + When both interceptors are used, this `post_delete_route_policy_with_metadata` interceptor runs after the + `post_delete_route_policy` interceptor. The (possibly modified) response returned by + `post_delete_route_policy` will be passed to + `post_delete_route_policy_with_metadata`. + """ + return response, metadata + def pre_get( self, request: compute.GetRouterRequest, @@ -396,6 +492,56 @@ def post_get_nat_mapping_info_with_metadata( """ return response, metadata + def pre_get_route_policy( + self, + request: compute.GetRoutePolicyRouterRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.GetRoutePolicyRouterRequest, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Pre-rpc interceptor for get_route_policy + + Override in a subclass to manipulate the request or metadata + before they are sent to the Routers server. + """ + return request, metadata + + def post_get_route_policy( + self, response: compute.RoutersGetRoutePolicyResponse + ) -> compute.RoutersGetRoutePolicyResponse: + """Post-rpc interceptor for get_route_policy + + DEPRECATED. Please use the `post_get_route_policy_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the Routers server but before + it is returned to user code. This `post_get_route_policy` interceptor runs + before the `post_get_route_policy_with_metadata` interceptor. + """ + return response + + def post_get_route_policy_with_metadata( + self, + response: compute.RoutersGetRoutePolicyResponse, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.RoutersGetRoutePolicyResponse, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Post-rpc interceptor for get_route_policy + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the Routers server but before it is returned to user code. + + We recommend only using this `post_get_route_policy_with_metadata` + interceptor in new development instead of the `post_get_route_policy` interceptor. + When both interceptors are used, this `post_get_route_policy_with_metadata` interceptor runs after the + `post_get_route_policy` interceptor. The (possibly modified) response returned by + `post_get_route_policy` will be passed to + `post_get_route_policy_with_metadata`. + """ + return response, metadata + def pre_get_router_status( self, request: compute.GetRouterStatusRouterRequest, @@ -532,6 +678,104 @@ def post_list_with_metadata( """ return response, metadata + def pre_list_bgp_routes( + self, + request: compute.ListBgpRoutesRoutersRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.ListBgpRoutesRoutersRequest, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Pre-rpc interceptor for list_bgp_routes + + Override in a subclass to manipulate the request or metadata + before they are sent to the Routers server. + """ + return request, metadata + + def post_list_bgp_routes( + self, response: compute.RoutersListBgpRoutes + ) -> compute.RoutersListBgpRoutes: + """Post-rpc interceptor for list_bgp_routes + + DEPRECATED. Please use the `post_list_bgp_routes_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the Routers server but before + it is returned to user code. This `post_list_bgp_routes` interceptor runs + before the `post_list_bgp_routes_with_metadata` interceptor. + """ + return response + + def post_list_bgp_routes_with_metadata( + self, + response: compute.RoutersListBgpRoutes, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.RoutersListBgpRoutes, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for list_bgp_routes + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the Routers server but before it is returned to user code. + + We recommend only using this `post_list_bgp_routes_with_metadata` + interceptor in new development instead of the `post_list_bgp_routes` interceptor. + When both interceptors are used, this `post_list_bgp_routes_with_metadata` interceptor runs after the + `post_list_bgp_routes` interceptor. The (possibly modified) response returned by + `post_list_bgp_routes` will be passed to + `post_list_bgp_routes_with_metadata`. + """ + return response, metadata + + def pre_list_route_policies( + self, + request: compute.ListRoutePoliciesRoutersRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.ListRoutePoliciesRoutersRequest, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Pre-rpc interceptor for list_route_policies + + Override in a subclass to manipulate the request or metadata + before they are sent to the Routers server. + """ + return request, metadata + + def post_list_route_policies( + self, response: compute.RoutersListRoutePolicies + ) -> compute.RoutersListRoutePolicies: + """Post-rpc interceptor for list_route_policies + + DEPRECATED. Please use the `post_list_route_policies_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the Routers server but before + it is returned to user code. This `post_list_route_policies` interceptor runs + before the `post_list_route_policies_with_metadata` interceptor. + """ + return response + + def post_list_route_policies_with_metadata( + self, + response: compute.RoutersListRoutePolicies, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.RoutersListRoutePolicies, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Post-rpc interceptor for list_route_policies + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the Routers server but before it is returned to user code. + + We recommend only using this `post_list_route_policies_with_metadata` + interceptor in new development instead of the `post_list_route_policies` interceptor. + When both interceptors are used, this `post_list_route_policies_with_metadata` interceptor runs after the + `post_list_route_policies` interceptor. The (possibly modified) response returned by + `post_list_route_policies` will be passed to + `post_list_route_policies_with_metadata`. + """ + return response, metadata + def pre_patch( self, request: compute.PatchRouterRequest, @@ -576,6 +820,52 @@ def post_patch_with_metadata( """ return response, metadata + def pre_patch_route_policy( + self, + request: compute.PatchRoutePolicyRouterRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.PatchRoutePolicyRouterRequest, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Pre-rpc interceptor for patch_route_policy + + Override in a subclass to manipulate the request or metadata + before they are sent to the Routers server. + """ + return request, metadata + + def post_patch_route_policy(self, response: compute.Operation) -> compute.Operation: + """Post-rpc interceptor for patch_route_policy + + DEPRECATED. Please use the `post_patch_route_policy_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the Routers server but before + it is returned to user code. This `post_patch_route_policy` interceptor runs + before the `post_patch_route_policy_with_metadata` interceptor. + """ + return response + + def post_patch_route_policy_with_metadata( + self, + response: compute.Operation, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.Operation, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for patch_route_policy + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the Routers server but before it is returned to user code. + + We recommend only using this `post_patch_route_policy_with_metadata` + interceptor in new development instead of the `post_patch_route_policy` interceptor. + When both interceptors are used, this `post_patch_route_policy_with_metadata` interceptor runs after the + `post_patch_route_policy` interceptor. The (possibly modified) response returned by + `post_patch_route_policy` will be passed to + `post_patch_route_policy_with_metadata`. + """ + return response, metadata + def pre_preview( self, request: compute.PreviewRouterRequest, @@ -666,6 +956,54 @@ def post_update_with_metadata( """ return response, metadata + def pre_update_route_policy( + self, + request: compute.UpdateRoutePolicyRouterRequest, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[ + compute.UpdateRoutePolicyRouterRequest, Sequence[Tuple[str, Union[str, bytes]]] + ]: + """Pre-rpc interceptor for update_route_policy + + Override in a subclass to manipulate the request or metadata + before they are sent to the Routers server. + """ + return request, metadata + + def post_update_route_policy( + self, response: compute.Operation + ) -> compute.Operation: + """Post-rpc interceptor for update_route_policy + + DEPRECATED. Please use the `post_update_route_policy_with_metadata` + interceptor instead. + + Override in a subclass to read or manipulate the response + after it is returned by the Routers server but before + it is returned to user code. This `post_update_route_policy` interceptor runs + before the `post_update_route_policy_with_metadata` interceptor. + """ + return response + + def post_update_route_policy_with_metadata( + self, + response: compute.Operation, + metadata: Sequence[Tuple[str, Union[str, bytes]]], + ) -> Tuple[compute.Operation, Sequence[Tuple[str, Union[str, bytes]]]]: + """Post-rpc interceptor for update_route_policy + + Override in a subclass to read or manipulate the response or metadata after it + is returned by the Routers server but before it is returned to user code. + + We recommend only using this `post_update_route_policy_with_metadata` + interceptor in new development instead of the `post_update_route_policy` interceptor. + When both interceptors are used, this `post_update_route_policy_with_metadata` interceptor runs after the + `post_update_route_policy` interceptor. The (possibly modified) response returned by + `post_update_route_policy` will be passed to + `post_update_route_policy_with_metadata`. + """ + return response, metadata + @dataclasses.dataclass class RoutersRestStub: @@ -1067,9 +1405,11 @@ def __call__( ) return resp - class _Get(_BaseRoutersRestTransport._BaseGet, RoutersRestStub): + class _DeleteRoutePolicy( + _BaseRoutersRestTransport._BaseDeleteRoutePolicy, RoutersRestStub + ): def __hash__(self): - return hash("RoutersRestTransport.Get") + return hash("RoutersRestTransport.DeleteRoutePolicy") @staticmethod def _get_response( @@ -1095,18 +1435,19 @@ def _get_response( def __call__( self, - request: compute.GetRouterRequest, + request: compute.DeleteRoutePolicyRouterRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.Router: - r"""Call the get method over HTTP. + ) -> compute.Operation: + r"""Call the delete route policy method over HTTP. Args: - request (~.compute.GetRouterRequest): - The request object. A request message for Routers.Get. - See the method description for details. + request (~.compute.DeleteRoutePolicyRouterRequest): + The request object. A request message for + Routers.DeleteRoutePolicy. See the + method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1116,25 +1457,189 @@ def __call__( be of type `bytes`. Returns: - ~.compute.Router: - Represents a Cloud Router resource. - For more information about Cloud Router, - read the Cloud Router overview. + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. """ - http_options = _BaseRoutersRestTransport._BaseGet._get_http_options() - - request, metadata = self._interceptor.pre_get(request, metadata) - transcoded_request = ( - _BaseRoutersRestTransport._BaseGet._get_transcoded_request( - http_options, request - ) + http_options = ( + _BaseRoutersRestTransport._BaseDeleteRoutePolicy._get_http_options() ) - # Jsonify the query params - query_params = _BaseRoutersRestTransport._BaseGet._get_query_params_json( - transcoded_request + request, metadata = self._interceptor.pre_delete_route_policy( + request, metadata + ) + transcoded_request = _BaseRoutersRestTransport._BaseDeleteRoutePolicy._get_transcoded_request( + http_options, request + ) + + # Jsonify the query params + query_params = ( + _BaseRoutersRestTransport._BaseDeleteRoutePolicy._get_query_params_json( + transcoded_request + ) + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.RoutersClient.DeleteRoutePolicy", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "DeleteRoutePolicy", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = RoutersRestTransport._DeleteRoutePolicy._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.Operation() + pb_resp = compute.Operation.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_delete_route_policy(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_delete_route_policy_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.Operation.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.RoutersClient.delete_route_policy", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "DeleteRoutePolicy", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _Get(_BaseRoutersRestTransport._BaseGet, RoutersRestStub): + def __hash__(self): + return hash("RoutersRestTransport.Get") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + ) + return response + + def __call__( + self, + request: compute.GetRouterRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Router: + r"""Call the get method over HTTP. + + Args: + request (~.compute.GetRouterRequest): + The request object. A request message for Routers.Get. + See the method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Router: + Represents a Cloud Router resource. + For more information about Cloud Router, + read the Cloud Router overview. + + """ + + http_options = _BaseRoutersRestTransport._BaseGet._get_http_options() + + request, metadata = self._interceptor.pre_get(request, metadata) + transcoded_request = ( + _BaseRoutersRestTransport._BaseGet._get_transcoded_request( + http_options, request + ) + ) + + # Jsonify the query params + query_params = _BaseRoutersRestTransport._BaseGet._get_query_params_json( + transcoded_request ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -1513,11 +2018,11 @@ def __call__( ) return resp - class _GetRouterStatus( - _BaseRoutersRestTransport._BaseGetRouterStatus, RoutersRestStub + class _GetRoutePolicy( + _BaseRoutersRestTransport._BaseGetRoutePolicy, RoutersRestStub ): def __hash__(self): - return hash("RoutersRestTransport.GetRouterStatus") + return hash("RoutersRestTransport.GetRoutePolicy") @staticmethod def _get_response( @@ -1543,18 +2048,18 @@ def _get_response( def __call__( self, - request: compute.GetRouterStatusRouterRequest, + request: compute.GetRoutePolicyRouterRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.RouterStatusResponse: - r"""Call the get router status method over HTTP. + ) -> compute.RoutersGetRoutePolicyResponse: + r"""Call the get route policy method over HTTP. Args: - request (~.compute.GetRouterStatusRouterRequest): + request (~.compute.GetRoutePolicyRouterRequest): The request object. A request message for - Routers.GetRouterStatus. See the method + Routers.GetRoutePolicy. See the method description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -1565,26 +2070,26 @@ def __call__( be of type `bytes`. Returns: - ~.compute.RouterStatusResponse: + ~.compute.RoutersGetRoutePolicyResponse: """ http_options = ( - _BaseRoutersRestTransport._BaseGetRouterStatus._get_http_options() + _BaseRoutersRestTransport._BaseGetRoutePolicy._get_http_options() ) - request, metadata = self._interceptor.pre_get_router_status( + request, metadata = self._interceptor.pre_get_route_policy( request, metadata ) transcoded_request = ( - _BaseRoutersRestTransport._BaseGetRouterStatus._get_transcoded_request( + _BaseRoutersRestTransport._BaseGetRoutePolicy._get_transcoded_request( http_options, request ) ) # Jsonify the query params query_params = ( - _BaseRoutersRestTransport._BaseGetRouterStatus._get_query_params_json( + _BaseRoutersRestTransport._BaseGetRoutePolicy._get_query_params_json( transcoded_request ) ) @@ -1607,17 +2112,17 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.RoutersClient.GetRouterStatus", + f"Sending request for google.cloud.compute_v1.RoutersClient.GetRoutePolicy", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "GetRouterStatus", + "rpcName": "GetRoutePolicy", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = RoutersRestTransport._GetRouterStatus._get_response( + response = RoutersRestTransport._GetRoutePolicy._get_response( self._host, metadata, query_params, @@ -1632,21 +2137,23 @@ def __call__( raise core_exceptions.from_http_response(response) # Return the response - resp = compute.RouterStatusResponse() - pb_resp = compute.RouterStatusResponse.pb(resp) + resp = compute.RoutersGetRoutePolicyResponse() + pb_resp = compute.RoutersGetRoutePolicyResponse.pb(resp) json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_get_router_status(resp) + resp = self._interceptor.post_get_route_policy(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_get_router_status_with_metadata( + resp, _ = self._interceptor.post_get_route_policy_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( logging.DEBUG ): # pragma: NO COVER try: - response_payload = compute.RouterStatusResponse.to_json(response) + response_payload = compute.RoutersGetRoutePolicyResponse.to_json( + response + ) except: response_payload = None http_response = { @@ -1655,19 +2162,21 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.RoutersClient.get_router_status", + "Received response for google.cloud.compute_v1.RoutersClient.get_route_policy", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "GetRouterStatus", + "rpcName": "GetRoutePolicy", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _Insert(_BaseRoutersRestTransport._BaseInsert, RoutersRestStub): + class _GetRouterStatus( + _BaseRoutersRestTransport._BaseGetRouterStatus, RoutersRestStub + ): def __hash__(self): - return hash("RoutersRestTransport.Insert") + return hash("RoutersRestTransport.GetRouterStatus") @staticmethod def _get_response( @@ -1688,24 +2197,24 @@ def _get_response( timeout=timeout, headers=headers, params=rest_helpers.flatten_query_params(query_params, strict=True), - data=body, ) return response def __call__( self, - request: compute.InsertRouterRequest, + request: compute.GetRouterStatusRouterRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), - ) -> compute.Operation: - r"""Call the insert method over HTTP. + ) -> compute.RouterStatusResponse: + r"""Call the get router status method over HTTP. Args: - request (~.compute.InsertRouterRequest): - The request object. A request message for Routers.Insert. - See the method description for details. + request (~.compute.GetRouterStatusRouterRequest): + The request object. A request message for + Routers.GetRouterStatus. See the method + description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -1715,43 +2224,28 @@ def __call__( be of type `bytes`. Returns: - ~.compute.Operation: - Represents an Operation resource. Google Compute Engine - has three Operation resources: \* - `Global `__ - \* - `Regional `__ - \* - `Zonal `__ - You can use an operation resource to manage asynchronous - API requests. For more information, read Handling API - responses. Operations can be global, regional or zonal. - - For global operations, use the ``globalOperations`` - resource. - For regional operations, use the - ``regionOperations`` resource. - For zonal operations, - use the ``zoneOperations`` resource. For more - information, read Global, Regional, and Zonal Resources. - Note that completed Operation resources have a limited - retention period. + ~.compute.RouterStatusResponse: """ - http_options = _BaseRoutersRestTransport._BaseInsert._get_http_options() + http_options = ( + _BaseRoutersRestTransport._BaseGetRouterStatus._get_http_options() + ) - request, metadata = self._interceptor.pre_insert(request, metadata) + request, metadata = self._interceptor.pre_get_router_status( + request, metadata + ) transcoded_request = ( - _BaseRoutersRestTransport._BaseInsert._get_transcoded_request( + _BaseRoutersRestTransport._BaseGetRouterStatus._get_transcoded_request( http_options, request ) ) - body = _BaseRoutersRestTransport._BaseInsert._get_request_body_json( - transcoded_request - ) - # Jsonify the query params - query_params = _BaseRoutersRestTransport._BaseInsert._get_query_params_json( - transcoded_request + query_params = ( + _BaseRoutersRestTransport._BaseGetRouterStatus._get_query_params_json( + transcoded_request + ) ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -1772,24 +2266,23 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.RoutersClient.Insert", + f"Sending request for google.cloud.compute_v1.RoutersClient.GetRouterStatus", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "Insert", + "rpcName": "GetRouterStatus", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = RoutersRestTransport._Insert._get_response( + response = RoutersRestTransport._GetRouterStatus._get_response( self._host, metadata, query_params, self._session, timeout, transcoded_request, - body, ) # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception @@ -1798,21 +2291,21 @@ def __call__( raise core_exceptions.from_http_response(response) # Return the response - resp = compute.Operation() - pb_resp = compute.Operation.pb(resp) + resp = compute.RouterStatusResponse() + pb_resp = compute.RouterStatusResponse.pb(resp) json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_insert(resp) + resp = self._interceptor.post_get_router_status(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_insert_with_metadata( + resp, _ = self._interceptor.post_get_router_status_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( logging.DEBUG ): # pragma: NO COVER try: - response_payload = compute.Operation.to_json(response) + response_payload = compute.RouterStatusResponse.to_json(response) except: response_payload = None http_response = { @@ -1821,19 +2314,19 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.RoutersClient.insert", + "Received response for google.cloud.compute_v1.RoutersClient.get_router_status", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "Insert", + "rpcName": "GetRouterStatus", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _List(_BaseRoutersRestTransport._BaseList, RoutersRestStub): + class _Insert(_BaseRoutersRestTransport._BaseInsert, RoutersRestStub): def __hash__(self): - return hash("RoutersRestTransport.List") + return hash("RoutersRestTransport.Insert") @staticmethod def _get_response( @@ -1854,12 +2347,178 @@ def _get_response( timeout=timeout, headers=headers, params=rest_helpers.flatten_query_params(query_params, strict=True), + data=body, ) return response def __call__( self, - request: compute.ListRoutersRequest, + request: compute.InsertRouterRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Call the insert method over HTTP. + + Args: + request (~.compute.InsertRouterRequest): + The request object. A request message for Routers.Insert. + See the method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. + + """ + + http_options = _BaseRoutersRestTransport._BaseInsert._get_http_options() + + request, metadata = self._interceptor.pre_insert(request, metadata) + transcoded_request = ( + _BaseRoutersRestTransport._BaseInsert._get_transcoded_request( + http_options, request + ) + ) + + body = _BaseRoutersRestTransport._BaseInsert._get_request_body_json( + transcoded_request + ) + + # Jsonify the query params + query_params = _BaseRoutersRestTransport._BaseInsert._get_query_params_json( + transcoded_request + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.RoutersClient.Insert", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "Insert", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = RoutersRestTransport._Insert._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + body, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.Operation() + pb_resp = compute.Operation.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_insert(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_insert_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.Operation.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.RoutersClient.insert", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "Insert", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _List(_BaseRoutersRestTransport._BaseList, RoutersRestStub): + def __hash__(self): + return hash("RoutersRestTransport.List") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + ) + return response + + def __call__( + self, + request: compute.ListRoutersRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, @@ -1886,15 +2545,478 @@ def __call__( http_options = _BaseRoutersRestTransport._BaseList._get_http_options() - request, metadata = self._interceptor.pre_list(request, metadata) + request, metadata = self._interceptor.pre_list(request, metadata) + transcoded_request = ( + _BaseRoutersRestTransport._BaseList._get_transcoded_request( + http_options, request + ) + ) + + # Jsonify the query params + query_params = _BaseRoutersRestTransport._BaseList._get_query_params_json( + transcoded_request + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.RoutersClient.List", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "List", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = RoutersRestTransport._List._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.RouterList() + pb_resp = compute.RouterList.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_list(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_list_with_metadata(resp, response_metadata) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.RouterList.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.RoutersClient.list", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "List", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _ListBgpRoutes(_BaseRoutersRestTransport._BaseListBgpRoutes, RoutersRestStub): + def __hash__(self): + return hash("RoutersRestTransport.ListBgpRoutes") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + ) + return response + + def __call__( + self, + request: compute.ListBgpRoutesRoutersRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.RoutersListBgpRoutes: + r"""Call the list bgp routes method over HTTP. + + Args: + request (~.compute.ListBgpRoutesRoutersRequest): + The request object. A request message for + Routers.ListBgpRoutes. See the method + description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.RoutersListBgpRoutes: + + """ + + http_options = ( + _BaseRoutersRestTransport._BaseListBgpRoutes._get_http_options() + ) + + request, metadata = self._interceptor.pre_list_bgp_routes(request, metadata) + transcoded_request = ( + _BaseRoutersRestTransport._BaseListBgpRoutes._get_transcoded_request( + http_options, request + ) + ) + + # Jsonify the query params + query_params = ( + _BaseRoutersRestTransport._BaseListBgpRoutes._get_query_params_json( + transcoded_request + ) + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.RoutersClient.ListBgpRoutes", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "ListBgpRoutes", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = RoutersRestTransport._ListBgpRoutes._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.RoutersListBgpRoutes() + pb_resp = compute.RoutersListBgpRoutes.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_list_bgp_routes(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_list_bgp_routes_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.RoutersListBgpRoutes.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.RoutersClient.list_bgp_routes", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "ListBgpRoutes", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _ListRoutePolicies( + _BaseRoutersRestTransport._BaseListRoutePolicies, RoutersRestStub + ): + def __hash__(self): + return hash("RoutersRestTransport.ListRoutePolicies") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + ) + return response + + def __call__( + self, + request: compute.ListRoutePoliciesRoutersRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.RoutersListRoutePolicies: + r"""Call the list route policies method over HTTP. + + Args: + request (~.compute.ListRoutePoliciesRoutersRequest): + The request object. A request message for + Routers.ListRoutePolicies. See the + method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.RoutersListRoutePolicies: + + """ + + http_options = ( + _BaseRoutersRestTransport._BaseListRoutePolicies._get_http_options() + ) + + request, metadata = self._interceptor.pre_list_route_policies( + request, metadata + ) + transcoded_request = _BaseRoutersRestTransport._BaseListRoutePolicies._get_transcoded_request( + http_options, request + ) + + # Jsonify the query params + query_params = ( + _BaseRoutersRestTransport._BaseListRoutePolicies._get_query_params_json( + transcoded_request + ) + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.RoutersClient.ListRoutePolicies", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "ListRoutePolicies", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = RoutersRestTransport._ListRoutePolicies._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.RoutersListRoutePolicies() + pb_resp = compute.RoutersListRoutePolicies.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_list_route_policies(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_list_route_policies_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.RoutersListRoutePolicies.to_json( + response + ) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.RoutersClient.list_route_policies", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "ListRoutePolicies", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + + class _Patch(_BaseRoutersRestTransport._BasePatch, RoutersRestStub): + def __hash__(self): + return hash("RoutersRestTransport.Patch") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + data=body, + ) + return response + + def __call__( + self, + request: compute.PatchRouterRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Call the patch method over HTTP. + + Args: + request (~.compute.PatchRouterRequest): + The request object. A request message for Routers.Patch. + See the method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. + + """ + + http_options = _BaseRoutersRestTransport._BasePatch._get_http_options() + + request, metadata = self._interceptor.pre_patch(request, metadata) transcoded_request = ( - _BaseRoutersRestTransport._BaseList._get_transcoded_request( + _BaseRoutersRestTransport._BasePatch._get_transcoded_request( http_options, request ) ) + body = _BaseRoutersRestTransport._BasePatch._get_request_body_json( + transcoded_request + ) + # Jsonify the query params - query_params = _BaseRoutersRestTransport._BaseList._get_query_params_json( + query_params = _BaseRoutersRestTransport._BasePatch._get_query_params_json( transcoded_request ) @@ -1916,23 +3038,24 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.RoutersClient.List", + f"Sending request for google.cloud.compute_v1.RoutersClient.Patch", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "List", + "rpcName": "Patch", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = RoutersRestTransport._List._get_response( + response = RoutersRestTransport._Patch._get_response( self._host, metadata, query_params, self._session, timeout, transcoded_request, + body, ) # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception @@ -1941,19 +3064,21 @@ def __call__( raise core_exceptions.from_http_response(response) # Return the response - resp = compute.RouterList() - pb_resp = compute.RouterList.pb(resp) + resp = compute.Operation() + pb_resp = compute.Operation.pb(resp) json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_list(resp) + resp = self._interceptor.post_patch(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_list_with_metadata(resp, response_metadata) + resp, _ = self._interceptor.post_patch_with_metadata( + resp, response_metadata + ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( logging.DEBUG ): # pragma: NO COVER try: - response_payload = compute.RouterList.to_json(response) + response_payload = compute.Operation.to_json(response) except: response_payload = None http_response = { @@ -1962,19 +3087,21 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.RoutersClient.list", + "Received response for google.cloud.compute_v1.RoutersClient.patch", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "List", + "rpcName": "Patch", "metadata": http_response["headers"], "httpResponse": http_response, }, ) return resp - class _Patch(_BaseRoutersRestTransport._BasePatch, RoutersRestStub): + class _PatchRoutePolicy( + _BaseRoutersRestTransport._BasePatchRoutePolicy, RoutersRestStub + ): def __hash__(self): - return hash("RoutersRestTransport.Patch") + return hash("RoutersRestTransport.PatchRoutePolicy") @staticmethod def _get_response( @@ -2001,18 +3128,19 @@ def _get_response( def __call__( self, - request: compute.PatchRouterRequest, + request: compute.PatchRoutePolicyRouterRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), ) -> compute.Operation: - r"""Call the patch method over HTTP. + r"""Call the patch route policy method over HTTP. Args: - request (~.compute.PatchRouterRequest): - The request object. A request message for Routers.Patch. - See the method description for details. + request (~.compute.PatchRoutePolicyRouterRequest): + The request object. A request message for + Routers.PatchRoutePolicy. See the method + description for details. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. @@ -2043,22 +3171,30 @@ def __call__( """ - http_options = _BaseRoutersRestTransport._BasePatch._get_http_options() + http_options = ( + _BaseRoutersRestTransport._BasePatchRoutePolicy._get_http_options() + ) - request, metadata = self._interceptor.pre_patch(request, metadata) + request, metadata = self._interceptor.pre_patch_route_policy( + request, metadata + ) transcoded_request = ( - _BaseRoutersRestTransport._BasePatch._get_transcoded_request( + _BaseRoutersRestTransport._BasePatchRoutePolicy._get_transcoded_request( http_options, request ) ) - body = _BaseRoutersRestTransport._BasePatch._get_request_body_json( - transcoded_request + body = ( + _BaseRoutersRestTransport._BasePatchRoutePolicy._get_request_body_json( + transcoded_request + ) ) # Jsonify the query params - query_params = _BaseRoutersRestTransport._BasePatch._get_query_params_json( - transcoded_request + query_params = ( + _BaseRoutersRestTransport._BasePatchRoutePolicy._get_query_params_json( + transcoded_request + ) ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -2079,17 +3215,17 @@ def __call__( "headers": dict(metadata), } _LOGGER.debug( - f"Sending request for google.cloud.compute_v1.RoutersClient.Patch", + f"Sending request for google.cloud.compute_v1.RoutersClient.PatchRoutePolicy", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "Patch", + "rpcName": "PatchRoutePolicy", "httpRequest": http_request, "metadata": http_request["headers"], }, ) # Send the request - response = RoutersRestTransport._Patch._get_response( + response = RoutersRestTransport._PatchRoutePolicy._get_response( self._host, metadata, query_params, @@ -2110,9 +3246,9 @@ def __call__( json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) - resp = self._interceptor.post_patch(resp) + resp = self._interceptor.post_patch_route_policy(resp) response_metadata = [(k, str(v)) for k, v in response.headers.items()] - resp, _ = self._interceptor.post_patch_with_metadata( + resp, _ = self._interceptor.post_patch_route_policy_with_metadata( resp, response_metadata ) if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( @@ -2128,10 +3264,10 @@ def __call__( "status": response.status_code, } _LOGGER.debug( - "Received response for google.cloud.compute_v1.RoutersClient.patch", + "Received response for google.cloud.compute_v1.RoutersClient.patch_route_policy", extra={ "serviceName": "google.cloud.compute.v1.Routers", - "rpcName": "Patch", + "rpcName": "PatchRoutePolicy", "metadata": http_response["headers"], "httpResponse": http_response, }, @@ -2456,6 +3592,181 @@ def __call__( ) return resp + class _UpdateRoutePolicy( + _BaseRoutersRestTransport._BaseUpdateRoutePolicy, RoutersRestStub + ): + def __hash__(self): + return hash("RoutersRestTransport.UpdateRoutePolicy") + + @staticmethod + def _get_response( + host, + metadata, + query_params, + session, + timeout, + transcoded_request, + body=None, + ): + uri = transcoded_request["uri"] + method = transcoded_request["method"] + headers = dict(metadata) + headers["Content-Type"] = "application/json" + response = getattr(session, method)( + "{host}{uri}".format(host=host, uri=uri), + timeout=timeout, + headers=headers, + params=rest_helpers.flatten_query_params(query_params, strict=True), + data=body, + ) + return response + + def __call__( + self, + request: compute.UpdateRoutePolicyRouterRequest, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Optional[float] = None, + metadata: Sequence[Tuple[str, Union[str, bytes]]] = (), + ) -> compute.Operation: + r"""Call the update route policy method over HTTP. + + Args: + request (~.compute.UpdateRoutePolicyRouterRequest): + The request object. A request message for + Routers.UpdateRoutePolicy. See the + method description for details. + retry (google.api_core.retry.Retry): Designation of what errors, if any, + should be retried. + timeout (float): The timeout for this request. + metadata (Sequence[Tuple[str, Union[str, bytes]]]): Key/value pairs which should be + sent along with the request as metadata. Normally, each value must be of type `str`, + but for metadata keys ending with the suffix `-bin`, the corresponding values must + be of type `bytes`. + + Returns: + ~.compute.Operation: + Represents an Operation resource. Google Compute Engine + has three Operation resources: \* + `Global `__ + \* + `Regional `__ + \* + `Zonal `__ + You can use an operation resource to manage asynchronous + API requests. For more information, read Handling API + responses. Operations can be global, regional or zonal. + - For global operations, use the ``globalOperations`` + resource. - For regional operations, use the + ``regionOperations`` resource. - For zonal operations, + use the ``zoneOperations`` resource. For more + information, read Global, Regional, and Zonal Resources. + Note that completed Operation resources have a limited + retention period. + + """ + + http_options = ( + _BaseRoutersRestTransport._BaseUpdateRoutePolicy._get_http_options() + ) + + request, metadata = self._interceptor.pre_update_route_policy( + request, metadata + ) + transcoded_request = _BaseRoutersRestTransport._BaseUpdateRoutePolicy._get_transcoded_request( + http_options, request + ) + + body = ( + _BaseRoutersRestTransport._BaseUpdateRoutePolicy._get_request_body_json( + transcoded_request + ) + ) + + # Jsonify the query params + query_params = ( + _BaseRoutersRestTransport._BaseUpdateRoutePolicy._get_query_params_json( + transcoded_request + ) + ) + + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + request_url = "{host}{uri}".format( + host=self._host, uri=transcoded_request["uri"] + ) + method = transcoded_request["method"] + try: + request_payload = type(request).to_json(request) + except: + request_payload = None + http_request = { + "payload": request_payload, + "requestMethod": method, + "requestUrl": request_url, + "headers": dict(metadata), + } + _LOGGER.debug( + f"Sending request for google.cloud.compute_v1.RoutersClient.UpdateRoutePolicy", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "UpdateRoutePolicy", + "httpRequest": http_request, + "metadata": http_request["headers"], + }, + ) + + # Send the request + response = RoutersRestTransport._UpdateRoutePolicy._get_response( + self._host, + metadata, + query_params, + self._session, + timeout, + transcoded_request, + body, + ) + + # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception + # subclass. + if response.status_code >= 400: + raise core_exceptions.from_http_response(response) + + # Return the response + resp = compute.Operation() + pb_resp = compute.Operation.pb(resp) + + json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True) + + resp = self._interceptor.post_update_route_policy(resp) + response_metadata = [(k, str(v)) for k, v in response.headers.items()] + resp, _ = self._interceptor.post_update_route_policy_with_metadata( + resp, response_metadata + ) + if CLIENT_LOGGING_SUPPORTED and _LOGGER.isEnabledFor( + logging.DEBUG + ): # pragma: NO COVER + try: + response_payload = compute.Operation.to_json(response) + except: + response_payload = None + http_response = { + "payload": response_payload, + "headers": dict(response.headers), + "status": response.status_code, + } + _LOGGER.debug( + "Received response for google.cloud.compute_v1.RoutersClient.update_route_policy", + extra={ + "serviceName": "google.cloud.compute.v1.Routers", + "rpcName": "UpdateRoutePolicy", + "metadata": http_response["headers"], + "httpResponse": http_response, + }, + ) + return resp + @property def aggregated_list( self, @@ -2470,6 +3781,14 @@ def delete(self) -> Callable[[compute.DeleteRouterRequest], compute.Operation]: # In C++ this would require a dynamic_cast return self._Delete(self._session, self._host, self._interceptor) # type: ignore + @property + def delete_route_policy( + self, + ) -> Callable[[compute.DeleteRoutePolicyRouterRequest], compute.Operation]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._DeleteRoutePolicy(self._session, self._host, self._interceptor) # type: ignore + @property def get(self) -> Callable[[compute.GetRouterRequest], compute.Router]: # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. @@ -2494,6 +3813,16 @@ def get_nat_mapping_info( # In C++ this would require a dynamic_cast return self._GetNatMappingInfo(self._session, self._host, self._interceptor) # type: ignore + @property + def get_route_policy( + self, + ) -> Callable[ + [compute.GetRoutePolicyRouterRequest], compute.RoutersGetRoutePolicyResponse + ]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._GetRoutePolicy(self._session, self._host, self._interceptor) # type: ignore + @property def get_router_status( self, @@ -2514,12 +3843,38 @@ def list(self) -> Callable[[compute.ListRoutersRequest], compute.RouterList]: # In C++ this would require a dynamic_cast return self._List(self._session, self._host, self._interceptor) # type: ignore + @property + def list_bgp_routes( + self, + ) -> Callable[[compute.ListBgpRoutesRoutersRequest], compute.RoutersListBgpRoutes]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._ListBgpRoutes(self._session, self._host, self._interceptor) # type: ignore + + @property + def list_route_policies( + self, + ) -> Callable[ + [compute.ListRoutePoliciesRoutersRequest], compute.RoutersListRoutePolicies + ]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._ListRoutePolicies(self._session, self._host, self._interceptor) # type: ignore + @property def patch(self) -> Callable[[compute.PatchRouterRequest], compute.Operation]: # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. # In C++ this would require a dynamic_cast return self._Patch(self._session, self._host, self._interceptor) # type: ignore + @property + def patch_route_policy( + self, + ) -> Callable[[compute.PatchRoutePolicyRouterRequest], compute.Operation]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._PatchRoutePolicy(self._session, self._host, self._interceptor) # type: ignore + @property def preview( self, @@ -2534,6 +3889,14 @@ def update(self) -> Callable[[compute.UpdateRouterRequest], compute.Operation]: # In C++ this would require a dynamic_cast return self._Update(self._session, self._host, self._interceptor) # type: ignore + @property + def update_route_policy( + self, + ) -> Callable[[compute.UpdateRoutePolicyRouterRequest], compute.Operation]: + # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here. + # In C++ this would require a dynamic_cast + return self._UpdateRoutePolicy(self._session, self._host, self._interceptor) # type: ignore + @property def kind(self) -> str: return "rest" diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest_base.py b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest_base.py index 8f19ea91296c..622a5933a24f 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest_base.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/services/routers/transports/rest_base.py @@ -179,6 +179,52 @@ def _get_query_params_json(transcoded_request): return query_params + class _BaseDeleteRoutePolicy: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "post", + "uri": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.DeleteRoutePolicyRouterRequest.pb(request) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseRoutersRestTransport._BaseDeleteRoutePolicy._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BaseGet: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") @@ -317,6 +363,52 @@ def _get_query_params_json(transcoded_request): return query_params + class _BaseGetRoutePolicy: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "get", + "uri": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRoutePolicy", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.GetRoutePolicyRouterRequest.pb(request) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseRoutersRestTransport._BaseGetRoutePolicy._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BaseGetRouterStatus: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") @@ -465,6 +557,98 @@ def _get_query_params_json(transcoded_request): return query_params + class _BaseListBgpRoutes: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "get", + "uri": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/listBgpRoutes", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.ListBgpRoutesRoutersRequest.pb(request) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseRoutersRestTransport._BaseListBgpRoutes._get_unset_required_fields( + query_params + ) + ) + + return query_params + + class _BaseListRoutePolicies: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "get", + "uri": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/listRoutePolicies", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.ListRoutePoliciesRoutersRequest.pb(request) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseRoutersRestTransport._BaseListRoutePolicies._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BasePatch: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") @@ -521,6 +705,62 @@ def _get_query_params_json(transcoded_request): return query_params + class _BasePatchRoutePolicy: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "post", + "uri": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy", + "body": "route_policy_resource", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.PatchRoutePolicyRouterRequest.pb(request) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_request_body_json(transcoded_request): + # Jsonify the request body + + body = json_format.MessageToJson( + transcoded_request["body"], use_integers_for_enums=False + ) + return body + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseRoutersRestTransport._BasePatchRoutePolicy._get_unset_required_fields( + query_params + ) + ) + + return query_params + class _BasePreview: def __hash__(self): # pragma: NO COVER return NotImplementedError("__hash__ must be implemented.") @@ -633,5 +873,61 @@ def _get_query_params_json(transcoded_request): return query_params + class _BaseUpdateRoutePolicy: + def __hash__(self): # pragma: NO COVER + return NotImplementedError("__hash__ must be implemented.") + + __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {} + + @classmethod + def _get_unset_required_fields(cls, message_dict): + return { + k: v + for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items() + if k not in message_dict + } + + @staticmethod + def _get_http_options(): + http_options: List[Dict[str, str]] = [ + { + "method": "post", + "uri": "/compute/v1/projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy", + "body": "route_policy_resource", + }, + ] + return http_options + + @staticmethod + def _get_transcoded_request(http_options, request): + pb_request = compute.UpdateRoutePolicyRouterRequest.pb(request) + transcoded_request = path_template.transcode(http_options, pb_request) + return transcoded_request + + @staticmethod + def _get_request_body_json(transcoded_request): + # Jsonify the request body + + body = json_format.MessageToJson( + transcoded_request["body"], use_integers_for_enums=False + ) + return body + + @staticmethod + def _get_query_params_json(transcoded_request): + query_params = json.loads( + json_format.MessageToJson( + transcoded_request["query_params"], + use_integers_for_enums=False, + ) + ) + query_params.update( + _BaseRoutersRestTransport._BaseUpdateRoutePolicy._get_unset_required_fields( + query_params + ) + ) + + return query_params + __all__ = ("_BaseRoutersRestTransport",) diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/types/__init__.py b/packages/google-cloud-compute/google/cloud/compute_v1/types/__init__.py index 03d712bf890e..0521b2afc042 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/types/__init__.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/types/__init__.py @@ -31,6 +31,7 @@ AddInstancesInstanceGroupRequest, AddInstanceTargetPoolRequest, AddNodesNodeGroupRequest, + AddPacketMirroringRuleNetworkFirewallPolicyRequest, AddPeeringNetworkRequest, AddResourcePoliciesDiskRequest, AddResourcePoliciesInstanceRequest, @@ -156,6 +157,9 @@ BfdPacket, BfdStatus, BfdStatusPacketCounts, + BgpRoute, + BgpRouteAsPath, + BgpRouteNetworkLayerReachabilityInformation, Binding, BulkInsertDiskRequest, BulkInsertDiskResource, @@ -258,6 +262,7 @@ DeleteRegionUrlMapRequest, DeleteReservationRequest, DeleteResourcePolicyRequest, + DeleteRoutePolicyRouterRequest, DeleteRouteRequest, DeleteRouterRequest, DeleteSecurityPolicyRequest, @@ -432,6 +437,7 @@ GetNodeTemplateRequest, GetNodeTypeRequest, GetPacketMirroringRequest, + GetPacketMirroringRuleNetworkFirewallPolicyRequest, GetProjectRequest, GetPublicAdvertisedPrefixeRequest, GetPublicDelegatedPrefixeRequest, @@ -460,6 +466,7 @@ GetRegionUrlMapRequest, GetReservationRequest, GetResourcePolicyRequest, + GetRoutePolicyRouterRequest, GetRouteRequest, GetRouterRequest, GetRouterStatusRouterRequest, @@ -753,6 +760,7 @@ ListAvailableFeaturesSslPoliciesRequest, ListBackendBucketsRequest, ListBackendServicesRequest, + ListBgpRoutesRoutersRequest, ListDisksRequest, ListDisksStoragePoolsRequest, ListDiskTypesRequest, @@ -833,6 +841,7 @@ ListRegionZonesRequest, ListReservationsRequest, ListResourcePoliciesRequest, + ListRoutePoliciesRoutersRequest, ListRoutersRequest, ListRoutesRequest, ListSecurityPoliciesRequest, @@ -987,6 +996,7 @@ PatchNetworkRequest, PatchNodeGroupRequest, PatchPacketMirroringRequest, + PatchPacketMirroringRuleNetworkFirewallPolicyRequest, PatchPerInstanceConfigsInstanceGroupManagerRequest, PatchPerInstanceConfigsRegionInstanceGroupManagerRequest, PatchPublicAdvertisedPrefixeRequest, @@ -1002,6 +1012,7 @@ PatchRegionTargetHttpsProxyRequest, PatchRegionUrlMapRequest, PatchResourcePolicyRequest, + PatchRoutePolicyRouterRequest, PatchRouterRequest, PatchRuleFirewallPolicyRequest, PatchRuleNetworkFirewallPolicyRequest, @@ -1096,6 +1107,7 @@ RemoveHealthCheckTargetPoolRequest, RemoveInstancesInstanceGroupRequest, RemoveInstanceTargetPoolRequest, + RemovePacketMirroringRuleNetworkFirewallPolicyRequest, RemovePeeringNetworkRequest, RemoveResourcePoliciesDiskRequest, RemoveResourcePoliciesInstanceRequest, @@ -1146,6 +1158,8 @@ Route, RouteAsPath, RouteList, + RoutePolicy, + RoutePolicyPolicyTerm, Router, RouterAdvertisedIpRange, RouterAggregatedList, @@ -1161,6 +1175,9 @@ RouterNatRule, RouterNatRuleAction, RouterNatSubnetworkToNat, + RoutersGetRoutePolicyResponse, + RoutersListBgpRoutes, + RoutersListRoutePolicies, RoutersPreviewResponse, RoutersScopedList, RouterStatus, @@ -1485,6 +1502,7 @@ UpdateRegionHealthCheckRequest, UpdateRegionUrlMapRequest, UpdateReservationRequest, + UpdateRoutePolicyRouterRequest, UpdateRouterRequest, UpdateShieldedInstanceConfigInstanceRequest, UpdateStoragePoolRequest, @@ -1560,6 +1578,7 @@ "AddInstancesInstanceGroupRequest", "AddInstanceTargetPoolRequest", "AddNodesNodeGroupRequest", + "AddPacketMirroringRuleNetworkFirewallPolicyRequest", "AddPeeringNetworkRequest", "AddResourcePoliciesDiskRequest", "AddResourcePoliciesInstanceRequest", @@ -1685,6 +1704,9 @@ "BfdPacket", "BfdStatus", "BfdStatusPacketCounts", + "BgpRoute", + "BgpRouteAsPath", + "BgpRouteNetworkLayerReachabilityInformation", "Binding", "BulkInsertDiskRequest", "BulkInsertDiskResource", @@ -1787,6 +1809,7 @@ "DeleteRegionUrlMapRequest", "DeleteReservationRequest", "DeleteResourcePolicyRequest", + "DeleteRoutePolicyRouterRequest", "DeleteRouteRequest", "DeleteRouterRequest", "DeleteSecurityPolicyRequest", @@ -1961,6 +1984,7 @@ "GetNodeTemplateRequest", "GetNodeTypeRequest", "GetPacketMirroringRequest", + "GetPacketMirroringRuleNetworkFirewallPolicyRequest", "GetProjectRequest", "GetPublicAdvertisedPrefixeRequest", "GetPublicDelegatedPrefixeRequest", @@ -1989,6 +2013,7 @@ "GetRegionUrlMapRequest", "GetReservationRequest", "GetResourcePolicyRequest", + "GetRoutePolicyRouterRequest", "GetRouteRequest", "GetRouterRequest", "GetRouterStatusRouterRequest", @@ -2282,6 +2307,7 @@ "ListAvailableFeaturesSslPoliciesRequest", "ListBackendBucketsRequest", "ListBackendServicesRequest", + "ListBgpRoutesRoutersRequest", "ListDisksRequest", "ListDisksStoragePoolsRequest", "ListDiskTypesRequest", @@ -2362,6 +2388,7 @@ "ListRegionZonesRequest", "ListReservationsRequest", "ListResourcePoliciesRequest", + "ListRoutePoliciesRoutersRequest", "ListRoutersRequest", "ListRoutesRequest", "ListSecurityPoliciesRequest", @@ -2516,6 +2543,7 @@ "PatchNetworkRequest", "PatchNodeGroupRequest", "PatchPacketMirroringRequest", + "PatchPacketMirroringRuleNetworkFirewallPolicyRequest", "PatchPerInstanceConfigsInstanceGroupManagerRequest", "PatchPerInstanceConfigsRegionInstanceGroupManagerRequest", "PatchPublicAdvertisedPrefixeRequest", @@ -2531,6 +2559,7 @@ "PatchRegionTargetHttpsProxyRequest", "PatchRegionUrlMapRequest", "PatchResourcePolicyRequest", + "PatchRoutePolicyRouterRequest", "PatchRouterRequest", "PatchRuleFirewallPolicyRequest", "PatchRuleNetworkFirewallPolicyRequest", @@ -2625,6 +2654,7 @@ "RemoveHealthCheckTargetPoolRequest", "RemoveInstancesInstanceGroupRequest", "RemoveInstanceTargetPoolRequest", + "RemovePacketMirroringRuleNetworkFirewallPolicyRequest", "RemovePeeringNetworkRequest", "RemoveResourcePoliciesDiskRequest", "RemoveResourcePoliciesInstanceRequest", @@ -2675,6 +2705,8 @@ "Route", "RouteAsPath", "RouteList", + "RoutePolicy", + "RoutePolicyPolicyTerm", "Router", "RouterAdvertisedIpRange", "RouterAggregatedList", @@ -2690,6 +2722,9 @@ "RouterNatRule", "RouterNatRuleAction", "RouterNatSubnetworkToNat", + "RoutersGetRoutePolicyResponse", + "RoutersListBgpRoutes", + "RoutersListRoutePolicies", "RoutersPreviewResponse", "RoutersScopedList", "RouterStatus", @@ -3014,6 +3049,7 @@ "UpdateRegionHealthCheckRequest", "UpdateRegionUrlMapRequest", "UpdateReservationRequest", + "UpdateRoutePolicyRouterRequest", "UpdateRouterRequest", "UpdateShieldedInstanceConfigInstanceRequest", "UpdateStoragePoolRequest", diff --git a/packages/google-cloud-compute/google/cloud/compute_v1/types/compute.py b/packages/google-cloud-compute/google/cloud/compute_v1/types/compute.py index 3da4c79a12ae..77bc3be1e383 100644 --- a/packages/google-cloud-compute/google/cloud/compute_v1/types/compute.py +++ b/packages/google-cloud-compute/google/cloud/compute_v1/types/compute.py @@ -41,6 +41,7 @@ "AddInstanceTargetPoolRequest", "AddInstancesInstanceGroupRequest", "AddNodesNodeGroupRequest", + "AddPacketMirroringRuleNetworkFirewallPolicyRequest", "AddPeeringNetworkRequest", "AddResourcePoliciesDiskRequest", "AddResourcePoliciesInstanceRequest", @@ -165,6 +166,9 @@ "BfdPacket", "BfdStatus", "BfdStatusPacketCounts", + "BgpRoute", + "BgpRouteAsPath", + "BgpRouteNetworkLayerReachabilityInformation", "Binding", "BulkInsertDiskRequest", "BulkInsertDiskResource", @@ -267,6 +271,7 @@ "DeleteRegionUrlMapRequest", "DeleteReservationRequest", "DeleteResourcePolicyRequest", + "DeleteRoutePolicyRouterRequest", "DeleteRouteRequest", "DeleteRouterRequest", "DeleteSecurityPolicyRequest", @@ -442,6 +447,7 @@ "GetNodeTemplateRequest", "GetNodeTypeRequest", "GetPacketMirroringRequest", + "GetPacketMirroringRuleNetworkFirewallPolicyRequest", "GetProjectRequest", "GetPublicAdvertisedPrefixeRequest", "GetPublicDelegatedPrefixeRequest", @@ -470,6 +476,7 @@ "GetRegionUrlMapRequest", "GetReservationRequest", "GetResourcePolicyRequest", + "GetRoutePolicyRouterRequest", "GetRouteRequest", "GetRouterRequest", "GetRouterStatusRouterRequest", @@ -762,6 +769,7 @@ "ListAvailableFeaturesSslPoliciesRequest", "ListBackendBucketsRequest", "ListBackendServicesRequest", + "ListBgpRoutesRoutersRequest", "ListDiskTypesRequest", "ListDisksRequest", "ListDisksStoragePoolsRequest", @@ -842,6 +850,7 @@ "ListRegionsRequest", "ListReservationsRequest", "ListResourcePoliciesRequest", + "ListRoutePoliciesRoutersRequest", "ListRoutersRequest", "ListRoutesRequest", "ListSecurityPoliciesRequest", @@ -996,6 +1005,7 @@ "PatchNetworkRequest", "PatchNodeGroupRequest", "PatchPacketMirroringRequest", + "PatchPacketMirroringRuleNetworkFirewallPolicyRequest", "PatchPerInstanceConfigsInstanceGroupManagerRequest", "PatchPerInstanceConfigsRegionInstanceGroupManagerRequest", "PatchPublicAdvertisedPrefixeRequest", @@ -1011,6 +1021,7 @@ "PatchRegionTargetHttpsProxyRequest", "PatchRegionUrlMapRequest", "PatchResourcePolicyRequest", + "PatchRoutePolicyRouterRequest", "PatchRouterRequest", "PatchRuleFirewallPolicyRequest", "PatchRuleNetworkFirewallPolicyRequest", @@ -1105,6 +1116,7 @@ "RemoveHealthCheckTargetPoolRequest", "RemoveInstanceTargetPoolRequest", "RemoveInstancesInstanceGroupRequest", + "RemovePacketMirroringRuleNetworkFirewallPolicyRequest", "RemovePeeringNetworkRequest", "RemoveResourcePoliciesDiskRequest", "RemoveResourcePoliciesInstanceRequest", @@ -1155,6 +1167,8 @@ "Route", "RouteAsPath", "RouteList", + "RoutePolicy", + "RoutePolicyPolicyTerm", "Router", "RouterAdvertisedIpRange", "RouterAggregatedList", @@ -1175,6 +1189,9 @@ "RouterStatusNatStatus", "RouterStatusNatStatusNatRuleStatus", "RouterStatusResponse", + "RoutersGetRoutePolicyResponse", + "RoutersListBgpRoutes", + "RoutersListRoutePolicies", "RoutersPreviewResponse", "RoutersScopedList", "SSLHealthCheck", @@ -1494,6 +1511,7 @@ "UpdateRegionHealthCheckRequest", "UpdateRegionUrlMapRequest", "UpdateReservationRequest", + "UpdateRoutePolicyRouterRequest", "UpdateRouterRequest", "UpdateShieldedInstanceConfigInstanceRequest", "UpdateStoragePoolRequest", @@ -2812,6 +2830,85 @@ class AddNodesNodeGroupRequest(proto.Message): ) +class AddPacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message): + r"""A request message for + NetworkFirewallPolicies.AddPacketMirroringRule. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + firewall_policy (str): + Name of the firewall policy to update. + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): + The body resource for this request + max_priority (int): + When rule.priority is not specified, auto + choose a unused priority between minPriority and + maxPriority>. This field is exclusive with + rule.priority. + + This field is a member of `oneof`_ ``_max_priority``. + min_priority (int): + When rule.priority is not specified, auto + choose a unused priority between minPriority and + maxPriority>. This field is exclusive with + rule.priority. + + This field is a member of `oneof`_ ``_min_priority``. + project (str): + Project ID for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + """ + + firewall_policy: str = proto.Field( + proto.STRING, + number=498173265, + ) + firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field( + proto.MESSAGE, + number=250523523, + message="FirewallPolicyRule", + ) + max_priority: int = proto.Field( + proto.INT32, + number=329635359, + optional=True, + ) + min_priority: int = proto.Field( + proto.INT32, + number=267190513, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + + class AddPeeringNetworkRequest(proto.Message): r"""A request message for Networks.AddPeering. See the method description for details. @@ -11218,17 +11315,23 @@ class VmFamily(proto.Enum): No description available. VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP (18705267): No description available. + VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E (398926997): + No description available. VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P (517384376): No description available. VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P (517384407): No description available. + VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P (517384438): + No description available. """ UNDEFINED_VM_FAMILY = 0 VM_FAMILY_CLOUD_TPU_DEVICE_CT3 = 42845948 VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L = 108020067 VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP = 18705267 + VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E = 398926997 VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P = 517384376 VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P = 517384407 + VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P = 517384438 class WorkloadType(proto.Enum): r"""The workload type of the instances that will target this @@ -17556,6 +17659,151 @@ class BfdStatusPacketCounts(proto.Message): ) +class BgpRoute(proto.Message): + r""" + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + as_paths (MutableSequence[google.cloud.compute_v1.types.BgpRouteAsPath]): + [Output only] AS-PATH for the route + communities (MutableSequence[str]): + [Output only] BGP communities in human-readable A:B format. + destination (google.cloud.compute_v1.types.BgpRouteNetworkLayerReachabilityInformation): + [Output only] Destination IP range for the route, in + human-readable CIDR format + + This field is a member of `oneof`_ ``_destination``. + med (int): + [Output only] BGP multi-exit discriminator + + This field is a member of `oneof`_ ``_med``. + origin (str): + [Output only] BGP origin (EGP, IGP or INCOMPLETE) Check the + Origin enum for the list of possible values. + + This field is a member of `oneof`_ ``_origin``. + """ + + class Origin(proto.Enum): + r"""[Output only] BGP origin (EGP, IGP or INCOMPLETE) + + Values: + UNDEFINED_ORIGIN (0): + A value indicating that the enum field is not + set. + BGP_ORIGIN_EGP (378906473): + No description available. + BGP_ORIGIN_IGP (378910317): + No description available. + BGP_ORIGIN_INCOMPLETE (452839811): + No description available. + """ + UNDEFINED_ORIGIN = 0 + BGP_ORIGIN_EGP = 378906473 + BGP_ORIGIN_IGP = 378910317 + BGP_ORIGIN_INCOMPLETE = 452839811 + + as_paths: MutableSequence["BgpRouteAsPath"] = proto.RepeatedField( + proto.MESSAGE, + number=137568929, + message="BgpRouteAsPath", + ) + communities: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=188262983, + ) + destination: "BgpRouteNetworkLayerReachabilityInformation" = proto.Field( + proto.MESSAGE, + number=180765710, + optional=True, + message="BgpRouteNetworkLayerReachabilityInformation", + ) + med: int = proto.Field( + proto.UINT32, + number=107980, + optional=True, + ) + origin: str = proto.Field( + proto.STRING, + number=65122086, + optional=True, + ) + + +class BgpRouteAsPath(proto.Message): + r""" + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + asns (MutableSequence[int]): + [Output only] ASNs in the path segment. When type is + SEQUENCE, these are ordered. + type_ (str): + [Output only] Type of AS-PATH segment (SEQUENCE or SET) + Check the Type enum for the list of possible values. + + This field is a member of `oneof`_ ``_type``. + """ + + class Type(proto.Enum): + r"""[Output only] Type of AS-PATH segment (SEQUENCE or SET) + + Values: + UNDEFINED_TYPE (0): + A value indicating that the enum field is not + set. + AS_PATH_TYPE_SEQUENCE (362887609): + No description available. + AS_PATH_TYPE_SET (302584650): + No description available. + """ + UNDEFINED_TYPE = 0 + AS_PATH_TYPE_SEQUENCE = 362887609 + AS_PATH_TYPE_SET = 302584650 + + asns: MutableSequence[int] = proto.RepeatedField( + proto.INT32, + number=3003767, + ) + type_: str = proto.Field( + proto.STRING, + number=3575610, + optional=True, + ) + + +class BgpRouteNetworkLayerReachabilityInformation(proto.Message): + r"""Network Layer Reachability Information (NLRI) for a route. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + path_id (int): + If the BGP session supports multiple paths + (RFC 7911), the path identifier for this route. + + This field is a member of `oneof`_ ``_path_id``. + prefix (str): + Human readable CIDR notation for a prefix. + E.g. 10.42.0.0/16. + + This field is a member of `oneof`_ ``_prefix``. + """ + + path_id: int = proto.Field( + proto.UINT32, + number=282287989, + optional=True, + ) + prefix: str = proto.Field( + proto.STRING, + number=93631122, + optional=True, + ) + + class Binding(proto.Message): r"""Associates ``members``, or principals, with a ``role``. @@ -18573,38 +18821,45 @@ class CloneRulesRegionNetworkFirewallPolicyRequest(proto.Message): class Commitment(proto.Message): - r"""Represents a regional Commitment resource. Creating a - commitment resource means that you are purchasing a committed - use contract with an explicit start and end time. You can create - commitments based on vCPUs and memory usage and receive - discounted rates. For full details, read Signing Up for - Committed Use Discounts. + r"""Represents a regional resource-based commitment resource. + Creating this commitment resource means that you are purchasing + a resource-based committed use contract, with an explicit start + and end time. You can purchase resource-based commitments for + both hardware and software resources. For more information, read + Resource-based committed use discounts .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: auto_renew (bool): - Specifies whether to enable automatic renewal - for the commitment. The default value is false - if not specified. The field can be updated until - the day of the commitment expiration at 12:00am - PST. If the field is set to true, the commitment - will be automatically renewed for either one or - three years according to the terms of the - existing commitment. + Specifies whether to automatically renew the + commitment at the end of its current term. The + default value is false. If you set the field to + true, each time your commitment reaches the end + of its term, Compute Engine automatically renews + it for another term. You can update this field + anytime before the commitment expires. For + example, if the commitment is set to expire at + 12 AM UTC-8 on January 3, 2027, you can update + this field until 11:59 PM UTC-8 on January 2, + 2027. This field is a member of `oneof`_ ``_auto_renew``. category (str): - The category of the commitment. Category - MACHINE specifies commitments composed of - machine resources such as VCPU or MEMORY, listed - in resources. Category LICENSE specifies - commitments composed of software licenses, - listed in licenseResources. Note that only - MACHINE commitments should have a Type - specified. Check the Category enum for the list - of possible values. + The category of the commitment; specifies + whether the commitment is for hardware or + software resources. Category MACHINE specifies + that you are committing to hardware machine + resources such as VCPU or MEMORY, listed in + resources. Category LICENSE specifies that you + are committing to software licenses, listed in + licenseResources. Note that if you specify + MACHINE commitments, then you must also specify + a type to indicate the machine series of the + hardware resource that you are committing to. + Check the Category enum for the list of possible + values. This field is a member of `oneof`_ ``_category``. creation_timestamp (str): @@ -18612,16 +18867,16 @@ class Commitment(proto.Message): This field is a member of `oneof`_ ``_creation_timestamp``. custom_end_timestamp (str): - [Input Only] Optional, specifies the CUD end time requested - by the customer in RFC3339 text format. Needed when the - customer wants CUD's end date is later than the start date + + [Input Only] Optional, specifies the requested commitment + end time in RFC3339 text format. Use this option when the + desired commitment's end date is later than the start date + term duration. This field is a member of `oneof`_ ``_custom_end_timestamp``. description (str): - An optional description of this resource. - Provide this property when you create the - resource. + An optional description of the commitment. + You can provide this property when you create + the resource. This field is a member of `oneof`_ ``_description``. end_timestamp (str): @@ -18629,14 +18884,7 @@ class Commitment(proto.Message): This field is a member of `oneof`_ ``_end_timestamp``. existing_reservations (MutableSequence[str]): - Specifies the already existing reservations - to attach to the Commitment. This field is - optional, and it can be a full or partial URL. - For example, the following are valid URLs to an - reservation: - - https://www.googleapis.com/compute/v1/projects/project/zones/zone - /reservations/reservation - - projects/project/zones/zone/reservations/reservation + id (int): [Output Only] The unique identifier for the resource. This identifier is defined by the server. @@ -18653,13 +18901,14 @@ class Commitment(proto.Message): This field is a member of `oneof`_ ``_license_resource``. merge_source_commitments (MutableSequence[str]): - List of source commitments to be merged into - a new commitment. + The list of source commitments that you are + merging to create the new merged commitment. For + more information, see Merging commitments. name (str): - Name of the resource. Provided by the client when the - resource is created. The name must be 1-63 characters long, - and comply with RFC1035. Specifically, the name must be 1-63 - characters long and match the regular expression + Name of the commitment. You must specify a name when you + purchase the commitment. The name must be 1-63 characters + long, and comply with RFC1035. Specifically, the name must + be 1-63 characters long and match the regular expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, @@ -18667,35 +18916,51 @@ class Commitment(proto.Message): This field is a member of `oneof`_ ``_name``. plan (str): - The plan for this commitment, which determines duration and - discount rate. The currently supported plans are - TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years). Check - the Plan enum for the list of possible values. + The minimum time duration that you commit to purchasing + resources. The plan that you choose determines the preset + term length of the commitment (which is 1 year or 3 years) + and affects the discount rate that you receive for your + resources. Committing to a longer time duration typically + gives you a higher discount rate. The supported values for + this field are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH + (3 years). Check the Plan enum for the list of possible + values. This field is a member of `oneof`_ ``_plan``. region (str): - [Output Only] URL of the region where this commitment may be - used. + [Output Only] URL of the region where the commitment and + committed resources are located. This field is a member of `oneof`_ ``_region``. reservations (MutableSequence[google.cloud.compute_v1.types.Reservation]): - List of create-on-create reservations for - this commitment. + The list of new reservations that you want to + create and attach to this commitment. You must + attach reservations to your commitment if your + commitment specifies any GPUs or Local SSD + disks. For more information, see Attach + reservations to resource-based commitments. + Specify this property only if you want to create + new reservations to attach. To attach existing + reservations, specify the existingReservations + property instead. resource_status (google.cloud.compute_v1.types.CommitmentResourceStatus): [Output Only] Status information for Commitment resource. This field is a member of `oneof`_ ``_resource_status``. resources (MutableSequence[google.cloud.compute_v1.types.ResourceCommitment]): - A list of commitment amounts for particular - resources. Note that VCPU and MEMORY resource - commitments must occur together. + The list of all the hardware resources, with + their types and amounts, that you want to commit + to. Specify as a separate entry in the list for + each individual resource type. self_link (str): [Output Only] Server-defined URL for the resource. This field is a member of `oneof`_ ``_self_link``. split_source_commitment (str): - Source commitment to be split into a new - commitment. + The source commitment from which you are + transferring resources to create the new split + commitment. For more information, see Split + commitments. This field is a member of `oneof`_ ``_split_source_commitment``. start_timestamp (str): @@ -18705,9 +18970,9 @@ class Commitment(proto.Message): status (str): [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date - defined). One of the following values: NOT_YET_ACTIVE, - ACTIVE, EXPIRED. Check the Status enum for the list of - possible values. + defined). Status can be one of the following values: + NOT_YET_ACTIVE, ACTIVE, or EXPIRED. Check the Status enum + for the list of possible values. This field is a member of `oneof`_ ``_status``. status_message (str): @@ -18716,23 +18981,38 @@ class Commitment(proto.Message): This field is a member of `oneof`_ ``_status_message``. type_ (str): - The type of commitment, which affects the discount rate and - the eligible resources. Type MEMORY_OPTIMIZED specifies a - commitment that will only apply to memory optimized - machines. Type ACCELERATOR_OPTIMIZED specifies a commitment - that will only apply to accelerator optimized machines. + The type of commitment; specifies the machine series for + which you want to commit to purchasing resources. The choice + of machine series affects the discount rate and the eligible + resource types. The type must be one of the following: + ACCELERATOR_OPTIMIZED, ACCELERATOR_OPTIMIZED_A3, + ACCELERATOR_OPTIMIZED_A3_MEGA, COMPUTE_OPTIMIZED, + COMPUTE_OPTIMIZED_C2D, COMPUTE_OPTIMIZED_C3, + COMPUTE_OPTIMIZED_C3D, COMPUTE_OPTIMIZED_H3, + GENERAL_PURPOSE, GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2, + GENERAL_PURPOSE_N2, GENERAL_PURPOSE_N2D, GENERAL_PURPOSE_N4, + GENERAL_PURPOSE_T2D, GRAPHICS_OPTIMIZED, MEMORY_OPTIMIZED, + MEMORY_OPTIMIZED_M3, MEMORY_OPTIMIZED_X4, + STORAGE_OPTIMIZED_Z3. For example, type MEMORY_OPTIMIZED + specifies a commitment that applies only to eligible + resources of memory optimized M1 and M2 machine series. Type + GENERAL_PURPOSE specifies a commitment that applies only to + eligible resources of general purpose N1 machine series. Check the Type enum for the list of possible values. This field is a member of `oneof`_ ``_type``. """ class Category(proto.Enum): - r"""The category of the commitment. Category MACHINE specifies - commitments composed of machine resources such as VCPU or - MEMORY, listed in resources. Category LICENSE specifies - commitments composed of software licenses, listed in - licenseResources. Note that only MACHINE commitments should have - a Type specified. + r"""The category of the commitment; specifies whether the + commitment is for hardware or software resources. Category + MACHINE specifies that you are committing to hardware machine + resources such as VCPU or MEMORY, listed in resources. Category + LICENSE specifies that you are committing to software licenses, + listed in licenseResources. Note that if you specify MACHINE + commitments, then you must also specify a type to indicate the + machine series of the hardware resource that you are committing + to. Values: UNDEFINED_CATEGORY (0): @@ -18751,8 +19031,12 @@ class Category(proto.Enum): MACHINE = 469553191 class Plan(proto.Enum): - r"""The plan for this commitment, which determines duration and discount - rate. The currently supported plans are TWELVE_MONTH (1 year), and + r"""The minimum time duration that you commit to purchasing resources. + The plan that you choose determines the preset term length of the + commitment (which is 1 year or 3 years) and affects the discount + rate that you receive for your resources. Committing to a longer + time duration typically gives you a higher discount rate. The + supported values for this field are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years). Values: @@ -18773,8 +19057,8 @@ class Plan(proto.Enum): class Status(proto.Enum): r"""[Output Only] Status of the commitment with regards to eventual - expiration (each commitment has an end date defined). One of the - following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED. + expiration (each commitment has an end date defined). Status can be + one of the following values: NOT_YET_ACTIVE, ACTIVE, or EXPIRED. Values: UNDEFINED_STATUS (0): @@ -18801,11 +19085,21 @@ class Status(proto.Enum): NOT_YET_ACTIVE = 20607337 class Type(proto.Enum): - r"""The type of commitment, which affects the discount rate and the - eligible resources. Type MEMORY_OPTIMIZED specifies a commitment - that will only apply to memory optimized machines. Type - ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to - accelerator optimized machines. + r"""The type of commitment; specifies the machine series for which you + want to commit to purchasing resources. The choice of machine series + affects the discount rate and the eligible resource types. The type + must be one of the following: ACCELERATOR_OPTIMIZED, + ACCELERATOR_OPTIMIZED_A3, ACCELERATOR_OPTIMIZED_A3_MEGA, + COMPUTE_OPTIMIZED, COMPUTE_OPTIMIZED_C2D, COMPUTE_OPTIMIZED_C3, + COMPUTE_OPTIMIZED_C3D, COMPUTE_OPTIMIZED_H3, GENERAL_PURPOSE, + GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2, GENERAL_PURPOSE_N2, + GENERAL_PURPOSE_N2D, GENERAL_PURPOSE_N4, GENERAL_PURPOSE_T2D, + GRAPHICS_OPTIMIZED, MEMORY_OPTIMIZED, MEMORY_OPTIMIZED_M3, + MEMORY_OPTIMIZED_X4, STORAGE_OPTIMIZED_Z3. For example, type + MEMORY_OPTIMIZED specifies a commitment that applies only to + eligible resources of memory optimized M1 and M2 machine series. + Type GENERAL_PURPOSE specifies a commitment that applies only to + eligible resources of general purpose N1 machine series. Values: UNDEFINED_TYPE (0): @@ -18860,7 +19154,10 @@ class Type(proto.Enum): STORAGE_OPTIMIZED_Z3 (316796085): No description available. TYPE_UNSPECIFIED (437714322): - No description available. + Note for internal users: When adding a new enum Type for v1, + make sure to also add it in the comment for the + ``optional Type type`` definition. This ensures that the + public documentation displays the new enum Type. """ UNDEFINED_TYPE = 0 ACCELERATOR_OPTIMIZED = 280848403 @@ -19191,7 +19488,8 @@ class CommitmentsScopedList(proto.Message): Attributes: commitments (MutableSequence[google.cloud.compute_v1.types.Commitment]): - [Output Only] A list of commitments contained in this scope. + [Output Only] The list of commitments contained in this + scope. warning (google.cloud.compute_v1.types.Warning): [Output Only] Informational warning which replaces the list of commitments when the list is empty. @@ -23263,6 +23561,70 @@ class DeleteResourcePolicyRequest(proto.Message): ) +class DeleteRoutePolicyRouterRequest(proto.Message): + r"""A request message for Routers.DeleteRoutePolicy. See the + method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + policy (str): + The Policy name for this request. Name must + conform to RFC1035 + + This field is a member of `oneof`_ ``_policy``. + project (str): + Project ID for this request. + region (str): + Name of the region for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + router (str): + Name of the Router resource where Route + Policy is defined. + """ + + policy: str = proto.Field( + proto.STRING, + number=91071794, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + router: str = proto.Field( + proto.STRING, + number=148608841, + ) + + class DeleteRouteRequest(proto.Message): r"""A request message for Routes.Delete. See the method description for details. @@ -28251,6 +28613,9 @@ class FirewallPolicy(proto.Message): which uniquely identifies the Organization Firewall Policy. This field is a member of `oneof`_ ``_name``. + packet_mirroring_rules (MutableSequence[google.cloud.compute_v1.types.FirewallPolicyRule]): + A list of packet mirroring rules that belong + to this policy. parent (str): [Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies. @@ -28341,6 +28706,11 @@ class FirewallPolicy(proto.Message): number=3373707, optional=True, ) + packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField( + proto.MESSAGE, + number=531644356, + message="FirewallPolicyRule", + ) parent: str = proto.Field( proto.STRING, number=78317738, @@ -32632,6 +33002,42 @@ class GetPacketMirroringRequest(proto.Message): ) +class GetPacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message): + r"""A request message for + NetworkFirewallPolicies.GetPacketMirroringRule. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + firewall_policy (str): + Name of the firewall policy to which the + queried rule belongs. + priority (int): + The priority of the rule to get from the + firewall policy. + + This field is a member of `oneof`_ ``_priority``. + project (str): + Project ID for this request. + """ + + firewall_policy: str = proto.Field( + proto.STRING, + number=498173265, + ) + priority: int = proto.Field( + proto.INT32, + number=445151652, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + + class GetProjectRequest(proto.Message): r"""A request message for Projects.Get. See the method description for details. @@ -33383,6 +33789,48 @@ class GetResourcePolicyRequest(proto.Message): ) +class GetRoutePolicyRouterRequest(proto.Message): + r"""A request message for Routers.GetRoutePolicy. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + policy (str): + The Policy name for this request. Name must + conform to RFC1035 + + This field is a member of `oneof`_ ``_policy``. + project (str): + Project ID for this request. + region (str): + Name of the region for this request. + router (str): + Name of the Router resource to query for the + route policy. The name should conform to + RFC1035. + """ + + policy: str = proto.Field( + proto.STRING, + number=91071794, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + router: str = proto.Field( + proto.STRING, + number=148608841, + ) + + class GetRouteRequest(proto.Message): r"""A request message for Routes.Get. See the method description for details. @@ -47349,6 +47797,9 @@ class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy(proto.Messag [Output Only] The name of the firewall policy. This field is a member of `oneof`_ ``_name``. + packet_mirroring_rules (MutableSequence[google.cloud.compute_v1.types.FirewallPolicyRule]): + [Output Only] The packet mirroring rules that apply to the + instance. priority (int): [Output only] Priority of firewall policy association. Not applicable for type=HIERARCHY. @@ -47412,6 +47863,11 @@ class Type(proto.Enum): number=3373707, optional=True, ) + packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField( + proto.MESSAGE, + number=531644356, + message="FirewallPolicyRule", + ) priority: int = proto.Field( proto.INT32, number=445151652, @@ -52169,16 +52625,15 @@ class LicenseResourceCommitment(proto.Message): Attributes: amount (int): - The number of licenses purchased. + The number of licenses you plan to purchase. This field is a member of `oneof`_ ``_amount``. cores_per_license (str): - Specifies the core range of the instance for - which this license applies. + The number of cores per license. This field is a member of `oneof`_ ``_cores_per_license``. license_ (str): - Any applicable license URI. + The applicable license URI. This field is a member of `oneof`_ ``_license``. """ @@ -53216,14 +53671,26 @@ class ListBackendServicesRequest(proto.Message): ) -class ListDiskTypesRequest(proto.Message): - r"""A request message for DiskTypes.List. See the method +class ListBgpRoutesRoutersRequest(proto.Message): + r"""A request message for Routers.ListBgpRoutes. See the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: + address_family (str): + (Required) limit results to this address + family (either IPv4 or IPv6) Check the + AddressFamily enum for the list of possible + values. + + This field is a member of `oneof`_ ``_address_family``. + destination_prefix (str): + Limit results to destinations that are + subnets of this CIDR range + + This field is a member of `oneof`_ ``_destination_prefix``. filter (str): A filter expression that filters resources listed in the response. Most Compute resources support two types of filter @@ -53296,8 +53763,20 @@ class ListDiskTypesRequest(proto.Message): the next page of results. This field is a member of `oneof`_ ``_page_token``. + peer (str): + (Required) limit results to the BGP peer with + the given name. Name should conform to RFC1035. + + This field is a member of `oneof`_ ``_peer``. + policy_applied (bool): + When true, the method returns post-policy + routes. Otherwise, it returns pre-policy routes. + + This field is a member of `oneof`_ ``_policy_applied``. project (str): Project ID for this request. + region (str): + Name of the region for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -53308,10 +53787,67 @@ class ListDiskTypesRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone for this request. + route_type (str): + (Required) limit results to this type of + route (either LEARNED or ADVERTISED) Check the + RouteType enum for the list of possible values. + + This field is a member of `oneof`_ ``_route_type``. + router (str): + Name or id of the resource for this request. + Name should conform to RFC1035. """ + class AddressFamily(proto.Enum): + r"""(Required) limit results to this address family (either IPv4 + or IPv6) + + Values: + UNDEFINED_ADDRESS_FAMILY (0): + A value indicating that the enum field is not + set. + IPV4 (2254341): + No description available. + IPV6 (2254343): + No description available. + UNSPECIFIED_IP_VERSION (72938440): + No description available. + """ + UNDEFINED_ADDRESS_FAMILY = 0 + IPV4 = 2254341 + IPV6 = 2254343 + UNSPECIFIED_IP_VERSION = 72938440 + + class RouteType(proto.Enum): + r"""(Required) limit results to this type of route (either + LEARNED or ADVERTISED) + + Values: + UNDEFINED_ROUTE_TYPE (0): + A value indicating that the enum field is not + set. + ADVERTISED (20302109): + No description available. + LEARNED (231892419): + No description available. + UNSPECIFIED_ROUTE_TYPE (248064440): + No description available. + """ + UNDEFINED_ROUTE_TYPE = 0 + ADVERTISED = 20302109 + LEARNED = 231892419 + UNSPECIFIED_ROUTE_TYPE = 248064440 + + address_family: str = proto.Field( + proto.STRING, + number=173744655, + optional=True, + ) + destination_prefix: str = proto.Field( + proto.STRING, + number=263872483, + optional=True, + ) filter: str = proto.Field( proto.STRING, number=336120696, @@ -53332,24 +53868,43 @@ class ListDiskTypesRequest(proto.Message): number=19994697, optional=True, ) + peer: str = proto.Field( + proto.STRING, + number=3436898, + optional=True, + ) + policy_applied: bool = proto.Field( + proto.BOOL, + number=379464304, + optional=True, + ) project: str = proto.Field( proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) - zone: str = proto.Field( + route_type: str = proto.Field( proto.STRING, - number=3744684, + number=375888752, + optional=True, + ) + router: str = proto.Field( + proto.STRING, + number=148608841, ) -class ListDisksRequest(proto.Message): - r"""A request message for Disks.List. See the method description - for details. +class ListDiskTypesRequest(proto.Message): + r"""A request message for DiskTypes.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -53478,9 +54033,9 @@ class ListDisksRequest(proto.Message): ) -class ListDisksStoragePoolsRequest(proto.Message): - r"""A request message for StoragePools.ListDisks. See the method - description for details. +class ListDisksRequest(proto.Message): + r"""A request message for Disks.List. See the method description + for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -53570,8 +54125,6 @@ class ListDisksStoragePoolsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - storage_pool (str): - Name of the storage pool to list disks of. zone (str): The name of the zone for this request. """ @@ -53605,19 +54158,15 @@ class ListDisksStoragePoolsRequest(proto.Message): number=517198390, optional=True, ) - storage_pool: str = proto.Field( - proto.STRING, - number=360473440, - ) zone: str = proto.Field( proto.STRING, number=3744684, ) -class ListErrorsInstanceGroupManagersRequest(proto.Message): - r"""A request message for InstanceGroupManagers.ListErrors. See - the method description for details. +class ListDisksStoragePoolsRequest(proto.Message): + r"""A request message for StoragePools.ListDisks. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -53667,11 +54216,6 @@ class ListErrorsInstanceGroupManagersRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. - instance_group_manager (str): - The name of the managed instance group. It must be a string - that meets the requirements in RFC1035, or an unsigned long - integer: must match regexp pattern: - (?:`a-z `__?)|1-9{0,19}. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -53712,10 +54256,10 @@ class ListErrorsInstanceGroupManagersRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + storage_pool (str): + Name of the storage pool to list disks of. zone (str): - The name of the zone where the managed - instance group is located. It should conform to - RFC1035. + The name of the zone for this request. """ filter: str = proto.Field( @@ -53723,10 +54267,6 @@ class ListErrorsInstanceGroupManagersRequest(proto.Message): number=336120696, optional=True, ) - instance_group_manager: str = proto.Field( - proto.STRING, - number=249363395, - ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -53751,15 +54291,19 @@ class ListErrorsInstanceGroupManagersRequest(proto.Message): number=517198390, optional=True, ) + storage_pool: str = proto.Field( + proto.STRING, + number=360473440, + ) zone: str = proto.Field( proto.STRING, number=3744684, ) -class ListErrorsRegionInstanceGroupManagersRequest(proto.Message): - r"""A request message for RegionInstanceGroupManagers.ListErrors. - See the method description for details. +class ListErrorsInstanceGroupManagersRequest(proto.Message): + r"""A request message for InstanceGroupManagers.ListErrors. See + the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -53844,9 +54388,6 @@ class ListErrorsRegionInstanceGroupManagersRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region scoping this request. This - should conform to RFC1035. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -53857,6 +54398,10 @@ class ListErrorsRegionInstanceGroupManagersRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone where the managed + instance group is located. It should conform to + RFC1035. """ filter: str = proto.Field( @@ -53887,20 +54432,20 @@ class ListErrorsRegionInstanceGroupManagersRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class ListExternalVpnGatewaysRequest(proto.Message): - r"""A request message for ExternalVpnGateways.List. See the - method description for details. +class ListErrorsRegionInstanceGroupManagersRequest(proto.Message): + r"""A request message for RegionInstanceGroupManagers.ListErrors. + See the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -53950,6 +54495,11 @@ class ListExternalVpnGatewaysRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. + instance_group_manager (str): + The name of the managed instance group. It must be a string + that meets the requirements in RFC1035, or an unsigned long + integer: must match regexp pattern: + (?:`a-z `__?)|1-9{0,19}. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -53980,6 +54530,9 @@ class ListExternalVpnGatewaysRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region scoping this request. This + should conform to RFC1035. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -53997,6 +54550,10 @@ class ListExternalVpnGatewaysRequest(proto.Message): number=336120696, optional=True, ) + instance_group_manager: str = proto.Field( + proto.STRING, + number=249363395, + ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -54016,6 +54573,10 @@ class ListExternalVpnGatewaysRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -54023,9 +54584,9 @@ class ListExternalVpnGatewaysRequest(proto.Message): ) -class ListFirewallPoliciesRequest(proto.Message): - r"""A request message for FirewallPolicies.List. See the method - description for details. +class ListExternalVpnGatewaysRequest(proto.Message): + r"""A request message for ExternalVpnGateways.List. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -54103,13 +54664,8 @@ class ListFirewallPoliciesRequest(proto.Message): the next page of results. This field is a member of `oneof`_ ``_page_token``. - parent_id (str): - Parent ID for this request. The ID can be either be - "folders/[FOLDER_ID]" if the parent is a folder or - "organizations/[ORGANIZATION_ID]" if the parent is an - organization. - - This field is a member of `oneof`_ ``_parent_id``. + project (str): + Project ID for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -54142,10 +54698,9 @@ class ListFirewallPoliciesRequest(proto.Message): number=19994697, optional=True, ) - parent_id: str = proto.Field( + project: str = proto.Field( proto.STRING, - number=459714768, - optional=True, + number=227560217, ) return_partial_success: bool = proto.Field( proto.BOOL, @@ -54154,8 +54709,8 @@ class ListFirewallPoliciesRequest(proto.Message): ) -class ListFirewallsRequest(proto.Message): - r"""A request message for Firewalls.List. See the method +class ListFirewallPoliciesRequest(proto.Message): + r"""A request message for FirewallPolicies.List. See the method description for details. @@ -54234,8 +54789,13 @@ class ListFirewallsRequest(proto.Message): the next page of results. This field is a member of `oneof`_ ``_page_token``. - project (str): - Project ID for this request. + parent_id (str): + Parent ID for this request. The ID can be either be + "folders/[FOLDER_ID]" if the parent is a folder or + "organizations/[ORGANIZATION_ID]" if the parent is an + organization. + + This field is a member of `oneof`_ ``_parent_id``. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -54268,9 +54828,10 @@ class ListFirewallsRequest(proto.Message): number=19994697, optional=True, ) - project: str = proto.Field( + parent_id: str = proto.Field( proto.STRING, - number=227560217, + number=459714768, + optional=True, ) return_partial_success: bool = proto.Field( proto.BOOL, @@ -54279,8 +54840,8 @@ class ListFirewallsRequest(proto.Message): ) -class ListForwardingRulesRequest(proto.Message): - r"""A request message for ForwardingRules.List. See the method +class ListFirewallsRequest(proto.Message): + r"""A request message for Firewalls.List. See the method description for details. @@ -54361,8 +54922,6 @@ class ListForwardingRulesRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region scoping this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -54399,10 +54958,6 @@ class ListForwardingRulesRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -54410,8 +54965,8 @@ class ListForwardingRulesRequest(proto.Message): ) -class ListGlobalAddressesRequest(proto.Message): - r"""A request message for GlobalAddresses.List. See the method +class ListForwardingRulesRequest(proto.Message): + r"""A request message for ForwardingRules.List. See the method description for details. @@ -54492,6 +55047,8 @@ class ListGlobalAddressesRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region scoping this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -54528,6 +55085,10 @@ class ListGlobalAddressesRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -54535,9 +55096,9 @@ class ListGlobalAddressesRequest(proto.Message): ) -class ListGlobalForwardingRulesRequest(proto.Message): - r"""A request message for GlobalForwardingRules.List. See the - method description for details. +class ListGlobalAddressesRequest(proto.Message): + r"""A request message for GlobalAddresses.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -54660,9 +55221,9 @@ class ListGlobalForwardingRulesRequest(proto.Message): ) -class ListGlobalNetworkEndpointGroupsRequest(proto.Message): - r"""A request message for GlobalNetworkEndpointGroups.List. See - the method description for details. +class ListGlobalForwardingRulesRequest(proto.Message): + r"""A request message for GlobalForwardingRules.List. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -54785,9 +55346,9 @@ class ListGlobalNetworkEndpointGroupsRequest(proto.Message): ) -class ListGlobalOperationsRequest(proto.Message): - r"""A request message for GlobalOperations.List. See the method - description for details. +class ListGlobalNetworkEndpointGroupsRequest(proto.Message): + r"""A request message for GlobalNetworkEndpointGroups.List. See + the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -54910,9 +55471,9 @@ class ListGlobalOperationsRequest(proto.Message): ) -class ListGlobalOrganizationOperationsRequest(proto.Message): - r"""A request message for GlobalOrganizationOperations.List. See - the method description for details. +class ListGlobalOperationsRequest(proto.Message): + r"""A request message for GlobalOperations.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -54990,10 +55551,8 @@ class ListGlobalOrganizationOperationsRequest(proto.Message): the next page of results. This field is a member of `oneof`_ ``_page_token``. - parent_id (str): - Parent ID for this request. - - This field is a member of `oneof`_ ``_parent_id``. + project (str): + Project ID for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -55026,10 +55585,9 @@ class ListGlobalOrganizationOperationsRequest(proto.Message): number=19994697, optional=True, ) - parent_id: str = proto.Field( + project: str = proto.Field( proto.STRING, - number=459714768, - optional=True, + number=227560217, ) return_partial_success: bool = proto.Field( proto.BOOL, @@ -55038,8 +55596,8 @@ class ListGlobalOrganizationOperationsRequest(proto.Message): ) -class ListGlobalPublicDelegatedPrefixesRequest(proto.Message): - r"""A request message for GlobalPublicDelegatedPrefixes.List. See +class ListGlobalOrganizationOperationsRequest(proto.Message): + r"""A request message for GlobalOrganizationOperations.List. See the method description for details. @@ -55118,8 +55676,10 @@ class ListGlobalPublicDelegatedPrefixesRequest(proto.Message): the next page of results. This field is a member of `oneof`_ ``_page_token``. - project (str): - Project ID for this request. + parent_id (str): + Parent ID for this request. + + This field is a member of `oneof`_ ``_parent_id``. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -55152,9 +55712,10 @@ class ListGlobalPublicDelegatedPrefixesRequest(proto.Message): number=19994697, optional=True, ) - project: str = proto.Field( + parent_id: str = proto.Field( proto.STRING, - number=227560217, + number=459714768, + optional=True, ) return_partial_success: bool = proto.Field( proto.BOOL, @@ -55163,9 +55724,9 @@ class ListGlobalPublicDelegatedPrefixesRequest(proto.Message): ) -class ListHealthChecksRequest(proto.Message): - r"""A request message for HealthChecks.List. See the method - description for details. +class ListGlobalPublicDelegatedPrefixesRequest(proto.Message): + r"""A request message for GlobalPublicDelegatedPrefixes.List. See + the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -55288,9 +55849,9 @@ class ListHealthChecksRequest(proto.Message): ) -class ListImagesRequest(proto.Message): - r"""A request message for Images.List. See the method description - for details. +class ListHealthChecksRequest(proto.Message): + r"""A request message for HealthChecks.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -55413,10 +55974,9 @@ class ListImagesRequest(proto.Message): ) -class ListInstanceGroupManagerResizeRequestsRequest(proto.Message): - r"""A request message for - InstanceGroupManagerResizeRequests.List. See the method - description for details. +class ListImagesRequest(proto.Message): + r"""A request message for Images.List. See the method description + for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -55466,9 +56026,6 @@ class ListInstanceGroupManagerResizeRequestsRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. - instance_group_manager (str): - The name of the managed instance group. The - name should conform to RFC1035. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -55509,10 +56066,6 @@ class ListInstanceGroupManagerResizeRequestsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone where the managed - instance group is located. The name should - conform to RFC1035. """ filter: str = proto.Field( @@ -55520,10 +56073,6 @@ class ListInstanceGroupManagerResizeRequestsRequest(proto.Message): number=336120696, optional=True, ) - instance_group_manager: str = proto.Field( - proto.STRING, - number=249363395, - ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -55548,15 +56097,12 @@ class ListInstanceGroupManagerResizeRequestsRequest(proto.Message): number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListInstanceGroupManagersRequest(proto.Message): - r"""A request message for InstanceGroupManagers.List. See the - method description for details. +class ListInstanceGroupManagerResizeRequestsRequest(proto.Message): + r"""A request message for + InstanceGroupManagerResizeRequests.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -55606,6 +56152,9 @@ class ListInstanceGroupManagersRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. + instance_group_manager (str): + The name of the managed instance group. The + name should conform to RFC1035. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -55648,7 +56197,8 @@ class ListInstanceGroupManagersRequest(proto.Message): This field is a member of `oneof`_ ``_return_partial_success``. zone (str): The name of the zone where the managed - instance group is located. + instance group is located. The name should + conform to RFC1035. """ filter: str = proto.Field( @@ -55656,6 +56206,10 @@ class ListInstanceGroupManagersRequest(proto.Message): number=336120696, optional=True, ) + instance_group_manager: str = proto.Field( + proto.STRING, + number=249363395, + ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -55686,9 +56240,9 @@ class ListInstanceGroupManagersRequest(proto.Message): ) -class ListInstanceGroupsRequest(proto.Message): - r"""A request message for InstanceGroups.List. See the method - description for details. +class ListInstanceGroupManagersRequest(proto.Message): + r"""A request message for InstanceGroupManagers.List. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -55779,8 +56333,8 @@ class ListInstanceGroupsRequest(proto.Message): This field is a member of `oneof`_ ``_return_partial_success``. zone (str): - The name of the zone where the instance group - is located. + The name of the zone where the managed + instance group is located. """ filter: str = proto.Field( @@ -55818,8 +56372,8 @@ class ListInstanceGroupsRequest(proto.Message): ) -class ListInstanceTemplatesRequest(proto.Message): - r"""A request message for InstanceTemplates.List. See the method +class ListInstanceGroupsRequest(proto.Message): + r"""A request message for InstanceGroups.List. See the method description for details. @@ -55909,136 +56463,6 @@ class ListInstanceTemplatesRequest(proto.Message): returns all resources in the zone or no resources, with an error code. - This field is a member of `oneof`_ ``_return_partial_success``. - """ - - filter: str = proto.Field( - proto.STRING, - number=336120696, - optional=True, - ) - max_results: int = proto.Field( - proto.UINT32, - number=54715419, - optional=True, - ) - order_by: str = proto.Field( - proto.STRING, - number=160562920, - optional=True, - ) - page_token: str = proto.Field( - proto.STRING, - number=19994697, - optional=True, - ) - project: str = proto.Field( - proto.STRING, - number=227560217, - ) - return_partial_success: bool = proto.Field( - proto.BOOL, - number=517198390, - optional=True, - ) - - -class ListInstancesInstanceGroupsRequest(proto.Message): - r"""A request message for InstanceGroups.ListInstances. See the - method description for details. - - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - filter (str): - A filter expression that filters resources listed in the - response. Most Compute resources support two types of filter - expressions: expressions that support regular expressions - and expressions that follow API improvement proposal - AIP-160. These two types of filter expressions cannot be - mixed in one request. If you want to use AIP-160, your - expression must specify the field name, an operator, and the - value that you want to use for filtering. The value must be - a string, a number, or a boolean. The operator must be - either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``. - For example, if you are filtering Compute Engine instances, - you can exclude instances named ``example-instance`` by - specifying ``name != example-instance``. The ``:*`` - comparison can be used to test whether a key has been - defined. For example, to find all objects with ``owner`` - label use: ``labels.owner:*`` You can also filter nested - fields. For example, you could specify - ``scheduling.automaticRestart = false`` to include instances - only if they are not scheduled for automatic restarts. You - can use filtering on nested fields to filter based on - resource labels. To filter on multiple expressions, provide - each separate expression within parentheses. For example: - ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")`` - By default, each expression is an ``AND`` expression. - However, you can include ``AND`` and ``OR`` expressions - explicitly. For example: - ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)`` - If you want to use a regular expression, use the ``eq`` - (equal) or ``ne`` (not equal) operator against a single - un-parenthesized expression with or without quotes or - against multiple parenthesized expressions. Examples: - ``fieldname eq unquoted literal`` - ``fieldname eq 'single quoted literal'`` - ``fieldname eq "double quoted literal"`` - ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The - literal value is interpreted as a regular expression using - Google RE2 library syntax. The literal value must match the - entire field. For example, to filter for instances that do - not end with name "instance", you would use - ``name ne .*instance``. You cannot combine constraints on - multiple fields using regular expressions. - - This field is a member of `oneof`_ ``_filter``. - instance_group (str): - The name of the instance group from which you - want to generate a list of included instances. - instance_groups_list_instances_request_resource (google.cloud.compute_v1.types.InstanceGroupsListInstancesRequest): - The body resource for this request - max_results (int): - The maximum number of results per page that should be - returned. If the number of available results is larger than - ``maxResults``, Compute Engine returns a ``nextPageToken`` - that can be used to get the next page of results in - subsequent list requests. Acceptable values are ``0`` to - ``500``, inclusive. (Default: ``500``) - - This field is a member of `oneof`_ ``_max_results``. - order_by (str): - Sorts list results by a certain order. By default, results - are returned in alphanumerical order based on the resource - name. You can also sort results in descending order based on - the creation timestamp using - ``orderBy="creationTimestamp desc"``. This sorts results - based on the ``creationTimestamp`` field in reverse - chronological order (newest result first). Use this to sort - resources like operations so that the newest operation is - returned first. Currently, only sorting by ``name`` or - ``creationTimestamp desc`` is supported. - - This field is a member of `oneof`_ ``_order_by``. - page_token (str): - Specifies a page token to use. Set ``pageToken`` to the - ``nextPageToken`` returned by a previous list request to get - the next page of results. - - This field is a member of `oneof`_ ``_page_token``. - project (str): - Project ID for this request. - return_partial_success (bool): - Opt-in for partial success behavior which - provides partial results in case of failure. The - default value is false. For example, when - partial success behavior is enabled, - aggregatedList for a single zone scope either - returns all resources in the zone or no - resources, with an error code. - This field is a member of `oneof`_ ``_return_partial_success``. zone (str): The name of the zone where the instance group @@ -56050,15 +56474,6 @@ class ListInstancesInstanceGroupsRequest(proto.Message): number=336120696, optional=True, ) - instance_group: str = proto.Field( - proto.STRING, - number=81095253, - ) - instance_groups_list_instances_request_resource: "InstanceGroupsListInstancesRequest" = proto.Field( - proto.MESSAGE, - number=476255263, - message="InstanceGroupsListInstancesRequest", - ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -56089,9 +56504,9 @@ class ListInstancesInstanceGroupsRequest(proto.Message): ) -class ListInstancesRegionInstanceGroupsRequest(proto.Message): - r"""A request message for RegionInstanceGroups.ListInstances. See - the method description for details. +class ListInstanceTemplatesRequest(proto.Message): + r"""A request message for InstanceTemplates.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -56141,9 +56556,6 @@ class ListInstancesRegionInstanceGroupsRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. - instance_group (str): - Name of the regional instance group for which - we want to list the instances. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -56174,10 +56586,6 @@ class ListInstancesRegionInstanceGroupsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region scoping this request. - region_instance_groups_list_instances_request_resource (google.cloud.compute_v1.types.RegionInstanceGroupsListInstancesRequest): - The body resource for this request return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -56195,10 +56603,6 @@ class ListInstancesRegionInstanceGroupsRequest(proto.Message): number=336120696, optional=True, ) - instance_group: str = proto.Field( - proto.STRING, - number=81095253, - ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -56218,15 +56622,6 @@ class ListInstancesRegionInstanceGroupsRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) - region_instance_groups_list_instances_request_resource: "RegionInstanceGroupsListInstancesRequest" = proto.Field( - proto.MESSAGE, - number=48239828, - message="RegionInstanceGroupsListInstancesRequest", - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -56234,9 +56629,9 @@ class ListInstancesRegionInstanceGroupsRequest(proto.Message): ) -class ListInstancesRequest(proto.Message): - r"""A request message for Instances.List. See the method - description for details. +class ListInstancesInstanceGroupsRequest(proto.Message): + r"""A request message for InstanceGroups.ListInstances. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -56286,6 +56681,11 @@ class ListInstancesRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. + instance_group (str): + The name of the instance group from which you + want to generate a list of included instances. + instance_groups_list_instances_request_resource (google.cloud.compute_v1.types.InstanceGroupsListInstancesRequest): + The body resource for this request max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -56327,7 +56727,8 @@ class ListInstancesRequest(proto.Message): This field is a member of `oneof`_ ``_return_partial_success``. zone (str): - The name of the zone for this request. + The name of the zone where the instance group + is located. """ filter: str = proto.Field( @@ -56335,6 +56736,15 @@ class ListInstancesRequest(proto.Message): number=336120696, optional=True, ) + instance_group: str = proto.Field( + proto.STRING, + number=81095253, + ) + instance_groups_list_instances_request_resource: "InstanceGroupsListInstancesRequest" = proto.Field( + proto.MESSAGE, + number=476255263, + message="InstanceGroupsListInstancesRequest", + ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -56365,9 +56775,9 @@ class ListInstancesRequest(proto.Message): ) -class ListInstantSnapshotsRequest(proto.Message): - r"""A request message for InstantSnapshots.List. See the method - description for details. +class ListInstancesRegionInstanceGroupsRequest(proto.Message): + r"""A request message for RegionInstanceGroups.ListInstances. See + the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -56417,6 +56827,9 @@ class ListInstantSnapshotsRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. + instance_group (str): + Name of the regional instance group for which + we want to list the instances. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -56447,6 +56860,10 @@ class ListInstantSnapshotsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region scoping this request. + region_instance_groups_list_instances_request_resource (google.cloud.compute_v1.types.RegionInstanceGroupsListInstancesRequest): + The body resource for this request return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -56457,8 +56874,6 @@ class ListInstantSnapshotsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone for this request. """ filter: str = proto.Field( @@ -56466,6 +56881,10 @@ class ListInstantSnapshotsRequest(proto.Message): number=336120696, optional=True, ) + instance_group: str = proto.Field( + proto.STRING, + number=81095253, + ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -56485,20 +56904,25 @@ class ListInstantSnapshotsRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + region_instance_groups_list_instances_request_resource: "RegionInstanceGroupsListInstancesRequest" = proto.Field( + proto.MESSAGE, + number=48239828, + message="RegionInstanceGroupsListInstancesRequest", + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListInterconnectAttachmentsRequest(proto.Message): - r"""A request message for InterconnectAttachments.List. See the - method description for details. +class ListInstancesRequest(proto.Message): + r"""A request message for Instances.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -56578,8 +57002,6 @@ class ListInterconnectAttachmentsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -56590,6 +57012,8 @@ class ListInterconnectAttachmentsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone for this request. """ filter: str = proto.Field( @@ -56616,20 +57040,20 @@ class ListInterconnectAttachmentsRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class ListInterconnectLocationsRequest(proto.Message): - r"""A request message for InterconnectLocations.List. See the - method description for details. +class ListInstantSnapshotsRequest(proto.Message): + r"""A request message for InstantSnapshots.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -56719,6 +57143,8 @@ class ListInterconnectLocationsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone for this request. """ filter: str = proto.Field( @@ -56750,11 +57176,15 @@ class ListInterconnectLocationsRequest(proto.Message): number=517198390, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class ListInterconnectRemoteLocationsRequest(proto.Message): - r"""A request message for InterconnectRemoteLocations.List. See - the method description for details. +class ListInterconnectAttachmentsRequest(proto.Message): + r"""A request message for InterconnectAttachments.List. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -56834,6 +57264,8 @@ class ListInterconnectRemoteLocationsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -56870,6 +57302,10 @@ class ListInterconnectRemoteLocationsRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -56877,9 +57313,9 @@ class ListInterconnectRemoteLocationsRequest(proto.Message): ) -class ListInterconnectsRequest(proto.Message): - r"""A request message for Interconnects.List. See the method - description for details. +class ListInterconnectLocationsRequest(proto.Message): + r"""A request message for InterconnectLocations.List. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -57002,9 +57438,9 @@ class ListInterconnectsRequest(proto.Message): ) -class ListLicensesRequest(proto.Message): - r"""A request message for Licenses.List. See the method - description for details. +class ListInterconnectRemoteLocationsRequest(proto.Message): + r"""A request message for InterconnectRemoteLocations.List. See + the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -57127,8 +57563,8 @@ class ListLicensesRequest(proto.Message): ) -class ListMachineImagesRequest(proto.Message): - r"""A request message for MachineImages.List. See the method +class ListInterconnectsRequest(proto.Message): + r"""A request message for Interconnects.List. See the method description for details. @@ -57252,8 +57688,8 @@ class ListMachineImagesRequest(proto.Message): ) -class ListMachineTypesRequest(proto.Message): - r"""A request message for MachineTypes.List. See the method +class ListLicensesRequest(proto.Message): + r"""A request message for Licenses.List. See the method description for details. @@ -57344,8 +57780,6 @@ class ListMachineTypesRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone for this request. """ filter: str = proto.Field( @@ -57377,15 +57811,10 @@ class ListMachineTypesRequest(proto.Message): number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListManagedInstancesInstanceGroupManagersRequest(proto.Message): - r"""A request message for - InstanceGroupManagers.ListManagedInstances. See the method +class ListMachineImagesRequest(proto.Message): + r"""A request message for MachineImages.List. See the method description for details. @@ -57436,8 +57865,6 @@ class ListManagedInstancesInstanceGroupManagersRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. - instance_group_manager (str): - The name of the managed instance group. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -57478,9 +57905,6 @@ class ListManagedInstancesInstanceGroupManagersRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone where the managed - instance group is located. """ filter: str = proto.Field( @@ -57488,10 +57912,6 @@ class ListManagedInstancesInstanceGroupManagersRequest(proto.Message): number=336120696, optional=True, ) - instance_group_manager: str = proto.Field( - proto.STRING, - number=249363395, - ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -57516,15 +57936,10 @@ class ListManagedInstancesInstanceGroupManagersRequest(proto.Message): number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message): - r"""A request message for - RegionInstanceGroupManagers.ListManagedInstances. See the method +class ListMachineTypesRequest(proto.Message): + r"""A request message for MachineTypes.List. See the method description for details. @@ -57575,8 +57990,6 @@ class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. - instance_group_manager (str): - The name of the managed instance group. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -57607,8 +58020,6 @@ class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region scoping this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -57619,6 +58030,8 @@ class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone for this request. """ filter: str = proto.Field( @@ -57626,10 +58039,6 @@ class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message): number=336120696, optional=True, ) - instance_group_manager: str = proto.Field( - proto.STRING, - number=249363395, - ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -57649,19 +58058,20 @@ class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class ListNetworkAttachmentsRequest(proto.Message): - r"""A request message for NetworkAttachments.List. See the method +class ListManagedInstancesInstanceGroupManagersRequest(proto.Message): + r"""A request message for + InstanceGroupManagers.ListManagedInstances. See the method description for details. @@ -57712,6 +58122,8 @@ class ListNetworkAttachmentsRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. + instance_group_manager (str): + The name of the managed instance group. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -57742,8 +58154,6 @@ class ListNetworkAttachmentsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region of this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -57754,6 +58164,9 @@ class ListNetworkAttachmentsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone where the managed + instance group is located. """ filter: str = proto.Field( @@ -57761,6 +58174,10 @@ class ListNetworkAttachmentsRequest(proto.Message): number=336120696, optional=True, ) + instance_group_manager: str = proto.Field( + proto.STRING, + number=249363395, + ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -57780,20 +58197,21 @@ class ListNetworkAttachmentsRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class ListNetworkEndpointGroupsRequest(proto.Message): - r"""A request message for NetworkEndpointGroups.List. See the - method description for details. +class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message): + r"""A request message for + RegionInstanceGroupManagers.ListManagedInstances. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -57843,6 +58261,8 @@ class ListNetworkEndpointGroupsRequest(proto.Message): multiple fields using regular expressions. This field is a member of `oneof`_ ``_filter``. + instance_group_manager (str): + The name of the managed instance group. max_results (int): The maximum number of results per page that should be returned. If the number of available results is larger than @@ -57873,6 +58293,8 @@ class ListNetworkEndpointGroupsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region scoping this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -57883,10 +58305,6 @@ class ListNetworkEndpointGroupsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone where the network - endpoint group is located. It should comply with - RFC1035. """ filter: str = proto.Field( @@ -57894,6 +58312,10 @@ class ListNetworkEndpointGroupsRequest(proto.Message): number=336120696, optional=True, ) + instance_group_manager: str = proto.Field( + proto.STRING, + number=249363395, + ) max_results: int = proto.Field( proto.UINT32, number=54715419, @@ -57913,20 +58335,19 @@ class ListNetworkEndpointGroupsRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message): - r"""A request message for - GlobalNetworkEndpointGroups.ListNetworkEndpoints. See the method +class ListNetworkAttachmentsRequest(proto.Message): + r"""A request message for NetworkAttachments.List. See the method description for details. @@ -57986,11 +58407,6 @@ class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message): ``500``, inclusive. (Default: ``500``) This field is a member of `oneof`_ ``_max_results``. - network_endpoint_group (str): - The name of the network endpoint group from - which you want to generate a list of included - network endpoints. It should comply with - RFC1035. order_by (str): Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource @@ -58012,6 +58428,8 @@ class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region of this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -58034,10 +58452,6 @@ class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message): number=54715419, optional=True, ) - network_endpoint_group: str = proto.Field( - proto.STRING, - number=433907078, - ) order_by: str = proto.Field( proto.STRING, number=160562920, @@ -58052,6 +58466,10 @@ class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -58059,10 +58477,9 @@ class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message): ) -class ListNetworkEndpointsNetworkEndpointGroupsRequest(proto.Message): - r"""A request message for - NetworkEndpointGroups.ListNetworkEndpoints. See the method - description for details. +class ListNetworkEndpointGroupsRequest(proto.Message): + r"""A request message for NetworkEndpointGroups.List. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -58121,13 +58538,6 @@ class ListNetworkEndpointsNetworkEndpointGroupsRequest(proto.Message): ``500``, inclusive. (Default: ``500``) This field is a member of `oneof`_ ``_max_results``. - network_endpoint_group (str): - The name of the network endpoint group from - which you want to generate a list of included - network endpoints. It should comply with - RFC1035. - network_endpoint_groups_list_endpoints_request_resource (google.cloud.compute_v1.types.NetworkEndpointGroupsListEndpointsRequest): - The body resource for this request order_by (str): Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource @@ -58175,15 +58585,6 @@ class ListNetworkEndpointsNetworkEndpointGroupsRequest(proto.Message): number=54715419, optional=True, ) - network_endpoint_group: str = proto.Field( - proto.STRING, - number=433907078, - ) - network_endpoint_groups_list_endpoints_request_resource: "NetworkEndpointGroupsListEndpointsRequest" = proto.Field( - proto.MESSAGE, - number=59493390, - message="NetworkEndpointGroupsListEndpointsRequest", - ) order_by: str = proto.Field( proto.STRING, number=160562920, @@ -58209,9 +58610,9 @@ class ListNetworkEndpointsNetworkEndpointGroupsRequest(proto.Message): ) -class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest(proto.Message): +class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message): r"""A request message for - RegionNetworkEndpointGroups.ListNetworkEndpoints. See the method + GlobalNetworkEndpointGroups.ListNetworkEndpoints. See the method description for details. @@ -58297,10 +58698,6 @@ class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - The name of the region where the network - endpoint group is located. It should comply with - RFC1035. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -58341,10 +58738,6 @@ class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -58352,9 +58745,10 @@ class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest(proto.Message): ) -class ListNetworkFirewallPoliciesRequest(proto.Message): - r"""A request message for NetworkFirewallPolicies.List. See the - method description for details. +class ListNetworkEndpointsNetworkEndpointGroupsRequest(proto.Message): + r"""A request message for + NetworkEndpointGroups.ListNetworkEndpoints. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -58413,6 +58807,13 @@ class ListNetworkFirewallPoliciesRequest(proto.Message): ``500``, inclusive. (Default: ``500``) This field is a member of `oneof`_ ``_max_results``. + network_endpoint_group (str): + The name of the network endpoint group from + which you want to generate a list of included + network endpoints. It should comply with + RFC1035. + network_endpoint_groups_list_endpoints_request_resource (google.cloud.compute_v1.types.NetworkEndpointGroupsListEndpointsRequest): + The body resource for this request order_by (str): Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource @@ -58444,6 +58845,10 @@ class ListNetworkFirewallPoliciesRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone where the network + endpoint group is located. It should comply with + RFC1035. """ filter: str = proto.Field( @@ -58456,6 +58861,15 @@ class ListNetworkFirewallPoliciesRequest(proto.Message): number=54715419, optional=True, ) + network_endpoint_group: str = proto.Field( + proto.STRING, + number=433907078, + ) + network_endpoint_groups_list_endpoints_request_resource: "NetworkEndpointGroupsListEndpointsRequest" = proto.Field( + proto.MESSAGE, + number=59493390, + message="NetworkEndpointGroupsListEndpointsRequest", + ) order_by: str = proto.Field( proto.STRING, number=160562920, @@ -58475,10 +58889,15 @@ class ListNetworkFirewallPoliciesRequest(proto.Message): number=517198390, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class ListNetworkProfilesRequest(proto.Message): - r"""A request message for NetworkProfiles.List. See the method +class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest(proto.Message): + r"""A request message for + RegionNetworkEndpointGroups.ListNetworkEndpoints. See the method description for details. @@ -58538,6 +58957,11 @@ class ListNetworkProfilesRequest(proto.Message): ``500``, inclusive. (Default: ``500``) This field is a member of `oneof`_ ``_max_results``. + network_endpoint_group (str): + The name of the network endpoint group from + which you want to generate a list of included + network endpoints. It should comply with + RFC1035. order_by (str): Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource @@ -58559,6 +58983,10 @@ class ListNetworkProfilesRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + The name of the region where the network + endpoint group is located. It should comply with + RFC1035. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -58581,6 +59009,10 @@ class ListNetworkProfilesRequest(proto.Message): number=54715419, optional=True, ) + network_endpoint_group: str = proto.Field( + proto.STRING, + number=433907078, + ) order_by: str = proto.Field( proto.STRING, number=160562920, @@ -58595,6 +59027,10 @@ class ListNetworkProfilesRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -58602,9 +59038,9 @@ class ListNetworkProfilesRequest(proto.Message): ) -class ListNetworksRequest(proto.Message): - r"""A request message for Networks.List. See the method - description for details. +class ListNetworkFirewallPoliciesRequest(proto.Message): + r"""A request message for NetworkFirewallPolicies.List. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -58727,8 +59163,8 @@ class ListNetworksRequest(proto.Message): ) -class ListNodeGroupsRequest(proto.Message): - r"""A request message for NodeGroups.List. See the method +class ListNetworkProfilesRequest(proto.Message): + r"""A request message for NetworkProfiles.List. See the method description for details. @@ -58819,8 +59255,6 @@ class ListNodeGroupsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone for this request. """ filter: str = proto.Field( @@ -58852,14 +59286,10 @@ class ListNodeGroupsRequest(proto.Message): number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListNodeTemplatesRequest(proto.Message): - r"""A request message for NodeTemplates.List. See the method +class ListNetworksRequest(proto.Message): + r"""A request message for Networks.List. See the method description for details. @@ -58940,8 +59370,6 @@ class ListNodeTemplatesRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - The name of the region for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -58978,10 +59406,6 @@ class ListNodeTemplatesRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -58989,8 +59413,8 @@ class ListNodeTemplatesRequest(proto.Message): ) -class ListNodeTypesRequest(proto.Message): - r"""A request message for NodeTypes.List. See the method +class ListNodeGroupsRequest(proto.Message): + r"""A request message for NodeGroups.List. See the method description for details. @@ -59120,8 +59544,8 @@ class ListNodeTypesRequest(proto.Message): ) -class ListNodesNodeGroupsRequest(proto.Message): - r"""A request message for NodeGroups.ListNodes. See the method +class ListNodeTemplatesRequest(proto.Message): + r"""A request message for NodeTemplates.List. See the method description for details. @@ -59181,9 +59605,6 @@ class ListNodesNodeGroupsRequest(proto.Message): ``500``, inclusive. (Default: ``500``) This field is a member of `oneof`_ ``_max_results``. - node_group (str): - Name of the NodeGroup resource whose nodes - you want to list. order_by (str): Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource @@ -59205,6 +59626,8 @@ class ListNodesNodeGroupsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + The name of the region for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -59215,8 +59638,6 @@ class ListNodesNodeGroupsRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone for this request. """ filter: str = proto.Field( @@ -59229,9 +59650,136 @@ class ListNodesNodeGroupsRequest(proto.Message): number=54715419, optional=True, ) - node_group: str = proto.Field( + order_by: str = proto.Field( proto.STRING, - number=469958146, + number=160562920, + optional=True, + ) + page_token: str = proto.Field( + proto.STRING, + number=19994697, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + return_partial_success: bool = proto.Field( + proto.BOOL, + number=517198390, + optional=True, + ) + + +class ListNodeTypesRequest(proto.Message): + r"""A request message for NodeTypes.List. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + filter (str): + A filter expression that filters resources listed in the + response. Most Compute resources support two types of filter + expressions: expressions that support regular expressions + and expressions that follow API improvement proposal + AIP-160. These two types of filter expressions cannot be + mixed in one request. If you want to use AIP-160, your + expression must specify the field name, an operator, and the + value that you want to use for filtering. The value must be + a string, a number, or a boolean. The operator must be + either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``. + For example, if you are filtering Compute Engine instances, + you can exclude instances named ``example-instance`` by + specifying ``name != example-instance``. The ``:*`` + comparison can be used to test whether a key has been + defined. For example, to find all objects with ``owner`` + label use: ``labels.owner:*`` You can also filter nested + fields. For example, you could specify + ``scheduling.automaticRestart = false`` to include instances + only if they are not scheduled for automatic restarts. You + can use filtering on nested fields to filter based on + resource labels. To filter on multiple expressions, provide + each separate expression within parentheses. For example: + ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")`` + By default, each expression is an ``AND`` expression. + However, you can include ``AND`` and ``OR`` expressions + explicitly. For example: + ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)`` + If you want to use a regular expression, use the ``eq`` + (equal) or ``ne`` (not equal) operator against a single + un-parenthesized expression with or without quotes or + against multiple parenthesized expressions. Examples: + ``fieldname eq unquoted literal`` + ``fieldname eq 'single quoted literal'`` + ``fieldname eq "double quoted literal"`` + ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The + literal value is interpreted as a regular expression using + Google RE2 library syntax. The literal value must match the + entire field. For example, to filter for instances that do + not end with name "instance", you would use + ``name ne .*instance``. You cannot combine constraints on + multiple fields using regular expressions. + + This field is a member of `oneof`_ ``_filter``. + max_results (int): + The maximum number of results per page that should be + returned. If the number of available results is larger than + ``maxResults``, Compute Engine returns a ``nextPageToken`` + that can be used to get the next page of results in + subsequent list requests. Acceptable values are ``0`` to + ``500``, inclusive. (Default: ``500``) + + This field is a member of `oneof`_ ``_max_results``. + order_by (str): + Sorts list results by a certain order. By default, results + are returned in alphanumerical order based on the resource + name. You can also sort results in descending order based on + the creation timestamp using + ``orderBy="creationTimestamp desc"``. This sorts results + based on the ``creationTimestamp`` field in reverse + chronological order (newest result first). Use this to sort + resources like operations so that the newest operation is + returned first. Currently, only sorting by ``name`` or + ``creationTimestamp desc`` is supported. + + This field is a member of `oneof`_ ``_order_by``. + page_token (str): + Specifies a page token to use. Set ``pageToken`` to the + ``nextPageToken`` returned by a previous list request to get + the next page of results. + + This field is a member of `oneof`_ ``_page_token``. + project (str): + Project ID for this request. + return_partial_success (bool): + Opt-in for partial success behavior which + provides partial results in case of failure. The + default value is false. For example, when + partial success behavior is enabled, + aggregatedList for a single zone scope either + returns all resources in the zone or no + resources, with an error code. + + This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone for this request. + """ + + filter: str = proto.Field( + proto.STRING, + number=336120696, + optional=True, + ) + max_results: int = proto.Field( + proto.UINT32, + number=54715419, + optional=True, ) order_by: str = proto.Field( proto.STRING, @@ -59258,8 +59806,146 @@ class ListNodesNodeGroupsRequest(proto.Message): ) -class ListPacketMirroringsRequest(proto.Message): - r"""A request message for PacketMirrorings.List. See the method +class ListNodesNodeGroupsRequest(proto.Message): + r"""A request message for NodeGroups.ListNodes. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + filter (str): + A filter expression that filters resources listed in the + response. Most Compute resources support two types of filter + expressions: expressions that support regular expressions + and expressions that follow API improvement proposal + AIP-160. These two types of filter expressions cannot be + mixed in one request. If you want to use AIP-160, your + expression must specify the field name, an operator, and the + value that you want to use for filtering. The value must be + a string, a number, or a boolean. The operator must be + either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``. + For example, if you are filtering Compute Engine instances, + you can exclude instances named ``example-instance`` by + specifying ``name != example-instance``. The ``:*`` + comparison can be used to test whether a key has been + defined. For example, to find all objects with ``owner`` + label use: ``labels.owner:*`` You can also filter nested + fields. For example, you could specify + ``scheduling.automaticRestart = false`` to include instances + only if they are not scheduled for automatic restarts. You + can use filtering on nested fields to filter based on + resource labels. To filter on multiple expressions, provide + each separate expression within parentheses. For example: + ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")`` + By default, each expression is an ``AND`` expression. + However, you can include ``AND`` and ``OR`` expressions + explicitly. For example: + ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)`` + If you want to use a regular expression, use the ``eq`` + (equal) or ``ne`` (not equal) operator against a single + un-parenthesized expression with or without quotes or + against multiple parenthesized expressions. Examples: + ``fieldname eq unquoted literal`` + ``fieldname eq 'single quoted literal'`` + ``fieldname eq "double quoted literal"`` + ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The + literal value is interpreted as a regular expression using + Google RE2 library syntax. The literal value must match the + entire field. For example, to filter for instances that do + not end with name "instance", you would use + ``name ne .*instance``. You cannot combine constraints on + multiple fields using regular expressions. + + This field is a member of `oneof`_ ``_filter``. + max_results (int): + The maximum number of results per page that should be + returned. If the number of available results is larger than + ``maxResults``, Compute Engine returns a ``nextPageToken`` + that can be used to get the next page of results in + subsequent list requests. Acceptable values are ``0`` to + ``500``, inclusive. (Default: ``500``) + + This field is a member of `oneof`_ ``_max_results``. + node_group (str): + Name of the NodeGroup resource whose nodes + you want to list. + order_by (str): + Sorts list results by a certain order. By default, results + are returned in alphanumerical order based on the resource + name. You can also sort results in descending order based on + the creation timestamp using + ``orderBy="creationTimestamp desc"``. This sorts results + based on the ``creationTimestamp`` field in reverse + chronological order (newest result first). Use this to sort + resources like operations so that the newest operation is + returned first. Currently, only sorting by ``name`` or + ``creationTimestamp desc`` is supported. + + This field is a member of `oneof`_ ``_order_by``. + page_token (str): + Specifies a page token to use. Set ``pageToken`` to the + ``nextPageToken`` returned by a previous list request to get + the next page of results. + + This field is a member of `oneof`_ ``_page_token``. + project (str): + Project ID for this request. + return_partial_success (bool): + Opt-in for partial success behavior which + provides partial results in case of failure. The + default value is false. For example, when + partial success behavior is enabled, + aggregatedList for a single zone scope either + returns all resources in the zone or no + resources, with an error code. + + This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone for this request. + """ + + filter: str = proto.Field( + proto.STRING, + number=336120696, + optional=True, + ) + max_results: int = proto.Field( + proto.UINT32, + number=54715419, + optional=True, + ) + node_group: str = proto.Field( + proto.STRING, + number=469958146, + ) + order_by: str = proto.Field( + proto.STRING, + number=160562920, + optional=True, + ) + page_token: str = proto.Field( + proto.STRING, + number=19994697, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + return_partial_success: bool = proto.Field( + proto.BOOL, + number=517198390, + optional=True, + ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) + + +class ListPacketMirroringsRequest(proto.Message): + r"""A request message for PacketMirrorings.List. See the method description for details. @@ -63772,9 +64458,9 @@ class ListResourcePoliciesRequest(proto.Message): ) -class ListRoutersRequest(proto.Message): - r"""A request message for Routers.List. See the method - description for details. +class ListRoutePoliciesRoutersRequest(proto.Message): + r"""A request message for Routers.ListRoutePolicies. See the + method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -63866,6 +64552,9 @@ class ListRoutersRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + router (str): + Name or id of the resource for this request. + Name should conform to RFC1035. """ filter: str = proto.Field( @@ -63901,11 +64590,15 @@ class ListRoutersRequest(proto.Message): number=517198390, optional=True, ) + router: str = proto.Field( + proto.STRING, + number=148608841, + ) -class ListRoutesRequest(proto.Message): - r"""A request message for Routes.List. See the method description - for details. +class ListRoutersRequest(proto.Message): + r"""A request message for Routers.List. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -63985,6 +64678,8 @@ class ListRoutesRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region for this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -64021,6 +64716,10 @@ class ListRoutesRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -64028,9 +64727,9 @@ class ListRoutesRequest(proto.Message): ) -class ListSecurityPoliciesRequest(proto.Message): - r"""A request message for SecurityPolicies.List. See the method - description for details. +class ListRoutesRequest(proto.Message): + r"""A request message for Routes.List. See the method description + for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields @@ -64153,8 +64852,8 @@ class ListSecurityPoliciesRequest(proto.Message): ) -class ListServiceAttachmentsRequest(proto.Message): - r"""A request message for ServiceAttachments.List. See the method +class ListSecurityPoliciesRequest(proto.Message): + r"""A request message for SecurityPolicies.List. See the method description for details. @@ -64235,8 +64934,6 @@ class ListServiceAttachmentsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region of this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -64273,10 +64970,6 @@ class ListServiceAttachmentsRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -64284,8 +64977,8 @@ class ListServiceAttachmentsRequest(proto.Message): ) -class ListSnapshotsRequest(proto.Message): - r"""A request message for Snapshots.List. See the method +class ListServiceAttachmentsRequest(proto.Message): + r"""A request message for ServiceAttachments.List. See the method description for details. @@ -64366,6 +65059,8 @@ class ListSnapshotsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region of this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -64402,6 +65097,10 @@ class ListSnapshotsRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -64409,8 +65108,8 @@ class ListSnapshotsRequest(proto.Message): ) -class ListSslCertificatesRequest(proto.Message): - r"""A request message for SslCertificates.List. See the method +class ListSnapshotsRequest(proto.Message): + r"""A request message for Snapshots.List. See the method description for details. @@ -64534,8 +65233,8 @@ class ListSslCertificatesRequest(proto.Message): ) -class ListSslPoliciesRequest(proto.Message): - r"""A request message for SslPolicies.List. See the method +class ListSslCertificatesRequest(proto.Message): + r"""A request message for SslCertificates.List. See the method description for details. @@ -64659,8 +65358,8 @@ class ListSslPoliciesRequest(proto.Message): ) -class ListStoragePoolTypesRequest(proto.Message): - r"""A request message for StoragePoolTypes.List. See the method +class ListSslPoliciesRequest(proto.Message): + r"""A request message for SslPolicies.List. See the method description for details. @@ -64751,8 +65450,6 @@ class ListStoragePoolTypesRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - The name of the zone for this request. """ filter: str = proto.Field( @@ -64784,14 +65481,10 @@ class ListStoragePoolTypesRequest(proto.Message): number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListStoragePoolsRequest(proto.Message): - r"""A request message for StoragePools.List. See the method +class ListStoragePoolTypesRequest(proto.Message): + r"""A request message for StoragePoolTypes.List. See the method description for details. @@ -64921,8 +65614,8 @@ class ListStoragePoolsRequest(proto.Message): ) -class ListSubnetworksRequest(proto.Message): - r"""A request message for Subnetworks.List. See the method +class ListStoragePoolsRequest(proto.Message): + r"""A request message for StoragePools.List. See the method description for details. @@ -65003,8 +65696,6 @@ class ListSubnetworksRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region scoping this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -65015,6 +65706,8 @@ class ListSubnetworksRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + The name of the zone for this request. """ filter: str = proto.Field( @@ -65041,19 +65734,19 @@ class ListSubnetworksRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class ListTargetGrpcProxiesRequest(proto.Message): - r"""A request message for TargetGrpcProxies.List. See the method +class ListSubnetworksRequest(proto.Message): + r"""A request message for Subnetworks.List. See the method description for details. @@ -65134,6 +65827,8 @@ class ListTargetGrpcProxiesRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. + region (str): + Name of the region scoping this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -65170,6 +65865,10 @@ class ListTargetGrpcProxiesRequest(proto.Message): proto.STRING, number=227560217, ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) return_partial_success: bool = proto.Field( proto.BOOL, number=517198390, @@ -65177,8 +65876,8 @@ class ListTargetGrpcProxiesRequest(proto.Message): ) -class ListTargetHttpProxiesRequest(proto.Message): - r"""A request message for TargetHttpProxies.List. See the method +class ListTargetGrpcProxiesRequest(proto.Message): + r"""A request message for TargetGrpcProxies.List. See the method description for details. @@ -65302,8 +66001,8 @@ class ListTargetHttpProxiesRequest(proto.Message): ) -class ListTargetHttpsProxiesRequest(proto.Message): - r"""A request message for TargetHttpsProxies.List. See the method +class ListTargetHttpProxiesRequest(proto.Message): + r"""A request message for TargetHttpProxies.List. See the method description for details. @@ -65427,8 +66126,8 @@ class ListTargetHttpsProxiesRequest(proto.Message): ) -class ListTargetInstancesRequest(proto.Message): - r"""A request message for TargetInstances.List. See the method +class ListTargetHttpsProxiesRequest(proto.Message): + r"""A request message for TargetHttpsProxies.List. See the method description for details. @@ -65519,8 +66218,6 @@ class ListTargetInstancesRequest(proto.Message): resources, with an error code. This field is a member of `oneof`_ ``_return_partial_success``. - zone (str): - Name of the zone scoping this request. """ filter: str = proto.Field( @@ -65552,14 +66249,10 @@ class ListTargetInstancesRequest(proto.Message): number=517198390, optional=True, ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) -class ListTargetPoolsRequest(proto.Message): - r"""A request message for TargetPools.List. See the method +class ListTargetInstancesRequest(proto.Message): + r"""A request message for TargetInstances.List. See the method description for details. @@ -65640,8 +66333,139 @@ class ListTargetPoolsRequest(proto.Message): This field is a member of `oneof`_ ``_page_token``. project (str): Project ID for this request. - region (str): - Name of the region scoping this request. + return_partial_success (bool): + Opt-in for partial success behavior which + provides partial results in case of failure. The + default value is false. For example, when + partial success behavior is enabled, + aggregatedList for a single zone scope either + returns all resources in the zone or no + resources, with an error code. + + This field is a member of `oneof`_ ``_return_partial_success``. + zone (str): + Name of the zone scoping this request. + """ + + filter: str = proto.Field( + proto.STRING, + number=336120696, + optional=True, + ) + max_results: int = proto.Field( + proto.UINT32, + number=54715419, + optional=True, + ) + order_by: str = proto.Field( + proto.STRING, + number=160562920, + optional=True, + ) + page_token: str = proto.Field( + proto.STRING, + number=19994697, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + return_partial_success: bool = proto.Field( + proto.BOOL, + number=517198390, + optional=True, + ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) + + +class ListTargetPoolsRequest(proto.Message): + r"""A request message for TargetPools.List. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + filter (str): + A filter expression that filters resources listed in the + response. Most Compute resources support two types of filter + expressions: expressions that support regular expressions + and expressions that follow API improvement proposal + AIP-160. These two types of filter expressions cannot be + mixed in one request. If you want to use AIP-160, your + expression must specify the field name, an operator, and the + value that you want to use for filtering. The value must be + a string, a number, or a boolean. The operator must be + either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``. + For example, if you are filtering Compute Engine instances, + you can exclude instances named ``example-instance`` by + specifying ``name != example-instance``. The ``:*`` + comparison can be used to test whether a key has been + defined. For example, to find all objects with ``owner`` + label use: ``labels.owner:*`` You can also filter nested + fields. For example, you could specify + ``scheduling.automaticRestart = false`` to include instances + only if they are not scheduled for automatic restarts. You + can use filtering on nested fields to filter based on + resource labels. To filter on multiple expressions, provide + each separate expression within parentheses. For example: + ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")`` + By default, each expression is an ``AND`` expression. + However, you can include ``AND`` and ``OR`` expressions + explicitly. For example: + ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)`` + If you want to use a regular expression, use the ``eq`` + (equal) or ``ne`` (not equal) operator against a single + un-parenthesized expression with or without quotes or + against multiple parenthesized expressions. Examples: + ``fieldname eq unquoted literal`` + ``fieldname eq 'single quoted literal'`` + ``fieldname eq "double quoted literal"`` + ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The + literal value is interpreted as a regular expression using + Google RE2 library syntax. The literal value must match the + entire field. For example, to filter for instances that do + not end with name "instance", you would use + ``name ne .*instance``. You cannot combine constraints on + multiple fields using regular expressions. + + This field is a member of `oneof`_ ``_filter``. + max_results (int): + The maximum number of results per page that should be + returned. If the number of available results is larger than + ``maxResults``, Compute Engine returns a ``nextPageToken`` + that can be used to get the next page of results in + subsequent list requests. Acceptable values are ``0`` to + ``500``, inclusive. (Default: ``500``) + + This field is a member of `oneof`_ ``_max_results``. + order_by (str): + Sorts list results by a certain order. By default, results + are returned in alphanumerical order based on the resource + name. You can also sort results in descending order based on + the creation timestamp using + ``orderBy="creationTimestamp desc"``. This sorts results + based on the ``creationTimestamp`` field in reverse + chronological order (newest result first). Use this to sort + resources like operations so that the newest operation is + returned first. Currently, only sorting by ``name`` or + ``creationTimestamp desc`` is supported. + + This field is a member of `oneof`_ ``_order_by``. + page_token (str): + Specifies a page token to use. Set ``pageToken`` to the + ``nextPageToken`` returned by a previous list request to get + the next page of results. + + This field is a member of `oneof`_ ``_page_token``. + project (str): + Project ID for this request. + region (str): + Name of the region scoping this request. return_partial_success (bool): Opt-in for partial success behavior which provides partial results in case of failure. The @@ -71871,7 +72695,6 @@ class NetworkProfile(proto.Message): This field is a member of `oneof`_ ``_self_link_with_id``. zone (str): - [Output Only] Zone to which the network is restricted. This field is a member of `oneof`_ ``_zone``. """ @@ -72983,6 +73806,9 @@ class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy(proto.Message [Output Only] The name of the firewall policy. This field is a member of `oneof`_ ``_name``. + packet_mirroring_rules (MutableSequence[google.cloud.compute_v1.types.FirewallPolicyRule]): + [Output Only] The packet mirroring rules that apply to the + network. priority (int): [Output only] Priority of firewall policy association. Not applicable for type=HIERARCHY. @@ -73033,6 +73859,11 @@ class Type(proto.Enum): number=3373707, optional=True, ) + packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField( + proto.MESSAGE, + number=531644356, + message="FirewallPolicyRule", + ) priority: int = proto.Field( proto.INT32, number=445151652, @@ -74505,6 +75336,11 @@ class NodeType(proto.Message): in GB. This field is a member of `oneof`_ ``_local_ssd_gb``. + max_vms (int): + [Output Only] Maximum number of VMs that can be created for + this node type. + + This field is a member of `oneof`_ ``_max_vms``. memory_mb (int): [Output Only] The amount of physical memory available to the node type, defined in MB. @@ -74566,6 +75402,11 @@ class NodeType(proto.Message): number=329237578, optional=True, ) + max_vms: int = proto.Field( + proto.INT32, + number=307579713, + optional=True, + ) memory_mb: int = proto.Field( proto.INT32, number=116001171, @@ -77585,6 +78426,70 @@ class PatchPacketMirroringRequest(proto.Message): ) +class PatchPacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message): + r"""A request message for + NetworkFirewallPolicies.PatchPacketMirroringRule. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + firewall_policy (str): + Name of the firewall policy to update. + firewall_policy_rule_resource (google.cloud.compute_v1.types.FirewallPolicyRule): + The body resource for this request + priority (int): + The priority of the rule to patch. + + This field is a member of `oneof`_ ``_priority``. + project (str): + Project ID for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + """ + + firewall_policy: str = proto.Field( + proto.STRING, + number=498173265, + ) + firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field( + proto.MESSAGE, + number=250523523, + message="FirewallPolicyRule", + ) + priority: int = proto.Field( + proto.INT32, + number=445151652, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + + class PatchPerInstanceConfigsInstanceGroupManagerRequest(proto.Message): r"""A request message for InstanceGroupManagers.PatchPerInstanceConfigs. See the method @@ -78503,6 +79408,67 @@ class PatchResourcePolicyRequest(proto.Message): ) +class PatchRoutePolicyRouterRequest(proto.Message): + r"""A request message for Routers.PatchRoutePolicy. See the + method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + project (str): + Project ID for this request. + region (str): + Name of the region for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + route_policy_resource (google.cloud.compute_v1.types.RoutePolicy): + The body resource for this request + router (str): + Name of the Router resource where Route + Policy is defined. + """ + + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + route_policy_resource: "RoutePolicy" = proto.Field( + proto.MESSAGE, + number=116219525, + message="RoutePolicy", + ) + router: str = proto.Field( + proto.STRING, + number=148608841, + ) + + class PatchRouterRequest(proto.Message): r"""A request message for Routers.Patch. See the method description for details. @@ -84221,6 +85187,14 @@ class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewal [Output Only] The name of the firewall policy. This field is a member of `oneof`_ ``_name``. + packet_mirroring_rules (MutableSequence[google.cloud.compute_v1.types.FirewallPolicyRule]): + [Output only] The packet mirroring rules that apply to the + network. + priority (int): + [Output only] Priority of firewall policy association. Not + applicable for type=HIERARCHY. + + This field is a member of `oneof`_ ``_priority``. rules (MutableSequence[google.cloud.compute_v1.types.FirewallPolicyRule]): [Output only] The rules that apply to the network. type_ (str): @@ -84247,6 +85221,10 @@ class Type(proto.Enum): No description available. NETWORK_REGIONAL (190804272): No description available. + SYSTEM_GLOBAL (60099507): + No description available. + SYSTEM_REGIONAL (161777199): + No description available. UNSPECIFIED (526786327): No description available. """ @@ -84254,6 +85232,8 @@ class Type(proto.Enum): HIERARCHY = 69902869 NETWORK = 413984270 NETWORK_REGIONAL = 190804272 + SYSTEM_GLOBAL = 60099507 + SYSTEM_REGIONAL = 161777199 UNSPECIFIED = 526786327 display_name: str = proto.Field( @@ -84266,6 +85246,16 @@ class Type(proto.Enum): number=3373707, optional=True, ) + packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField( + proto.MESSAGE, + number=531644356, + message="FirewallPolicyRule", + ) + priority: int = proto.Field( + proto.INT32, + number=445151652, + optional=True, + ) rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField( proto.MESSAGE, number=108873975, @@ -84745,245 +85735,9 @@ class RemoveInstancesInstanceGroupRequest(proto.Message): ) -class RemovePeeringNetworkRequest(proto.Message): - r"""A request message for Networks.RemovePeering. See the method - description for details. - - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - network (str): - Name of the network resource to remove - peering from. - networks_remove_peering_request_resource (google.cloud.compute_v1.types.NetworksRemovePeeringRequest): - The body resource for this request - project (str): - Project ID for this request. - request_id (str): - An optional request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server will know to - ignore the request if it has already been - completed. For example, consider a situation - where you make an initial request and the - request times out. If you make the request again - with the same request ID, the server can check - if original operation with the same request ID - was received, and if so, will ignore the second - request. This prevents clients from accidentally - creating duplicate commitments. The request ID - must be a valid UUID with the exception that - zero UUID is not supported ( - 00000000-0000-0000-0000-000000000000). - - This field is a member of `oneof`_ ``_request_id``. - """ - - network: str = proto.Field( - proto.STRING, - number=232872494, - ) - networks_remove_peering_request_resource: "NetworksRemovePeeringRequest" = ( - proto.Field( - proto.MESSAGE, - number=421162494, - message="NetworksRemovePeeringRequest", - ) - ) - project: str = proto.Field( - proto.STRING, - number=227560217, - ) - request_id: str = proto.Field( - proto.STRING, - number=37109963, - optional=True, - ) - - -class RemoveResourcePoliciesDiskRequest(proto.Message): - r"""A request message for Disks.RemoveResourcePolicies. See the - method description for details. - - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - disk (str): - The disk name for this request. - disks_remove_resource_policies_request_resource (google.cloud.compute_v1.types.DisksRemoveResourcePoliciesRequest): - The body resource for this request - project (str): - Project ID for this request. - request_id (str): - An optional request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server will know to - ignore the request if it has already been - completed. For example, consider a situation - where you make an initial request and the - request times out. If you make the request again - with the same request ID, the server can check - if original operation with the same request ID - was received, and if so, will ignore the second - request. This prevents clients from accidentally - creating duplicate commitments. The request ID - must be a valid UUID with the exception that - zero UUID is not supported ( - 00000000-0000-0000-0000-000000000000). - - This field is a member of `oneof`_ ``_request_id``. - zone (str): - The name of the zone for this request. - """ - - disk: str = proto.Field( - proto.STRING, - number=3083677, - ) - disks_remove_resource_policies_request_resource: "DisksRemoveResourcePoliciesRequest" = proto.Field( - proto.MESSAGE, - number=436756718, - message="DisksRemoveResourcePoliciesRequest", - ) - project: str = proto.Field( - proto.STRING, - number=227560217, - ) - request_id: str = proto.Field( - proto.STRING, - number=37109963, - optional=True, - ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) - - -class RemoveResourcePoliciesInstanceRequest(proto.Message): - r"""A request message for Instances.RemoveResourcePolicies. See - the method description for details. - - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - instance (str): - The instance name for this request. - instances_remove_resource_policies_request_resource (google.cloud.compute_v1.types.InstancesRemoveResourcePoliciesRequest): - The body resource for this request - project (str): - Project ID for this request. - request_id (str): - An optional request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server will know to - ignore the request if it has already been - completed. For example, consider a situation - where you make an initial request and the - request times out. If you make the request again - with the same request ID, the server can check - if original operation with the same request ID - was received, and if so, will ignore the second - request. This prevents clients from accidentally - creating duplicate commitments. The request ID - must be a valid UUID with the exception that - zero UUID is not supported ( - 00000000-0000-0000-0000-000000000000). - - This field is a member of `oneof`_ ``_request_id``. - zone (str): - The name of the zone for this request. - """ - - instance: str = proto.Field( - proto.STRING, - number=18257045, - ) - instances_remove_resource_policies_request_resource: "InstancesRemoveResourcePoliciesRequest" = proto.Field( - proto.MESSAGE, - number=49229558, - message="InstancesRemoveResourcePoliciesRequest", - ) - project: str = proto.Field( - proto.STRING, - number=227560217, - ) - request_id: str = proto.Field( - proto.STRING, - number=37109963, - optional=True, - ) - zone: str = proto.Field( - proto.STRING, - number=3744684, - ) - - -class RemoveResourcePoliciesRegionDiskRequest(proto.Message): - r"""A request message for RegionDisks.RemoveResourcePolicies. See - the method description for details. - - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - disk (str): - The disk name for this request. - project (str): - Project ID for this request. - region (str): - The name of the region for this request. - region_disks_remove_resource_policies_request_resource (google.cloud.compute_v1.types.RegionDisksRemoveResourcePoliciesRequest): - The body resource for this request - request_id (str): - An optional request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server will know to - ignore the request if it has already been - completed. For example, consider a situation - where you make an initial request and the - request times out. If you make the request again - with the same request ID, the server can check - if original operation with the same request ID - was received, and if so, will ignore the second - request. This prevents clients from accidentally - creating duplicate commitments. The request ID - must be a valid UUID with the exception that - zero UUID is not supported ( - 00000000-0000-0000-0000-000000000000). - - This field is a member of `oneof`_ ``_request_id``. - """ - - disk: str = proto.Field( - proto.STRING, - number=3083677, - ) - project: str = proto.Field( - proto.STRING, - number=227560217, - ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) - region_disks_remove_resource_policies_request_resource: "RegionDisksRemoveResourcePoliciesRequest" = proto.Field( - proto.MESSAGE, - number=8741283, - message="RegionDisksRemoveResourcePoliciesRequest", - ) - request_id: str = proto.Field( - proto.STRING, - number=37109963, - optional=True, - ) - - -class RemoveRuleFirewallPolicyRequest(proto.Message): - r"""A request message for FirewallPolicies.RemoveRule. See the +class RemovePacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message): + r"""A request message for + NetworkFirewallPolicies.RemovePacketMirroringRule. See the method description for details. @@ -84997,6 +85751,8 @@ class RemoveRuleFirewallPolicyRequest(proto.Message): firewall policy. This field is a member of `oneof`_ ``_priority``. + project (str): + Project ID for this request. request_id (str): An optional request ID to identify requests. Specify a unique request ID so that if you must @@ -85026,6 +85782,10 @@ class RemoveRuleFirewallPolicyRequest(proto.Message): number=445151652, optional=True, ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) request_id: str = proto.Field( proto.STRING, number=37109963, @@ -85033,21 +85793,309 @@ class RemoveRuleFirewallPolicyRequest(proto.Message): ) -class RemoveRuleNetworkFirewallPolicyRequest(proto.Message): - r"""A request message for NetworkFirewallPolicies.RemoveRule. See - the method description for details. +class RemovePeeringNetworkRequest(proto.Message): + r"""A request message for Networks.RemovePeering. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: - firewall_policy (str): - Name of the firewall policy to update. - priority (int): - The priority of the rule to remove from the - firewall policy. - - This field is a member of `oneof`_ ``_priority``. + network (str): + Name of the network resource to remove + peering from. + networks_remove_peering_request_resource (google.cloud.compute_v1.types.NetworksRemovePeeringRequest): + The body resource for this request + project (str): + Project ID for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + """ + + network: str = proto.Field( + proto.STRING, + number=232872494, + ) + networks_remove_peering_request_resource: "NetworksRemovePeeringRequest" = ( + proto.Field( + proto.MESSAGE, + number=421162494, + message="NetworksRemovePeeringRequest", + ) + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + + +class RemoveResourcePoliciesDiskRequest(proto.Message): + r"""A request message for Disks.RemoveResourcePolicies. See the + method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + disk (str): + The disk name for this request. + disks_remove_resource_policies_request_resource (google.cloud.compute_v1.types.DisksRemoveResourcePoliciesRequest): + The body resource for this request + project (str): + Project ID for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + zone (str): + The name of the zone for this request. + """ + + disk: str = proto.Field( + proto.STRING, + number=3083677, + ) + disks_remove_resource_policies_request_resource: "DisksRemoveResourcePoliciesRequest" = proto.Field( + proto.MESSAGE, + number=436756718, + message="DisksRemoveResourcePoliciesRequest", + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) + + +class RemoveResourcePoliciesInstanceRequest(proto.Message): + r"""A request message for Instances.RemoveResourcePolicies. See + the method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + instance (str): + The instance name for this request. + instances_remove_resource_policies_request_resource (google.cloud.compute_v1.types.InstancesRemoveResourcePoliciesRequest): + The body resource for this request + project (str): + Project ID for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + zone (str): + The name of the zone for this request. + """ + + instance: str = proto.Field( + proto.STRING, + number=18257045, + ) + instances_remove_resource_policies_request_resource: "InstancesRemoveResourcePoliciesRequest" = proto.Field( + proto.MESSAGE, + number=49229558, + message="InstancesRemoveResourcePoliciesRequest", + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) + + +class RemoveResourcePoliciesRegionDiskRequest(proto.Message): + r"""A request message for RegionDisks.RemoveResourcePolicies. See + the method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + disk (str): + The disk name for this request. + project (str): + Project ID for this request. + region (str): + The name of the region for this request. + region_disks_remove_resource_policies_request_resource (google.cloud.compute_v1.types.RegionDisksRemoveResourcePoliciesRequest): + The body resource for this request + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + """ + + disk: str = proto.Field( + proto.STRING, + number=3083677, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + region_disks_remove_resource_policies_request_resource: "RegionDisksRemoveResourcePoliciesRequest" = proto.Field( + proto.MESSAGE, + number=8741283, + message="RegionDisksRemoveResourcePoliciesRequest", + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + + +class RemoveRuleFirewallPolicyRequest(proto.Message): + r"""A request message for FirewallPolicies.RemoveRule. See the + method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + firewall_policy (str): + Name of the firewall policy to update. + priority (int): + The priority of the rule to remove from the + firewall policy. + + This field is a member of `oneof`_ ``_priority``. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + """ + + firewall_policy: str = proto.Field( + proto.STRING, + number=498173265, + ) + priority: int = proto.Field( + proto.INT32, + number=445151652, + optional=True, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + + +class RemoveRuleNetworkFirewallPolicyRequest(proto.Message): + r"""A request message for NetworkFirewallPolicies.RemoveRule. See + the method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + firewall_policy (str): + Name of the firewall policy to update. + priority (int): + The priority of the rule to remove from the + firewall policy. + + This field is a member of `oneof`_ ``_priority``. project (str): Project ID for this request. request_id (str): @@ -86118,38 +87166,48 @@ class ResizeReservationRequest(proto.Message): class ResourceCommitment(proto.Message): - r"""Commitment for a particular resource (a Commitment is - composed of one or more of these). + r"""Commitment for a particular hardware resource (a commitment + is composed of one or more of these). .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: accelerator_type (str): - Name of the accelerator type resource. - Applicable only when the type is ACCELERATOR. + Name of the accelerator type or GPU resource. + Specify this field only when the type of + hardware resource is ACCELERATOR. This field is a member of `oneof`_ ``_accelerator_type``. amount (int): - The amount of the resource purchased (in a - type-dependent unit, such as bytes). For vCPUs, - this can just be an integer. For memory, this - must be provided in MB. Memory must be a - multiple of 256 MB, with up to 6.5GB of memory - per every vCPU. + The quantity of the hardware resource that + you want to commit to purchasing (in a + type-dependent unit). - For vCPUs, you must + specify an integer value. - For memory, you + specify the amount of MB that you want. The + value you specify must be a multiple of 256 MB, + with up to 6.5 GB of memory per every vCPU. - + For GPUs, you must specify an integer value. - + For Local SSD disks, you must specify the amount + in GB. The size of a single Local SSD disk is + 375 GB. This field is a member of `oneof`_ ``_amount``. type_ (str): - Type of resource for which this commitment applies. Possible - values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR. Check - the Type enum for the list of possible values. + The type of hardware resource that you want to specify. You + can specify any of the following values: - VCPU - MEMORY - + LOCAL_SSD - ACCELERATOR Specify as a separate entry in the + list for each individual resource type. Check the Type enum + for the list of possible values. This field is a member of `oneof`_ ``_type``. """ class Type(proto.Enum): - r"""Type of resource for which this commitment applies. Possible values - are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR. + r"""The type of hardware resource that you want to specify. You can + specify any of the following values: - VCPU - MEMORY - LOCAL_SSD - + ACCELERATOR Specify as a separate entry in the list for each + individual resource type. Values: UNDEFINED_TYPE (0): @@ -87932,6 +88990,131 @@ def raw_page(self): ) +class RoutePolicy(proto.Message): + r""" + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + description (str): + An optional description of route policy. + + This field is a member of `oneof`_ ``_description``. + fingerprint (str): + A fingerprint for the Route Policy being + applied to this Router, which is essentially a + hash of the Route Policy used for optimistic + locking. The fingerprint is initially generated + by Compute Engine and changes after every + request to modify or update Route Policy. You + must always provide an up-to-date fingerprint + hash in order to update or change labels. To see + the latest fingerprint, make a getRoutePolicy() + request to retrieve a Route Policy. + + This field is a member of `oneof`_ ``_fingerprint``. + name (str): + Route Policy name, which must be a resource + ID segment and unique within all the router's + Route Policies. Name should conform to RFC1035. + + This field is a member of `oneof`_ ``_name``. + terms (MutableSequence[google.cloud.compute_v1.types.RoutePolicyPolicyTerm]): + List of terms (the order in the list is not + important, they are evaluated in order of + priority). Order of policies is not retained and + might change when getting policy later. + type_ (str): + Check the Type enum for the list of possible + values. + + This field is a member of `oneof`_ ``_type``. + """ + + class Type(proto.Enum): + r""" + + Values: + UNDEFINED_TYPE (0): + A value indicating that the enum field is not + set. + ROUTE_POLICY_TYPE_EXPORT (293086882): + The Route Policy is an Export Policy. + ROUTE_POLICY_TYPE_IMPORT (397444755): + The Route Policy is an Import Policy. + """ + UNDEFINED_TYPE = 0 + ROUTE_POLICY_TYPE_EXPORT = 293086882 + ROUTE_POLICY_TYPE_IMPORT = 397444755 + + description: str = proto.Field( + proto.STRING, + number=422937596, + optional=True, + ) + fingerprint: str = proto.Field( + proto.STRING, + number=234678500, + optional=True, + ) + name: str = proto.Field( + proto.STRING, + number=3373707, + optional=True, + ) + terms: MutableSequence["RoutePolicyPolicyTerm"] = proto.RepeatedField( + proto.MESSAGE, + number=110250375, + message="RoutePolicyPolicyTerm", + ) + type_: str = proto.Field( + proto.STRING, + number=3575610, + optional=True, + ) + + +class RoutePolicyPolicyTerm(proto.Message): + r""" + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + actions (MutableSequence[google.cloud.compute_v1.types.Expr]): + CEL expressions to evaluate to modify a route + when this term matches. + match (google.cloud.compute_v1.types.Expr): + CEL expression evaluated against a route to + determine if this term applies. When not set, + the term applies to all routes. + + This field is a member of `oneof`_ ``_match``. + priority (int): + The evaluation priority for this term, which + must be between 0 (inclusive) and 2^31 + (exclusive), and unique within the list. + + This field is a member of `oneof`_ ``_priority``. + """ + + actions: MutableSequence["Expr"] = proto.RepeatedField( + proto.MESSAGE, + number=448809213, + message="Expr", + ) + match: "Expr" = proto.Field( + proto.MESSAGE, + number=103668165, + optional=True, + message="Expr", + ) + priority: int = proto.Field( + proto.INT32, + number=445151652, + optional=True, + ) + + class Router(proto.Message): r"""Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview. @@ -88406,15 +89589,11 @@ class RouterBgpPeer(proto.Message): export_policies (MutableSequence[str]): List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an - existing policy that has ROUTE_POLICY_TYPE_EXPORT type. Note - that Route Policies are currently available in preview. - Please use Beta API to use Route Policies. + existing policy that has ROUTE_POLICY_TYPE_EXPORT type. import_policies (MutableSequence[str]): List of import policies applied to this peer, in the order they must be evaluated. The name must correspond to an - existing policy that has ROUTE_POLICY_TYPE_IMPORT type. Note - that Route Policies are currently available in preview. - Please use Beta API to use Route Policies. + existing policy that has ROUTE_POLICY_TYPE_IMPORT type. interface_name (str): Name of the interface the BGP peer is associated with. @@ -88838,8 +90017,8 @@ class RouterInterface(proto.Message): unique local address (ULA) range from fdff:1::/64 with a mask length of 126 or less. This value should be a CIDR-formatted string, - for example, fc00:0:1:1::1/112. Within the - router's VPC, this IPv6 prefix will be reserved + for example, fdff:1::1/112. Within the router's + VPC, this IPv6 prefix will be reserved exclusively for this connection and cannot be used for any other purpose. @@ -90216,6 +91395,202 @@ class RouterStatusResponse(proto.Message): ) +class RoutersGetRoutePolicyResponse(proto.Message): + r""" + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + resource (google.cloud.compute_v1.types.RoutePolicy): + + This field is a member of `oneof`_ ``_resource``. + """ + + resource: "RoutePolicy" = proto.Field( + proto.MESSAGE, + number=195806222, + optional=True, + message="RoutePolicy", + ) + + +class RoutersListBgpRoutes(proto.Message): + r""" + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + etag (str): + + This field is a member of `oneof`_ ``_etag``. + id (str): + [Output Only] The unique identifier for the resource. This + identifier is defined by the server. + + This field is a member of `oneof`_ ``_id``. + kind (str): + [Output Only] Type of resource. Always + compute#routersListBgpRoutes for lists of bgp routes. + + This field is a member of `oneof`_ ``_kind``. + next_page_token (str): + [Output Only] This token allows you to get the next page of + results for list requests. If the number of results is + larger than maxResults, use the nextPageToken as a value for + the query parameter pageToken in the next list request. + Subsequent list requests will have their own nextPageToken + to continue paging through the results. + + This field is a member of `oneof`_ ``_next_page_token``. + result (MutableSequence[google.cloud.compute_v1.types.BgpRoute]): + [Output Only] A list of bgp routes. + self_link (str): + [Output Only] Server-defined URL for this resource. + + This field is a member of `oneof`_ ``_self_link``. + unreachables (MutableSequence[str]): + [Output Only] Unreachable resources. + warning (google.cloud.compute_v1.types.Warning): + [Output Only] Informational warning message. + + This field is a member of `oneof`_ ``_warning``. + """ + + @property + def raw_page(self): + return self + + etag: str = proto.Field( + proto.STRING, + number=3123477, + optional=True, + ) + id: str = proto.Field( + proto.STRING, + number=3355, + optional=True, + ) + kind: str = proto.Field( + proto.STRING, + number=3292052, + optional=True, + ) + next_page_token: str = proto.Field( + proto.STRING, + number=79797525, + optional=True, + ) + result: MutableSequence["BgpRoute"] = proto.RepeatedField( + proto.MESSAGE, + number=139315229, + message="BgpRoute", + ) + self_link: str = proto.Field( + proto.STRING, + number=456214797, + optional=True, + ) + unreachables: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=243372063, + ) + warning: "Warning" = proto.Field( + proto.MESSAGE, + number=50704284, + optional=True, + message="Warning", + ) + + +class RoutersListRoutePolicies(proto.Message): + r""" + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + etag (str): + + This field is a member of `oneof`_ ``_etag``. + id (str): + [Output Only] The unique identifier for the resource. This + identifier is defined by the server. + + This field is a member of `oneof`_ ``_id``. + kind (str): + [Output Only] Type of resource. Always + compute#routersListRoutePolicies for lists of route + policies. + + This field is a member of `oneof`_ ``_kind``. + next_page_token (str): + [Output Only] This token allows you to get the next page of + results for list requests. If the number of results is + larger than maxResults, use the nextPageToken as a value for + the query parameter pageToken in the next list request. + Subsequent list requests will have their own nextPageToken + to continue paging through the results. + + This field is a member of `oneof`_ ``_next_page_token``. + result (MutableSequence[google.cloud.compute_v1.types.RoutePolicy]): + [Output Only] A list of route policies. + self_link (str): + [Output Only] Server-defined URL for this resource. + + This field is a member of `oneof`_ ``_self_link``. + unreachables (MutableSequence[str]): + [Output Only] Unreachable resources. + warning (google.cloud.compute_v1.types.Warning): + [Output Only] Informational warning message. + + This field is a member of `oneof`_ ``_warning``. + """ + + @property + def raw_page(self): + return self + + etag: str = proto.Field( + proto.STRING, + number=3123477, + optional=True, + ) + id: str = proto.Field( + proto.STRING, + number=3355, + optional=True, + ) + kind: str = proto.Field( + proto.STRING, + number=3292052, + optional=True, + ) + next_page_token: str = proto.Field( + proto.STRING, + number=79797525, + optional=True, + ) + result: MutableSequence["RoutePolicy"] = proto.RepeatedField( + proto.MESSAGE, + number=139315229, + message="RoutePolicy", + ) + self_link: str = proto.Field( + proto.STRING, + number=456214797, + optional=True, + ) + unreachables: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=243372063, + ) + warning: "Warning" = proto.Field( + proto.MESSAGE, + number=50704284, + optional=True, + message="Warning", + ) + + class RoutersPreviewResponse(proto.Message): r""" @@ -92035,11 +93410,14 @@ class DdosProtection(proto.Enum): set. ADVANCED (63789090): No description available. + ADVANCED_PREVIEW (40905867): + No description available. STANDARD (484642493): No description available. """ UNDEFINED_DDOS_PROTECTION = 0 ADVANCED = 63789090 + ADVANCED_PREVIEW = 40905867 STANDARD = 484642493 ddos_protection: str = proto.Field( @@ -99385,11 +100763,11 @@ class Snapshot(proto.Message): source_instant_snapshot_id (str): [Output Only] The unique ID of the instant snapshot used to create this snapshot. This value identifies the exact - instant snapshot that was used to create this persistent - disk. For example, if you created the persistent disk from - an instant snapshot that was later deleted and recreated - under the same name, the source instant snapshot ID would - identify the exact instant snapshot that was used. + instant snapshot that was used to create this snapshot. For + example, if you created the snapshot from an instant + snapshot that was later deleted and recreated under the same + name, the source instant snapshot ID would identify the + exact instant snapshot that was used. This field is a member of `oneof`_ ``_source_instant_snapshot_id``. source_snapshot_schedule_policy (str): @@ -103349,20 +104727,22 @@ class Subnetwork(proto.Message): purpose (str): The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, - PEER_MIGRATION or PRIVATE_SERVICE_CONNECT. PRIVATE is the - default purpose for user-created subnets or subnets that are - automatically created in auto mode networks. Subnets with - purpose set to GLOBAL_MANAGED_PROXY or - REGIONAL_MANAGED_PROXY are user-created subnetworks that are - reserved for Envoy-based load balancers. A subnet with + PEER_MIGRATION, PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. + PRIVATE is the default purpose for user-created subnets or + subnets that are automatically created in auto mode + networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY + or REGIONAL_MANAGED_PROXY are user-created subnetworks that + are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet migration - from one peered VPC to another. If unspecified, the subnet - purpose defaults to PRIVATE. The enableFlowLogs field isn't - supported if the subnet purpose field is set to - GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. Check the - Purpose enum for the list of possible values. + from one peered VPC to another. A subnet with purpose set to + PRIVATE_NAT is used for Private NAT IP address by Private + NAT Gateway. If unspecified, the subnet purpose defaults to + PRIVATE. The enableFlowLogs field isn't supported if the + subnet purpose field is set to GLOBAL_MANAGED_PROXY or + REGIONAL_MANAGED_PROXY. Check the Purpose enum for the list + of possible values. This field is a member of `oneof`_ ``_purpose``. region (str): @@ -103472,18 +104852,20 @@ class PrivateIpv6GoogleAccess(proto.Enum): class Purpose(proto.Enum): r"""The purpose of the resource. This field can be either PRIVATE, - GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION or - PRIVATE_SERVICE_CONNECT. PRIVATE is the default purpose for - user-created subnets or subnets that are automatically created in - auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY - or REGIONAL_MANAGED_PROXY are user-created subnetworks that are - reserved for Envoy-based load balancers. A subnet with purpose set - to PRIVATE_SERVICE_CONNECT is used to publish services using Private - Service Connect. A subnet with purpose set to PEER_MIGRATION is used - for subnet migration from one peered VPC to another. If unspecified, - the subnet purpose defaults to PRIVATE. The enableFlowLogs field - isn't supported if the subnet purpose field is set to - GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. + GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION, + PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default + purpose for user-created subnets or subnets that are automatically + created in auto mode networks. Subnets with purpose set to + GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created + subnetworks that are reserved for Envoy-based load balancers. A + subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to + publish services using Private Service Connect. A subnet with + purpose set to PEER_MIGRATION is used for subnet migration from one + peered VPC to another. A subnet with purpose set to PRIVATE_NAT is + used for Private NAT IP address by Private NAT Gateway. If + unspecified, the subnet purpose defaults to PRIVATE. The + enableFlowLogs field isn't supported if the subnet purpose field is + set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. Values: UNDEFINED_PURPOSE (0): @@ -109989,14 +111371,231 @@ class UpdateRegionBackendServiceRequest(proto.Message): This field is a member of `oneof`_ ``_request_id``. """ - backend_service: str = proto.Field( + backend_service: str = proto.Field( + proto.STRING, + number=306946058, + ) + backend_service_resource: "BackendService" = proto.Field( + proto.MESSAGE, + number=347586723, + message="BackendService", + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + + +class UpdateRegionCommitmentRequest(proto.Message): + r"""A request message for RegionCommitments.Update. See the + method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + commitment (str): + Name of the commitment that you want to + update. + commitment_resource (google.cloud.compute_v1.types.Commitment): + The body resource for this request + paths (str): + + This field is a member of `oneof`_ ``_paths``. + project (str): + Project ID for this request. + region (str): + Name of the region for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + update_mask (str): + update_mask indicates fields to be updated as part of this + request. + + This field is a member of `oneof`_ ``_update_mask``. + """ + + commitment: str = proto.Field( + proto.STRING, + number=482134805, + ) + commitment_resource: "Commitment" = proto.Field( + proto.MESSAGE, + number=244240888, + message="Commitment", + ) + paths: str = proto.Field( + proto.STRING, + number=106438894, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + update_mask: str = proto.Field( + proto.STRING, + number=500079778, + optional=True, + ) + + +class UpdateRegionDiskRequest(proto.Message): + r"""A request message for RegionDisks.Update. See the method + description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + disk (str): + The disk name for this request. + disk_resource (google.cloud.compute_v1.types.Disk): + The body resource for this request + paths (str): + + This field is a member of `oneof`_ ``_paths``. + project (str): + Project ID for this request. + region (str): + The name of the region for this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + update_mask (str): + update_mask indicates fields to be updated as part of this + request. + + This field is a member of `oneof`_ ``_update_mask``. + """ + + disk: str = proto.Field( + proto.STRING, + number=3083677, + ) + disk_resource: "Disk" = proto.Field( + proto.MESSAGE, + number=25880688, + message="Disk", + ) + paths: str = proto.Field( + proto.STRING, + number=106438894, + optional=True, + ) + project: str = proto.Field( + proto.STRING, + number=227560217, + ) + region: str = proto.Field( + proto.STRING, + number=138946292, + ) + request_id: str = proto.Field( + proto.STRING, + number=37109963, + optional=True, + ) + update_mask: str = proto.Field( + proto.STRING, + number=500079778, + optional=True, + ) + + +class UpdateRegionHealthCheckRequest(proto.Message): + r"""A request message for RegionHealthChecks.Update. See the + method description for details. + + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + health_check (str): + Name of the HealthCheck resource to update. + health_check_resource (google.cloud.compute_v1.types.HealthCheck): + The body resource for this request + project (str): + Project ID for this request. + region (str): + Name of the region scoping this request. + request_id (str): + An optional request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server will know to + ignore the request if it has already been + completed. For example, consider a situation + where you make an initial request and the + request times out. If you make the request again + with the same request ID, the server can check + if original operation with the same request ID + was received, and if so, will ignore the second + request. This prevents clients from accidentally + creating duplicate commitments. The request ID + must be a valid UUID with the exception that + zero UUID is not supported ( + 00000000-0000-0000-0000-000000000000). + + This field is a member of `oneof`_ ``_request_id``. + """ + + health_check: str = proto.Field( proto.STRING, - number=306946058, + number=308876645, ) - backend_service_resource: "BackendService" = proto.Field( + health_check_resource: "HealthCheck" = proto.Field( proto.MESSAGE, - number=347586723, - message="BackendService", + number=201925032, + message="HealthCheck", ) project: str = proto.Field( proto.STRING, @@ -110013,65 +111612,29 @@ class UpdateRegionBackendServiceRequest(proto.Message): ) -class UpdateRegionCommitmentRequest(proto.Message): - r"""A request message for RegionCommitments.Update. See the - method description for details. +class UpdateRegionUrlMapRequest(proto.Message): + r"""A request message for RegionUrlMaps.Update. See the method + description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: - commitment (str): - Name of the commitment for which auto renew - is being updated. - commitment_resource (google.cloud.compute_v1.types.Commitment): - The body resource for this request - paths (str): - - This field is a member of `oneof`_ ``_paths``. project (str): Project ID for this request. region (str): - Name of the region for this request. + Name of the region scoping this request. request_id (str): - An optional request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server will know to - ignore the request if it has already been - completed. For example, consider a situation - where you make an initial request and the - request times out. If you make the request again - with the same request ID, the server can check - if original operation with the same request ID - was received, and if so, will ignore the second - request. This prevents clients from accidentally - creating duplicate commitments. The request ID - must be a valid UUID with the exception that - zero UUID is not supported ( - 00000000-0000-0000-0000-000000000000). + begin_interface: MixerMutationRequestBuilder Request ID to + support idempotency. This field is a member of `oneof`_ ``_request_id``. - update_mask (str): - update_mask indicates fields to be updated as part of this - request. - - This field is a member of `oneof`_ ``_update_mask``. + url_map (str): + Name of the UrlMap resource to update. + url_map_resource (google.cloud.compute_v1.types.UrlMap): + The body resource for this request """ - commitment: str = proto.Field( - proto.STRING, - number=482134805, - ) - commitment_resource: "Commitment" = proto.Field( - proto.MESSAGE, - number=244240888, - message="Commitment", - ) - paths: str = proto.Field( - proto.STRING, - number=106438894, - optional=True, - ) project: str = proto.Field( proto.STRING, number=227560217, @@ -110085,32 +111648,30 @@ class UpdateRegionCommitmentRequest(proto.Message): number=37109963, optional=True, ) - update_mask: str = proto.Field( + url_map: str = proto.Field( proto.STRING, - number=500079778, - optional=True, + number=367020684, + ) + url_map_resource: "UrlMap" = proto.Field( + proto.MESSAGE, + number=168675425, + message="UrlMap", ) -class UpdateRegionDiskRequest(proto.Message): - r"""A request message for RegionDisks.Update. See the method +class UpdateReservationRequest(proto.Message): + r"""A request message for Reservations.Update. See the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: - disk (str): - The disk name for this request. - disk_resource (google.cloud.compute_v1.types.Disk): - The body resource for this request paths (str): This field is a member of `oneof`_ ``_paths``. project (str): Project ID for this request. - region (str): - The name of the region for this request. request_id (str): An optional request ID to identify requests. Specify a unique request ID so that if you must @@ -110129,22 +111690,19 @@ class UpdateRegionDiskRequest(proto.Message): 00000000-0000-0000-0000-000000000000). This field is a member of `oneof`_ ``_request_id``. + reservation (str): + Name of the reservation to update. + reservation_resource (google.cloud.compute_v1.types.Reservation): + The body resource for this request update_mask (str): - update_mask indicates fields to be updated as part of this + Update_mask indicates fields to be updated as part of this request. This field is a member of `oneof`_ ``_update_mask``. + zone (str): + Name of the zone for this request. """ - disk: str = proto.Field( - proto.STRING, - number=3083677, - ) - disk_resource: "Disk" = proto.Field( - proto.MESSAGE, - number=25880688, - message="Disk", - ) paths: str = proto.Field( proto.STRING, number=106438894, @@ -110154,38 +111712,43 @@ class UpdateRegionDiskRequest(proto.Message): proto.STRING, number=227560217, ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) request_id: str = proto.Field( proto.STRING, number=37109963, optional=True, ) + reservation: str = proto.Field( + proto.STRING, + number=47530956, + ) + reservation_resource: "Reservation" = proto.Field( + proto.MESSAGE, + number=285030177, + message="Reservation", + ) update_mask: str = proto.Field( proto.STRING, number=500079778, optional=True, ) + zone: str = proto.Field( + proto.STRING, + number=3744684, + ) -class UpdateRegionHealthCheckRequest(proto.Message): - r"""A request message for RegionHealthChecks.Update. See the +class UpdateRoutePolicyRouterRequest(proto.Message): + r"""A request message for Routers.UpdateRoutePolicy. See the method description for details. .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields Attributes: - health_check (str): - Name of the HealthCheck resource to update. - health_check_resource (google.cloud.compute_v1.types.HealthCheck): - The body resource for this request project (str): Project ID for this request. region (str): - Name of the region scoping this request. + Name of the region for this request. request_id (str): An optional request ID to identify requests. Specify a unique request ID so that if you must @@ -110204,53 +111767,11 @@ class UpdateRegionHealthCheckRequest(proto.Message): 00000000-0000-0000-0000-000000000000). This field is a member of `oneof`_ ``_request_id``. - """ - - health_check: str = proto.Field( - proto.STRING, - number=308876645, - ) - health_check_resource: "HealthCheck" = proto.Field( - proto.MESSAGE, - number=201925032, - message="HealthCheck", - ) - project: str = proto.Field( - proto.STRING, - number=227560217, - ) - region: str = proto.Field( - proto.STRING, - number=138946292, - ) - request_id: str = proto.Field( - proto.STRING, - number=37109963, - optional=True, - ) - - -class UpdateRegionUrlMapRequest(proto.Message): - r"""A request message for RegionUrlMaps.Update. See the method - description for details. - - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - project (str): - Project ID for this request. - region (str): - Name of the region scoping this request. - request_id (str): - begin_interface: MixerMutationRequestBuilder Request ID to - support idempotency. - - This field is a member of `oneof`_ ``_request_id``. - url_map (str): - Name of the UrlMap resource to update. - url_map_resource (google.cloud.compute_v1.types.UrlMap): + route_policy_resource (google.cloud.compute_v1.types.RoutePolicy): The body resource for this request + router (str): + Name of the Router resource where Route + Policy is defined. """ project: str = proto.Field( @@ -110266,92 +111787,14 @@ class UpdateRegionUrlMapRequest(proto.Message): number=37109963, optional=True, ) - url_map: str = proto.Field( - proto.STRING, - number=367020684, - ) - url_map_resource: "UrlMap" = proto.Field( - proto.MESSAGE, - number=168675425, - message="UrlMap", - ) - - -class UpdateReservationRequest(proto.Message): - r"""A request message for Reservations.Update. See the method - description for details. - - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - paths (str): - - This field is a member of `oneof`_ ``_paths``. - project (str): - Project ID for this request. - request_id (str): - An optional request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server will know to - ignore the request if it has already been - completed. For example, consider a situation - where you make an initial request and the - request times out. If you make the request again - with the same request ID, the server can check - if original operation with the same request ID - was received, and if so, will ignore the second - request. This prevents clients from accidentally - creating duplicate commitments. The request ID - must be a valid UUID with the exception that - zero UUID is not supported ( - 00000000-0000-0000-0000-000000000000). - - This field is a member of `oneof`_ ``_request_id``. - reservation (str): - Name of the reservation to update. - reservation_resource (google.cloud.compute_v1.types.Reservation): - The body resource for this request - update_mask (str): - Update_mask indicates fields to be updated as part of this - request. - - This field is a member of `oneof`_ ``_update_mask``. - zone (str): - Name of the zone for this request. - """ - - paths: str = proto.Field( - proto.STRING, - number=106438894, - optional=True, - ) - project: str = proto.Field( - proto.STRING, - number=227560217, - ) - request_id: str = proto.Field( - proto.STRING, - number=37109963, - optional=True, - ) - reservation: str = proto.Field( - proto.STRING, - number=47530956, - ) - reservation_resource: "Reservation" = proto.Field( + route_policy_resource: "RoutePolicy" = proto.Field( proto.MESSAGE, - number=285030177, - message="Reservation", - ) - update_mask: str = proto.Field( - proto.STRING, - number=500079778, - optional=True, + number=116219525, + message="RoutePolicy", ) - zone: str = proto.Field( + router: str = proto.Field( proto.STRING, - number=3744684, + number=148608841, ) @@ -111419,20 +112862,22 @@ class UsableSubnetwork(proto.Message): purpose (str): The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, - PEER_MIGRATION or PRIVATE_SERVICE_CONNECT. PRIVATE is the - default purpose for user-created subnets or subnets that are - automatically created in auto mode networks. Subnets with - purpose set to GLOBAL_MANAGED_PROXY or - REGIONAL_MANAGED_PROXY are user-created subnetworks that are - reserved for Envoy-based load balancers. A subnet with + PEER_MIGRATION, PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. + PRIVATE is the default purpose for user-created subnets or + subnets that are automatically created in auto mode + networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY + or REGIONAL_MANAGED_PROXY are user-created subnetworks that + are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet migration - from one peered VPC to another. If unspecified, the subnet - purpose defaults to PRIVATE. The enableFlowLogs field isn't - supported if the subnet purpose field is set to - GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. Check the - Purpose enum for the list of possible values. + from one peered VPC to another. A subnet with purpose set to + PRIVATE_NAT is used for Private NAT IP address by Private + NAT Gateway. If unspecified, the subnet purpose defaults to + PRIVATE. The enableFlowLogs field isn't supported if the + subnet purpose field is set to GLOBAL_MANAGED_PROXY or + REGIONAL_MANAGED_PROXY. Check the Purpose enum for the list + of possible values. This field is a member of `oneof`_ ``_purpose``. role (str): @@ -111489,18 +112934,20 @@ class Ipv6AccessType(proto.Enum): class Purpose(proto.Enum): r"""The purpose of the resource. This field can be either PRIVATE, - GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION or - PRIVATE_SERVICE_CONNECT. PRIVATE is the default purpose for - user-created subnets or subnets that are automatically created in - auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY - or REGIONAL_MANAGED_PROXY are user-created subnetworks that are - reserved for Envoy-based load balancers. A subnet with purpose set - to PRIVATE_SERVICE_CONNECT is used to publish services using Private - Service Connect. A subnet with purpose set to PEER_MIGRATION is used - for subnet migration from one peered VPC to another. If unspecified, - the subnet purpose defaults to PRIVATE. The enableFlowLogs field - isn't supported if the subnet purpose field is set to - GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. + GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION, + PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default + purpose for user-created subnets or subnets that are automatically + created in auto mode networks. Subnets with purpose set to + GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created + subnetworks that are reserved for Envoy-based load balancers. A + subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to + publish services using Private Service Connect. A subnet with + purpose set to PEER_MIGRATION is used for subnet migration from one + peered VPC to another. A subnet with purpose set to PRIVATE_NAT is + used for Private NAT IP address by Private NAT Gateway. If + unspecified, the subnet purpose defaults to PRIVATE. The + enableFlowLogs field isn't supported if the subnet purpose field is + set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. Values: UNDEFINED_PURPOSE (0): diff --git a/packages/google-cloud-compute/noxfile.py b/packages/google-cloud-compute/noxfile.py index a9ceef47133c..0acc836b384e 100644 --- a/packages/google-cloud-compute/noxfile.py +++ b/packages/google-cloud-compute/noxfile.py @@ -382,20 +382,29 @@ def docfx(session): ["python", "upb", "cpp"], ) def prerelease_deps(session, protobuf_implementation): - """Run all tests with prerelease versions of dependencies installed.""" + """ + Run all tests with pre-release versions of dependencies installed + rather than the standard non pre-release versions. + Pre-releases versions can be installed using + `pip install --pre `. + """ if protobuf_implementation == "cpp" and session.python in ("3.11", "3.12", "3.13"): session.skip("cpp implementation is not supported in python 3.11+") # Install all dependencies - session.install("-e", ".[all, tests, tracing]") + session.install("-e", ".") + unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES + # Install dependencies for the unit test environment session.install(*unit_deps_all) + system_deps_all = ( SYSTEM_TEST_STANDARD_DEPENDENCIES + SYSTEM_TEST_EXTERNAL_DEPENDENCIES + SYSTEM_TEST_EXTRAS ) + # Install dependencies for the system test environment session.install(*system_deps_all) # Because we test minimum dependency versions on the minimum Python @@ -417,6 +426,7 @@ def prerelease_deps(session, protobuf_implementation): ) ] + # Install dependencies specified in `testing/constraints-X.txt`. session.install(*constraints_deps) prerel_deps = [ @@ -458,3 +468,70 @@ def prerelease_deps(session, protobuf_implementation): "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, }, ) + + +@nox.session(python="3.13") +@nox.parametrize( + "protobuf_implementation", + ["python", "upb"], +) +def core_deps_from_source(session, protobuf_implementation): + """Run all tests with local versions of core dependencies installed, + rather than pulling core dependencies from PyPI. + """ + + # Install all dependencies + session.install(".") + + # Install dependencies for the unit test environment + unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES + session.install(*unit_deps_all) + + # Install dependencies for the system test environment + system_deps_all = ( + SYSTEM_TEST_STANDARD_DEPENDENCIES + + SYSTEM_TEST_EXTERNAL_DEPENDENCIES + + SYSTEM_TEST_EXTRAS + ) + session.install(*system_deps_all) + + # Because we test minimum dependency versions on the minimum Python + # version, the first version we test with in the unit tests sessions has a + # constraints file containing all dependencies and extras that should be installed. + with open( + CURRENT_DIRECTORY + / "testing" + / f"constraints-{UNIT_TEST_PYTHON_VERSIONS[0]}.txt", + encoding="utf-8", + ) as constraints_file: + constraints_text = constraints_file.read() + + # Ignore leading whitespace and comment lines. + constraints_deps = [ + match.group(1) + for match in re.finditer( + r"^\s*(\S+)(?===\S+)", constraints_text, flags=re.MULTILINE + ) + ] + + # Install dependencies specified in `testing/constraints-X.txt`. + session.install(*constraints_deps) + + core_dependencies_from_source = [ + "google-api-core @ git+https://github.com/googleapis/python-api-core.git", + "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", + f"{CURRENT_DIRECTORY}/../googleapis-common-protos", + f"{CURRENT_DIRECTORY}/../grpc-google-iam-v1", + "proto-plus @ git+https://github.com/googleapis/proto-plus-python.git", + ] + + for dep in core_dependencies_from_source: + session.install(dep, "--ignore-installed", "--no-deps") + + session.run( + "py.test", + "tests/unit", + env={ + "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, + }, + ) diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_add_packet_mirroring_rule_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_add_packet_mirroring_rule_sync.py new file mode 100644 index 000000000000..5ad80920a63c --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_add_packet_mirroring_rule_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for AddPacketMirroringRule +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_NetworkFirewallPolicies_AddPacketMirroringRule_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_add_packet_mirroring_rule(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.AddPacketMirroringRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.add_packet_mirroring_rule(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_NetworkFirewallPolicies_AddPacketMirroringRule_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_get_packet_mirroring_rule_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_get_packet_mirroring_rule_sync.py new file mode 100644 index 000000000000..c534c6cf8c39 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_get_packet_mirroring_rule_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for GetPacketMirroringRule +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_NetworkFirewallPolicies_GetPacketMirroringRule_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_get_packet_mirroring_rule(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.get_packet_mirroring_rule(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_NetworkFirewallPolicies_GetPacketMirroringRule_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_patch_packet_mirroring_rule_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_patch_packet_mirroring_rule_sync.py new file mode 100644 index 000000000000..622f6815b217 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_patch_packet_mirroring_rule_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for PatchPacketMirroringRule +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_NetworkFirewallPolicies_PatchPacketMirroringRule_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_patch_packet_mirroring_rule(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.patch_packet_mirroring_rule(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_NetworkFirewallPolicies_PatchPacketMirroringRule_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_remove_packet_mirroring_rule_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_remove_packet_mirroring_rule_sync.py new file mode 100644 index 000000000000..4e0deee4dd45 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_network_firewall_policies_remove_packet_mirroring_rule_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for RemovePacketMirroringRule +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_NetworkFirewallPolicies_RemovePacketMirroringRule_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_remove_packet_mirroring_rule(): + # Create a client + client = compute_v1.NetworkFirewallPoliciesClient() + + # Initialize request argument(s) + request = compute_v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest( + firewall_policy="firewall_policy_value", + project="project_value", + ) + + # Make the request + response = client.remove_packet_mirroring_rule(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_NetworkFirewallPolicies_RemovePacketMirroringRule_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_delete_route_policy_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_delete_route_policy_sync.py new file mode 100644 index 000000000000..83b9cdaf9879 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_delete_route_policy_sync.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for DeleteRoutePolicy +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_Routers_DeleteRoutePolicy_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_delete_route_policy(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.DeleteRoutePolicyRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.delete_route_policy(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_Routers_DeleteRoutePolicy_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_get_route_policy_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_get_route_policy_sync.py new file mode 100644 index 000000000000..1dc8a3593438 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_get_route_policy_sync.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for GetRoutePolicy +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_Routers_GetRoutePolicy_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_get_route_policy(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.GetRoutePolicyRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.get_route_policy(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_Routers_GetRoutePolicy_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_list_bgp_routes_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_list_bgp_routes_sync.py new file mode 100644 index 000000000000..dd0dcd202b0f --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_list_bgp_routes_sync.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for ListBgpRoutes +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_Routers_ListBgpRoutes_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_list_bgp_routes(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.ListBgpRoutesRoutersRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + page_result = client.list_bgp_routes(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END compute_v1_generated_Routers_ListBgpRoutes_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_list_route_policies_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_list_route_policies_sync.py new file mode 100644 index 000000000000..040115799ab0 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_list_route_policies_sync.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for ListRoutePolicies +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_Routers_ListRoutePolicies_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_list_route_policies(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.ListRoutePoliciesRoutersRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + page_result = client.list_route_policies(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END compute_v1_generated_Routers_ListRoutePolicies_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_patch_route_policy_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_patch_route_policy_sync.py new file mode 100644 index 000000000000..cc1e331c2ac3 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_patch_route_policy_sync.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for PatchRoutePolicy +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_Routers_PatchRoutePolicy_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_patch_route_policy(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.PatchRoutePolicyRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.patch_route_policy(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_Routers_PatchRoutePolicy_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_update_route_policy_sync.py b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_update_route_policy_sync.py new file mode 100644 index 000000000000..dfb72b742664 --- /dev/null +++ b/packages/google-cloud-compute/samples/generated_samples/compute_v1_generated_routers_update_route_policy_sync.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated code. DO NOT EDIT! +# +# Snippet for UpdateRoutePolicy +# NOTE: This snippet has been automatically generated for illustrative purposes only. +# It may require modifications to work in your environment. + +# To install the latest published package dependency, execute the following: +# python3 -m pip install google-cloud-compute + + +# [START compute_v1_generated_Routers_UpdateRoutePolicy_sync] +# This snippet has been automatically generated and should be regarded as a +# code template only. +# It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in: +# https://googleapis.dev/python/google-api-core/latest/client_options.html +from google.cloud import compute_v1 + + +def sample_update_route_policy(): + # Create a client + client = compute_v1.RoutersClient() + + # Initialize request argument(s) + request = compute_v1.UpdateRoutePolicyRouterRequest( + project="project_value", + region="region_value", + router="router_value", + ) + + # Make the request + response = client.update_route_policy(request=request) + + # Handle the response + print(response) + +# [END compute_v1_generated_Routers_UpdateRoutePolicy_sync] diff --git a/packages/google-cloud-compute/samples/generated_samples/snippet_metadata_google.cloud.compute.v1.json b/packages/google-cloud-compute/samples/generated_samples/snippet_metadata_google.cloud.compute.v1.json index 06de52dc78c7..c0b06c52ec63 100644 --- a/packages/google-cloud-compute/samples/generated_samples/snippet_metadata_google.cloud.compute.v1.json +++ b/packages/google-cloud-compute/samples/generated_samples/snippet_metadata_google.cloud.compute.v1.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-compute", - "version": "1.25.0" + "version": "0.1.0" }, "snippets": [ { @@ -28031,6 +28031,94 @@ ], "title": "compute_v1_generated_network_firewall_policies_add_association_sync.py" }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", + "shortName": "NetworkFirewallPoliciesClient" + }, + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.add_packet_mirroring_rule", + "method": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.AddPacketMirroringRule", + "service": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "shortName": "NetworkFirewallPolicies" + }, + "shortName": "AddPacketMirroringRule" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.AddPacketMirroringRuleNetworkFirewallPolicyRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "firewall_policy", + "type": "str" + }, + { + "name": "firewall_policy_rule_resource", + "type": "google.cloud.compute_v1.types.FirewallPolicyRule" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "add_packet_mirroring_rule" + }, + "description": "Sample for AddPacketMirroringRule", + "file": "compute_v1_generated_network_firewall_policies_add_packet_mirroring_rule_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_AddPacketMirroringRule_sync", + "segments": [ + { + "end": 52, + "start": 27, + "type": "FULL" + }, + { + "end": 52, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 49, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 53, + "start": 50, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_network_firewall_policies_add_packet_mirroring_rule_sync.py" + }, { "canonical": true, "clientMethod": { @@ -28535,6 +28623,90 @@ ], "title": "compute_v1_generated_network_firewall_policies_get_iam_policy_sync.py" }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", + "shortName": "NetworkFirewallPoliciesClient" + }, + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.get_packet_mirroring_rule", + "method": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.GetPacketMirroringRule", + "service": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "shortName": "NetworkFirewallPolicies" + }, + "shortName": "GetPacketMirroringRule" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.GetPacketMirroringRuleNetworkFirewallPolicyRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "firewall_policy", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.types.FirewallPolicyRule", + "shortName": "get_packet_mirroring_rule" + }, + "description": "Sample for GetPacketMirroringRule", + "file": "compute_v1_generated_network_firewall_policies_get_packet_mirroring_rule_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_GetPacketMirroringRule_sync", + "segments": [ + { + "end": 52, + "start": 27, + "type": "FULL" + }, + { + "end": 52, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 49, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 53, + "start": 50, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_network_firewall_policies_get_packet_mirroring_rule_sync.py" + }, { "canonical": true, "clientMethod": { @@ -28874,19 +29046,19 @@ "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", "shortName": "NetworkFirewallPoliciesClient" }, - "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch_rule", + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch_packet_mirroring_rule", "method": { - "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.PatchRule", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.PatchPacketMirroringRule", "service": { "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", "shortName": "NetworkFirewallPolicies" }, - "shortName": "PatchRule" + "shortName": "PatchPacketMirroringRule" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.PatchRuleNetworkFirewallPolicyRequest" + "type": "google.cloud.compute_v1.types.PatchPacketMirroringRuleNetworkFirewallPolicyRequest" }, { "name": "project", @@ -28914,13 +29086,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "patch_rule" + "shortName": "patch_packet_mirroring_rule" }, - "description": "Sample for PatchRule", - "file": "compute_v1_generated_network_firewall_policies_patch_rule_sync.py", + "description": "Sample for PatchPacketMirroringRule", + "file": "compute_v1_generated_network_firewall_policies_patch_packet_mirroring_rule_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_NetworkFirewallPolicies_PatchRule_sync", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_PatchPacketMirroringRule_sync", "segments": [ { "end": 52, @@ -28953,7 +29125,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_network_firewall_policies_patch_rule_sync.py" + "title": "compute_v1_generated_network_firewall_policies_patch_packet_mirroring_rule_sync.py" }, { "canonical": true, @@ -28962,19 +29134,19 @@ "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", "shortName": "NetworkFirewallPoliciesClient" }, - "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch", + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch_rule", "method": { - "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.Patch", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.PatchRule", "service": { "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", "shortName": "NetworkFirewallPolicies" }, - "shortName": "Patch" + "shortName": "PatchRule" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.PatchNetworkFirewallPolicyRequest" + "type": "google.cloud.compute_v1.types.PatchRuleNetworkFirewallPolicyRequest" }, { "name": "project", @@ -28985,8 +29157,8 @@ "type": "str" }, { - "name": "firewall_policy_resource", - "type": "google.cloud.compute_v1.types.FirewallPolicy" + "name": "firewall_policy_rule_resource", + "type": "google.cloud.compute_v1.types.FirewallPolicyRule" }, { "name": "retry", @@ -29002,13 +29174,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "patch" + "shortName": "patch_rule" }, - "description": "Sample for Patch", - "file": "compute_v1_generated_network_firewall_policies_patch_sync.py", + "description": "Sample for PatchRule", + "file": "compute_v1_generated_network_firewall_policies_patch_rule_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_NetworkFirewallPolicies_Patch_sync", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_PatchRule_sync", "segments": [ { "end": 52, @@ -29041,7 +29213,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_network_firewall_policies_patch_sync.py" + "title": "compute_v1_generated_network_firewall_policies_patch_rule_sync.py" }, { "canonical": true, @@ -29050,19 +29222,19 @@ "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", "shortName": "NetworkFirewallPoliciesClient" }, - "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_association", + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.patch", "method": { - "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.RemoveAssociation", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.Patch", "service": { "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", "shortName": "NetworkFirewallPolicies" }, - "shortName": "RemoveAssociation" + "shortName": "Patch" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.RemoveAssociationNetworkFirewallPolicyRequest" + "type": "google.cloud.compute_v1.types.PatchNetworkFirewallPolicyRequest" }, { "name": "project", @@ -29072,6 +29244,10 @@ "name": "firewall_policy", "type": "str" }, + { + "name": "firewall_policy_resource", + "type": "google.cloud.compute_v1.types.FirewallPolicy" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -29086,13 +29262,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "remove_association" + "shortName": "patch" }, - "description": "Sample for RemoveAssociation", - "file": "compute_v1_generated_network_firewall_policies_remove_association_sync.py", + "description": "Sample for Patch", + "file": "compute_v1_generated_network_firewall_policies_patch_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_NetworkFirewallPolicies_RemoveAssociation_sync", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_Patch_sync", "segments": [ { "end": 52, @@ -29125,7 +29301,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_network_firewall_policies_remove_association_sync.py" + "title": "compute_v1_generated_network_firewall_policies_patch_sync.py" }, { "canonical": true, @@ -29134,19 +29310,19 @@ "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", "shortName": "NetworkFirewallPoliciesClient" }, - "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_rule", + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_association", "method": { - "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.RemoveRule", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.RemoveAssociation", "service": { "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", "shortName": "NetworkFirewallPolicies" }, - "shortName": "RemoveRule" + "shortName": "RemoveAssociation" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.RemoveRuleNetworkFirewallPolicyRequest" + "type": "google.cloud.compute_v1.types.RemoveAssociationNetworkFirewallPolicyRequest" }, { "name": "project", @@ -29170,13 +29346,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "remove_rule" + "shortName": "remove_association" }, - "description": "Sample for RemoveRule", - "file": "compute_v1_generated_network_firewall_policies_remove_rule_sync.py", + "description": "Sample for RemoveAssociation", + "file": "compute_v1_generated_network_firewall_policies_remove_association_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_NetworkFirewallPolicies_RemoveRule_sync", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_RemoveAssociation_sync", "segments": [ { "end": 52, @@ -29209,7 +29385,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_network_firewall_policies_remove_rule_sync.py" + "title": "compute_v1_generated_network_firewall_policies_remove_association_sync.py" }, { "canonical": true, @@ -29218,32 +29394,28 @@ "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", "shortName": "NetworkFirewallPoliciesClient" }, - "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.set_iam_policy", + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_packet_mirroring_rule", "method": { - "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.SetIamPolicy", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.RemovePacketMirroringRule", "service": { "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", "shortName": "NetworkFirewallPolicies" }, - "shortName": "SetIamPolicy" + "shortName": "RemovePacketMirroringRule" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.SetIamPolicyNetworkFirewallPolicyRequest" + "type": "google.cloud.compute_v1.types.RemovePacketMirroringRuleNetworkFirewallPolicyRequest" }, { "name": "project", "type": "str" }, { - "name": "resource", + "name": "firewall_policy", "type": "str" }, - { - "name": "global_set_policy_request_resource", - "type": "google.cloud.compute_v1.types.GlobalSetPolicyRequest" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -29257,14 +29429,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.Policy", - "shortName": "set_iam_policy" + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "remove_packet_mirroring_rule" }, - "description": "Sample for SetIamPolicy", - "file": "compute_v1_generated_network_firewall_policies_set_iam_policy_sync.py", + "description": "Sample for RemovePacketMirroringRule", + "file": "compute_v1_generated_network_firewall_policies_remove_packet_mirroring_rule_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_NetworkFirewallPolicies_SetIamPolicy_sync", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_RemovePacketMirroringRule_sync", "segments": [ { "end": 52, @@ -29297,7 +29469,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_network_firewall_policies_set_iam_policy_sync.py" + "title": "compute_v1_generated_network_firewall_policies_remove_packet_mirroring_rule_sync.py" }, { "canonical": true, @@ -29306,32 +29478,28 @@ "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", "shortName": "NetworkFirewallPoliciesClient" }, - "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.test_iam_permissions", + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.remove_rule", "method": { - "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.TestIamPermissions", + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.RemoveRule", "service": { "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", "shortName": "NetworkFirewallPolicies" }, - "shortName": "TestIamPermissions" + "shortName": "RemoveRule" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.TestIamPermissionsNetworkFirewallPolicyRequest" + "type": "google.cloud.compute_v1.types.RemoveRuleNetworkFirewallPolicyRequest" }, { "name": "project", "type": "str" }, { - "name": "resource", + "name": "firewall_policy", "type": "str" }, - { - "name": "test_permissions_request_resource", - "type": "google.cloud.compute_v1.types.TestPermissionsRequest" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -29345,14 +29513,190 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.TestPermissionsResponse", - "shortName": "test_iam_permissions" + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "remove_rule" }, - "description": "Sample for TestIamPermissions", - "file": "compute_v1_generated_network_firewall_policies_test_iam_permissions_sync.py", + "description": "Sample for RemoveRule", + "file": "compute_v1_generated_network_firewall_policies_remove_rule_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_NetworkFirewallPolicies_TestIamPermissions_sync", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_RemoveRule_sync", + "segments": [ + { + "end": 52, + "start": 27, + "type": "FULL" + }, + { + "end": 52, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 49, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 53, + "start": 50, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_network_firewall_policies_remove_rule_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", + "shortName": "NetworkFirewallPoliciesClient" + }, + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.set_iam_policy", + "method": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.SetIamPolicy", + "service": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "shortName": "NetworkFirewallPolicies" + }, + "shortName": "SetIamPolicy" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.SetIamPolicyNetworkFirewallPolicyRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "resource", + "type": "str" + }, + { + "name": "global_set_policy_request_resource", + "type": "google.cloud.compute_v1.types.GlobalSetPolicyRequest" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.types.Policy", + "shortName": "set_iam_policy" + }, + "description": "Sample for SetIamPolicy", + "file": "compute_v1_generated_network_firewall_policies_set_iam_policy_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_SetIamPolicy_sync", + "segments": [ + { + "end": 52, + "start": 27, + "type": "FULL" + }, + { + "end": 52, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 49, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 53, + "start": 50, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_network_firewall_policies_set_iam_policy_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient", + "shortName": "NetworkFirewallPoliciesClient" + }, + "fullName": "google.cloud.compute_v1.NetworkFirewallPoliciesClient.test_iam_permissions", + "method": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies.TestIamPermissions", + "service": { + "fullName": "google.cloud.compute.v1.NetworkFirewallPolicies", + "shortName": "NetworkFirewallPolicies" + }, + "shortName": "TestIamPermissions" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.TestIamPermissionsNetworkFirewallPolicyRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "resource", + "type": "str" + }, + { + "name": "test_permissions_request_resource", + "type": "google.cloud.compute_v1.types.TestPermissionsRequest" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.types.TestPermissionsResponse", + "shortName": "test_iam_permissions" + }, + "description": "Sample for TestIamPermissions", + "file": "compute_v1_generated_network_firewall_policies_test_iam_permissions_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_NetworkFirewallPolicies_TestIamPermissions_sync", "segments": [ { "end": 52, @@ -50753,35 +51097,543 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_region_url_maps_validate_sync.py" + "title": "compute_v1_generated_region_url_maps_validate_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.RegionZonesClient", + "shortName": "RegionZonesClient" + }, + "fullName": "google.cloud.compute_v1.RegionZonesClient.list", + "method": { + "fullName": "google.cloud.compute.v1.RegionZones.List", + "service": { + "fullName": "google.cloud.compute.v1.RegionZones", + "shortName": "RegionZones" + }, + "shortName": "List" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.ListRegionZonesRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "region", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.services.region_zones.pagers.ListPager", + "shortName": "list" + }, + "description": "Sample for List", + "file": "compute_v1_generated_region_zones_list_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_RegionZones_List_sync", + "segments": [ + { + "end": 53, + "start": 27, + "type": "FULL" + }, + { + "end": 53, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 49, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 54, + "start": 50, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_region_zones_list_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.RegionsClient", + "shortName": "RegionsClient" + }, + "fullName": "google.cloud.compute_v1.RegionsClient.get", + "method": { + "fullName": "google.cloud.compute.v1.Regions.Get", + "service": { + "fullName": "google.cloud.compute.v1.Regions", + "shortName": "Regions" + }, + "shortName": "Get" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.GetRegionRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "region", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.types.Region", + "shortName": "get" + }, + "description": "Sample for Get", + "file": "compute_v1_generated_regions_get_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_Regions_Get_sync", + "segments": [ + { + "end": 52, + "start": 27, + "type": "FULL" + }, + { + "end": 52, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 49, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 53, + "start": 50, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_regions_get_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.RegionsClient", + "shortName": "RegionsClient" + }, + "fullName": "google.cloud.compute_v1.RegionsClient.list", + "method": { + "fullName": "google.cloud.compute.v1.Regions.List", + "service": { + "fullName": "google.cloud.compute.v1.Regions", + "shortName": "Regions" + }, + "shortName": "List" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.ListRegionsRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.services.regions.pagers.ListPager", + "shortName": "list" + }, + "description": "Sample for List", + "file": "compute_v1_generated_regions_list_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_Regions_List_sync", + "segments": [ + { + "end": 52, + "start": 27, + "type": "FULL" + }, + { + "end": 52, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 48, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 53, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_regions_list_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.ReservationsClient", + "shortName": "ReservationsClient" + }, + "fullName": "google.cloud.compute_v1.ReservationsClient.aggregated_list", + "method": { + "fullName": "google.cloud.compute.v1.Reservations.AggregatedList", + "service": { + "fullName": "google.cloud.compute.v1.Reservations", + "shortName": "Reservations" + }, + "shortName": "AggregatedList" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.AggregatedListReservationsRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.services.reservations.pagers.AggregatedListPager", + "shortName": "aggregated_list" + }, + "description": "Sample for AggregatedList", + "file": "compute_v1_generated_reservations_aggregated_list_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_Reservations_AggregatedList_sync", + "segments": [ + { + "end": 52, + "start": 27, + "type": "FULL" + }, + { + "end": 52, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 48, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 53, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_reservations_aggregated_list_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.ReservationsClient", + "shortName": "ReservationsClient" + }, + "fullName": "google.cloud.compute_v1.ReservationsClient.delete", + "method": { + "fullName": "google.cloud.compute.v1.Reservations.Delete", + "service": { + "fullName": "google.cloud.compute.v1.Reservations", + "shortName": "Reservations" + }, + "shortName": "Delete" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.DeleteReservationRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "zone", + "type": "str" + }, + { + "name": "reservation", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "delete" + }, + "description": "Sample for Delete", + "file": "compute_v1_generated_reservations_delete_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_Reservations_Delete_sync", + "segments": [ + { + "end": 53, + "start": 27, + "type": "FULL" + }, + { + "end": 53, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 47, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 50, + "start": 48, + "type": "REQUEST_EXECUTION" + }, + { + "end": 54, + "start": 51, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_reservations_delete_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.ReservationsClient", + "shortName": "ReservationsClient" + }, + "fullName": "google.cloud.compute_v1.ReservationsClient.get_iam_policy", + "method": { + "fullName": "google.cloud.compute.v1.Reservations.GetIamPolicy", + "service": { + "fullName": "google.cloud.compute.v1.Reservations", + "shortName": "Reservations" + }, + "shortName": "GetIamPolicy" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.GetIamPolicyReservationRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "zone", + "type": "str" + }, + { + "name": "resource", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.types.Policy", + "shortName": "get_iam_policy" + }, + "description": "Sample for GetIamPolicy", + "file": "compute_v1_generated_reservations_get_iam_policy_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_Reservations_GetIamPolicy_sync", + "segments": [ + { + "end": 53, + "start": 27, + "type": "FULL" + }, + { + "end": 53, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 47, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 50, + "start": 48, + "type": "REQUEST_EXECUTION" + }, + { + "end": 54, + "start": 51, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_reservations_get_iam_policy_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.RegionZonesClient", - "shortName": "RegionZonesClient" + "fullName": "google.cloud.compute_v1.ReservationsClient", + "shortName": "ReservationsClient" }, - "fullName": "google.cloud.compute_v1.RegionZonesClient.list", + "fullName": "google.cloud.compute_v1.ReservationsClient.get", "method": { - "fullName": "google.cloud.compute.v1.RegionZones.List", + "fullName": "google.cloud.compute.v1.Reservations.Get", "service": { - "fullName": "google.cloud.compute.v1.RegionZones", - "shortName": "RegionZones" + "fullName": "google.cloud.compute.v1.Reservations", + "shortName": "Reservations" }, - "shortName": "List" + "shortName": "Get" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.ListRegionZonesRequest" + "type": "google.cloud.compute_v1.types.GetReservationRequest" }, { "name": "project", "type": "str" }, { - "name": "region", + "name": "zone", + "type": "str" + }, + { + "name": "reservation", "type": "str" }, { @@ -50797,14 +51649,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.region_zones.pagers.ListPager", - "shortName": "list" + "resultType": "google.cloud.compute_v1.types.Reservation", + "shortName": "get" }, - "description": "Sample for List", - "file": "compute_v1_generated_region_zones_list_sync.py", + "description": "Sample for Get", + "file": "compute_v1_generated_reservations_get_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_RegionZones_List_sync", + "regionTag": "compute_v1_generated_Reservations_Get_sync", "segments": [ { "end": 53, @@ -50822,52 +51674,56 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 46, + "end": 47, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 49, - "start": 47, + "end": 50, + "start": 48, "type": "REQUEST_EXECUTION" }, { "end": 54, - "start": 50, + "start": 51, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_region_zones_list_sync.py" + "title": "compute_v1_generated_reservations_get_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.RegionsClient", - "shortName": "RegionsClient" + "fullName": "google.cloud.compute_v1.ReservationsClient", + "shortName": "ReservationsClient" }, - "fullName": "google.cloud.compute_v1.RegionsClient.get", + "fullName": "google.cloud.compute_v1.ReservationsClient.insert", "method": { - "fullName": "google.cloud.compute.v1.Regions.Get", + "fullName": "google.cloud.compute.v1.Reservations.Insert", "service": { - "fullName": "google.cloud.compute.v1.Regions", - "shortName": "Regions" + "fullName": "google.cloud.compute.v1.Reservations", + "shortName": "Reservations" }, - "shortName": "Get" + "shortName": "Insert" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetRegionRequest" + "type": "google.cloud.compute_v1.types.InsertReservationRequest" }, { "name": "project", "type": "str" }, { - "name": "region", + "name": "zone", "type": "str" }, + { + "name": "reservation_resource", + "type": "google.cloud.compute_v1.types.Reservation" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -50881,14 +51737,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.Region", - "shortName": "get" + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "insert" }, - "description": "Sample for Get", - "file": "compute_v1_generated_regions_get_sync.py", + "description": "Sample for Insert", + "file": "compute_v1_generated_reservations_insert_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Regions_Get_sync", + "regionTag": "compute_v1_generated_Reservations_Insert_sync", "segments": [ { "end": 52, @@ -50921,87 +51777,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_regions_get_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.compute_v1.RegionsClient", - "shortName": "RegionsClient" - }, - "fullName": "google.cloud.compute_v1.RegionsClient.list", - "method": { - "fullName": "google.cloud.compute.v1.Regions.List", - "service": { - "fullName": "google.cloud.compute.v1.Regions", - "shortName": "Regions" - }, - "shortName": "List" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.compute_v1.types.ListRegionsRequest" - }, - { - "name": "project", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, Union[str, bytes]]]" - } - ], - "resultType": "google.cloud.compute_v1.services.regions.pagers.ListPager", - "shortName": "list" - }, - "description": "Sample for List", - "file": "compute_v1_generated_regions_list_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Regions_List_sync", - "segments": [ - { - "end": 52, - "start": 27, - "type": "FULL" - }, - { - "end": 52, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 48, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 53, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "compute_v1_generated_regions_list_sync.py" + "title": "compute_v1_generated_reservations_insert_sync.py" }, { "canonical": true, @@ -51010,24 +51786,28 @@ "fullName": "google.cloud.compute_v1.ReservationsClient", "shortName": "ReservationsClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.aggregated_list", + "fullName": "google.cloud.compute_v1.ReservationsClient.list", "method": { - "fullName": "google.cloud.compute.v1.Reservations.AggregatedList", + "fullName": "google.cloud.compute.v1.Reservations.List", "service": { "fullName": "google.cloud.compute.v1.Reservations", "shortName": "Reservations" }, - "shortName": "AggregatedList" + "shortName": "List" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.AggregatedListReservationsRequest" + "type": "google.cloud.compute_v1.types.ListReservationsRequest" }, { "name": "project", "type": "str" }, + { + "name": "zone", + "type": "str" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51041,22 +51821,22 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.reservations.pagers.AggregatedListPager", - "shortName": "aggregated_list" + "resultType": "google.cloud.compute_v1.services.reservations.pagers.ListPager", + "shortName": "list" }, - "description": "Sample for AggregatedList", - "file": "compute_v1_generated_reservations_aggregated_list_sync.py", + "description": "Sample for List", + "file": "compute_v1_generated_reservations_list_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_AggregatedList_sync", + "regionTag": "compute_v1_generated_Reservations_List_sync", "segments": [ { - "end": 52, + "end": 53, "start": 27, "type": "FULL" }, { - "end": 52, + "end": 53, "start": 27, "type": "SHORT" }, @@ -51066,22 +51846,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 45, + "end": 46, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 48, - "start": 46, + "end": 49, + "start": 47, "type": "REQUEST_EXECUTION" }, { - "end": 53, - "start": 49, + "end": 54, + "start": 50, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_aggregated_list_sync.py" + "title": "compute_v1_generated_reservations_list_sync.py" }, { "canonical": true, @@ -51090,19 +51870,19 @@ "fullName": "google.cloud.compute_v1.ReservationsClient", "shortName": "ReservationsClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.delete", + "fullName": "google.cloud.compute_v1.ReservationsClient.resize", "method": { - "fullName": "google.cloud.compute.v1.Reservations.Delete", + "fullName": "google.cloud.compute.v1.Reservations.Resize", "service": { "fullName": "google.cloud.compute.v1.Reservations", "shortName": "Reservations" }, - "shortName": "Delete" + "shortName": "Resize" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.DeleteReservationRequest" + "type": "google.cloud.compute_v1.types.ResizeReservationRequest" }, { "name": "project", @@ -51116,6 +51896,10 @@ "name": "reservation", "type": "str" }, + { + "name": "reservations_resize_request_resource", + "type": "google.cloud.compute_v1.types.ReservationsResizeRequest" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51130,13 +51914,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "delete" + "shortName": "resize" }, - "description": "Sample for Delete", - "file": "compute_v1_generated_reservations_delete_sync.py", + "description": "Sample for Resize", + "file": "compute_v1_generated_reservations_resize_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_Delete_sync", + "regionTag": "compute_v1_generated_Reservations_Resize_sync", "segments": [ { "end": 53, @@ -51169,7 +51953,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_delete_sync.py" + "title": "compute_v1_generated_reservations_resize_sync.py" }, { "canonical": true, @@ -51178,19 +51962,19 @@ "fullName": "google.cloud.compute_v1.ReservationsClient", "shortName": "ReservationsClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.get_iam_policy", + "fullName": "google.cloud.compute_v1.ReservationsClient.set_iam_policy", "method": { - "fullName": "google.cloud.compute.v1.Reservations.GetIamPolicy", + "fullName": "google.cloud.compute.v1.Reservations.SetIamPolicy", "service": { "fullName": "google.cloud.compute.v1.Reservations", "shortName": "Reservations" }, - "shortName": "GetIamPolicy" + "shortName": "SetIamPolicy" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetIamPolicyReservationRequest" + "type": "google.cloud.compute_v1.types.SetIamPolicyReservationRequest" }, { "name": "project", @@ -51204,6 +51988,10 @@ "name": "resource", "type": "str" }, + { + "name": "zone_set_policy_request_resource", + "type": "google.cloud.compute_v1.types.ZoneSetPolicyRequest" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51218,13 +52006,13 @@ } ], "resultType": "google.cloud.compute_v1.types.Policy", - "shortName": "get_iam_policy" + "shortName": "set_iam_policy" }, - "description": "Sample for GetIamPolicy", - "file": "compute_v1_generated_reservations_get_iam_policy_sync.py", + "description": "Sample for SetIamPolicy", + "file": "compute_v1_generated_reservations_set_iam_policy_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_GetIamPolicy_sync", + "regionTag": "compute_v1_generated_Reservations_SetIamPolicy_sync", "segments": [ { "end": 53, @@ -51257,7 +52045,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_get_iam_policy_sync.py" + "title": "compute_v1_generated_reservations_set_iam_policy_sync.py" }, { "canonical": true, @@ -51266,19 +52054,19 @@ "fullName": "google.cloud.compute_v1.ReservationsClient", "shortName": "ReservationsClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.get", + "fullName": "google.cloud.compute_v1.ReservationsClient.test_iam_permissions", "method": { - "fullName": "google.cloud.compute.v1.Reservations.Get", + "fullName": "google.cloud.compute.v1.Reservations.TestIamPermissions", "service": { "fullName": "google.cloud.compute.v1.Reservations", "shortName": "Reservations" }, - "shortName": "Get" + "shortName": "TestIamPermissions" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetReservationRequest" + "type": "google.cloud.compute_v1.types.TestIamPermissionsReservationRequest" }, { "name": "project", @@ -51289,9 +52077,13 @@ "type": "str" }, { - "name": "reservation", + "name": "resource", "type": "str" }, + { + "name": "test_permissions_request_resource", + "type": "google.cloud.compute_v1.types.TestPermissionsRequest" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51305,14 +52097,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.Reservation", - "shortName": "get" + "resultType": "google.cloud.compute_v1.types.TestPermissionsResponse", + "shortName": "test_iam_permissions" }, - "description": "Sample for Get", - "file": "compute_v1_generated_reservations_get_sync.py", + "description": "Sample for TestIamPermissions", + "file": "compute_v1_generated_reservations_test_iam_permissions_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_Get_sync", + "regionTag": "compute_v1_generated_Reservations_TestIamPermissions_sync", "segments": [ { "end": 53, @@ -51345,7 +52137,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_get_sync.py" + "title": "compute_v1_generated_reservations_test_iam_permissions_sync.py" }, { "canonical": true, @@ -51354,19 +52146,19 @@ "fullName": "google.cloud.compute_v1.ReservationsClient", "shortName": "ReservationsClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.insert", + "fullName": "google.cloud.compute_v1.ReservationsClient.update", "method": { - "fullName": "google.cloud.compute.v1.Reservations.Insert", + "fullName": "google.cloud.compute.v1.Reservations.Update", "service": { "fullName": "google.cloud.compute.v1.Reservations", "shortName": "Reservations" }, - "shortName": "Insert" + "shortName": "Update" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.InsertReservationRequest" + "type": "google.cloud.compute_v1.types.UpdateReservationRequest" }, { "name": "project", @@ -51376,6 +52168,10 @@ "name": "zone", "type": "str" }, + { + "name": "reservation", + "type": "str" + }, { "name": "reservation_resource", "type": "google.cloud.compute_v1.types.Reservation" @@ -51394,21 +52190,21 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "insert" + "shortName": "update" }, - "description": "Sample for Insert", - "file": "compute_v1_generated_reservations_insert_sync.py", + "description": "Sample for Update", + "file": "compute_v1_generated_reservations_update_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_Insert_sync", + "regionTag": "compute_v1_generated_Reservations_Update_sync", "segments": [ { - "end": 52, + "end": 53, "start": 27, "type": "FULL" }, { - "end": 52, + "end": 53, "start": 27, "type": "SHORT" }, @@ -51418,52 +52214,48 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 46, + "end": 47, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 49, - "start": 47, + "end": 50, + "start": 48, "type": "REQUEST_EXECUTION" }, { - "end": 53, - "start": 50, + "end": 54, + "start": 51, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_insert_sync.py" + "title": "compute_v1_generated_reservations_update_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ReservationsClient", - "shortName": "ReservationsClient" + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", + "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.list", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.aggregated_list", "method": { - "fullName": "google.cloud.compute.v1.Reservations.List", + "fullName": "google.cloud.compute.v1.ResourcePolicies.AggregatedList", "service": { - "fullName": "google.cloud.compute.v1.Reservations", - "shortName": "Reservations" + "fullName": "google.cloud.compute.v1.ResourcePolicies", + "shortName": "ResourcePolicies" }, - "shortName": "List" + "shortName": "AggregatedList" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.ListReservationsRequest" + "type": "google.cloud.compute_v1.types.AggregatedListResourcePoliciesRequest" }, { "name": "project", "type": "str" }, - { - "name": "zone", - "type": "str" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51477,22 +52269,22 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.reservations.pagers.ListPager", - "shortName": "list" + "resultType": "google.cloud.compute_v1.services.resource_policies.pagers.AggregatedListPager", + "shortName": "aggregated_list" }, - "description": "Sample for List", - "file": "compute_v1_generated_reservations_list_sync.py", + "description": "Sample for AggregatedList", + "file": "compute_v1_generated_resource_policies_aggregated_list_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_List_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_AggregatedList_sync", "segments": [ { - "end": 53, + "end": 52, "start": 27, "type": "FULL" }, { - "end": 53, + "end": 52, "start": 27, "type": "SHORT" }, @@ -51502,60 +52294,56 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 46, + "end": 45, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 49, - "start": 47, + "end": 48, + "start": 46, "type": "REQUEST_EXECUTION" }, { - "end": 54, - "start": 50, + "end": 53, + "start": 49, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_list_sync.py" + "title": "compute_v1_generated_resource_policies_aggregated_list_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ReservationsClient", - "shortName": "ReservationsClient" + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", + "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.resize", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.delete", "method": { - "fullName": "google.cloud.compute.v1.Reservations.Resize", + "fullName": "google.cloud.compute.v1.ResourcePolicies.Delete", "service": { - "fullName": "google.cloud.compute.v1.Reservations", - "shortName": "Reservations" + "fullName": "google.cloud.compute.v1.ResourcePolicies", + "shortName": "ResourcePolicies" }, - "shortName": "Resize" + "shortName": "Delete" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.ResizeReservationRequest" + "type": "google.cloud.compute_v1.types.DeleteResourcePolicyRequest" }, { "name": "project", "type": "str" }, { - "name": "zone", + "name": "region", "type": "str" }, { - "name": "reservation", + "name": "resource_policy", "type": "str" }, - { - "name": "reservations_resize_request_resource", - "type": "google.cloud.compute_v1.types.ReservationsResizeRequest" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51570,13 +52358,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "resize" + "shortName": "delete" }, - "description": "Sample for Resize", - "file": "compute_v1_generated_reservations_resize_sync.py", + "description": "Sample for Delete", + "file": "compute_v1_generated_resource_policies_delete_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_Resize_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_Delete_sync", "segments": [ { "end": 53, @@ -51609,45 +52397,41 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_resize_sync.py" + "title": "compute_v1_generated_resource_policies_delete_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ReservationsClient", - "shortName": "ReservationsClient" + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", + "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.set_iam_policy", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.get_iam_policy", "method": { - "fullName": "google.cloud.compute.v1.Reservations.SetIamPolicy", + "fullName": "google.cloud.compute.v1.ResourcePolicies.GetIamPolicy", "service": { - "fullName": "google.cloud.compute.v1.Reservations", - "shortName": "Reservations" + "fullName": "google.cloud.compute.v1.ResourcePolicies", + "shortName": "ResourcePolicies" }, - "shortName": "SetIamPolicy" + "shortName": "GetIamPolicy" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.SetIamPolicyReservationRequest" + "type": "google.cloud.compute_v1.types.GetIamPolicyResourcePolicyRequest" }, { "name": "project", "type": "str" }, { - "name": "zone", + "name": "region", "type": "str" }, { "name": "resource", "type": "str" }, - { - "name": "zone_set_policy_request_resource", - "type": "google.cloud.compute_v1.types.ZoneSetPolicyRequest" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51662,13 +52446,13 @@ } ], "resultType": "google.cloud.compute_v1.types.Policy", - "shortName": "set_iam_policy" + "shortName": "get_iam_policy" }, - "description": "Sample for SetIamPolicy", - "file": "compute_v1_generated_reservations_set_iam_policy_sync.py", + "description": "Sample for GetIamPolicy", + "file": "compute_v1_generated_resource_policies_get_iam_policy_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_SetIamPolicy_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_GetIamPolicy_sync", "segments": [ { "end": 53, @@ -51701,45 +52485,41 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_set_iam_policy_sync.py" + "title": "compute_v1_generated_resource_policies_get_iam_policy_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ReservationsClient", - "shortName": "ReservationsClient" + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", + "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.test_iam_permissions", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.get", "method": { - "fullName": "google.cloud.compute.v1.Reservations.TestIamPermissions", + "fullName": "google.cloud.compute.v1.ResourcePolicies.Get", "service": { - "fullName": "google.cloud.compute.v1.Reservations", - "shortName": "Reservations" + "fullName": "google.cloud.compute.v1.ResourcePolicies", + "shortName": "ResourcePolicies" }, - "shortName": "TestIamPermissions" + "shortName": "Get" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.TestIamPermissionsReservationRequest" + "type": "google.cloud.compute_v1.types.GetResourcePolicyRequest" }, { "name": "project", "type": "str" }, { - "name": "zone", + "name": "region", "type": "str" }, { - "name": "resource", + "name": "resource_policy", "type": "str" }, - { - "name": "test_permissions_request_resource", - "type": "google.cloud.compute_v1.types.TestPermissionsRequest" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51753,14 +52533,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.TestPermissionsResponse", - "shortName": "test_iam_permissions" + "resultType": "google.cloud.compute_v1.types.ResourcePolicy", + "shortName": "get" }, - "description": "Sample for TestIamPermissions", - "file": "compute_v1_generated_reservations_test_iam_permissions_sync.py", + "description": "Sample for Get", + "file": "compute_v1_generated_resource_policies_get_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_TestIamPermissions_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_Get_sync", "segments": [ { "end": 53, @@ -51793,44 +52573,40 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_test_iam_permissions_sync.py" + "title": "compute_v1_generated_resource_policies_get_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ReservationsClient", - "shortName": "ReservationsClient" + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", + "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ReservationsClient.update", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.insert", "method": { - "fullName": "google.cloud.compute.v1.Reservations.Update", + "fullName": "google.cloud.compute.v1.ResourcePolicies.Insert", "service": { - "fullName": "google.cloud.compute.v1.Reservations", - "shortName": "Reservations" + "fullName": "google.cloud.compute.v1.ResourcePolicies", + "shortName": "ResourcePolicies" }, - "shortName": "Update" + "shortName": "Insert" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.UpdateReservationRequest" + "type": "google.cloud.compute_v1.types.InsertResourcePolicyRequest" }, { "name": "project", "type": "str" }, { - "name": "zone", - "type": "str" - }, - { - "name": "reservation", + "name": "region", "type": "str" }, { - "name": "reservation_resource", - "type": "google.cloud.compute_v1.types.Reservation" + "name": "resource_policy_resource", + "type": "google.cloud.compute_v1.types.ResourcePolicy" }, { "name": "retry", @@ -51846,21 +52622,21 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "update" + "shortName": "insert" }, - "description": "Sample for Update", - "file": "compute_v1_generated_reservations_update_sync.py", + "description": "Sample for Insert", + "file": "compute_v1_generated_resource_policies_insert_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Reservations_Update_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_Insert_sync", "segments": [ { - "end": 53, + "end": 52, "start": 27, "type": "FULL" }, { - "end": 53, + "end": 52, "start": 27, "type": "SHORT" }, @@ -51870,22 +52646,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 47, + "end": 46, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 50, - "start": 48, + "end": 49, + "start": 47, "type": "REQUEST_EXECUTION" }, { - "end": 54, - "start": 51, + "end": 53, + "start": 50, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_reservations_update_sync.py" + "title": "compute_v1_generated_resource_policies_insert_sync.py" }, { "canonical": true, @@ -51894,24 +52670,28 @@ "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.aggregated_list", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.list", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.AggregatedList", + "fullName": "google.cloud.compute.v1.ResourcePolicies.List", "service": { "fullName": "google.cloud.compute.v1.ResourcePolicies", "shortName": "ResourcePolicies" }, - "shortName": "AggregatedList" + "shortName": "List" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.AggregatedListResourcePoliciesRequest" + "type": "google.cloud.compute_v1.types.ListResourcePoliciesRequest" }, { "name": "project", "type": "str" }, + { + "name": "region", + "type": "str" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -51925,22 +52705,22 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.resource_policies.pagers.AggregatedListPager", - "shortName": "aggregated_list" + "resultType": "google.cloud.compute_v1.services.resource_policies.pagers.ListPager", + "shortName": "list" }, - "description": "Sample for AggregatedList", - "file": "compute_v1_generated_resource_policies_aggregated_list_sync.py", + "description": "Sample for List", + "file": "compute_v1_generated_resource_policies_list_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_AggregatedList_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_List_sync", "segments": [ { - "end": 52, + "end": 53, "start": 27, "type": "FULL" }, { - "end": 52, + "end": 53, "start": 27, "type": "SHORT" }, @@ -51950,22 +52730,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 45, + "end": 46, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 48, - "start": 46, + "end": 49, + "start": 47, "type": "REQUEST_EXECUTION" }, { - "end": 53, - "start": 49, + "end": 54, + "start": 50, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_aggregated_list_sync.py" + "title": "compute_v1_generated_resource_policies_list_sync.py" }, { "canonical": true, @@ -51974,19 +52754,19 @@ "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.delete", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.patch", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.Delete", + "fullName": "google.cloud.compute.v1.ResourcePolicies.Patch", "service": { "fullName": "google.cloud.compute.v1.ResourcePolicies", "shortName": "ResourcePolicies" }, - "shortName": "Delete" + "shortName": "Patch" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.DeleteResourcePolicyRequest" + "type": "google.cloud.compute_v1.types.PatchResourcePolicyRequest" }, { "name": "project", @@ -52000,6 +52780,10 @@ "name": "resource_policy", "type": "str" }, + { + "name": "resource_policy_resource", + "type": "google.cloud.compute_v1.types.ResourcePolicy" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52014,13 +52798,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "delete" + "shortName": "patch" }, - "description": "Sample for Delete", - "file": "compute_v1_generated_resource_policies_delete_sync.py", + "description": "Sample for Patch", + "file": "compute_v1_generated_resource_policies_patch_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_Delete_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_Patch_sync", "segments": [ { "end": 53, @@ -52053,7 +52837,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_delete_sync.py" + "title": "compute_v1_generated_resource_policies_patch_sync.py" }, { "canonical": true, @@ -52062,19 +52846,19 @@ "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.get_iam_policy", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.set_iam_policy", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.GetIamPolicy", + "fullName": "google.cloud.compute.v1.ResourcePolicies.SetIamPolicy", "service": { "fullName": "google.cloud.compute.v1.ResourcePolicies", "shortName": "ResourcePolicies" }, - "shortName": "GetIamPolicy" + "shortName": "SetIamPolicy" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetIamPolicyResourcePolicyRequest" + "type": "google.cloud.compute_v1.types.SetIamPolicyResourcePolicyRequest" }, { "name": "project", @@ -52088,6 +52872,10 @@ "name": "resource", "type": "str" }, + { + "name": "region_set_policy_request_resource", + "type": "google.cloud.compute_v1.types.RegionSetPolicyRequest" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52102,13 +52890,13 @@ } ], "resultType": "google.cloud.compute_v1.types.Policy", - "shortName": "get_iam_policy" + "shortName": "set_iam_policy" }, - "description": "Sample for GetIamPolicy", - "file": "compute_v1_generated_resource_policies_get_iam_policy_sync.py", + "description": "Sample for SetIamPolicy", + "file": "compute_v1_generated_resource_policies_set_iam_policy_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_GetIamPolicy_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_SetIamPolicy_sync", "segments": [ { "end": 53, @@ -52141,7 +52929,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_get_iam_policy_sync.py" + "title": "compute_v1_generated_resource_policies_set_iam_policy_sync.py" }, { "canonical": true, @@ -52150,19 +52938,19 @@ "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", "shortName": "ResourcePoliciesClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.get", + "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.test_iam_permissions", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.Get", + "fullName": "google.cloud.compute.v1.ResourcePolicies.TestIamPermissions", "service": { "fullName": "google.cloud.compute.v1.ResourcePolicies", "shortName": "ResourcePolicies" }, - "shortName": "Get" + "shortName": "TestIamPermissions" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetResourcePolicyRequest" + "type": "google.cloud.compute_v1.types.TestIamPermissionsResourcePolicyRequest" }, { "name": "project", @@ -52173,9 +52961,13 @@ "type": "str" }, { - "name": "resource_policy", + "name": "resource", "type": "str" }, + { + "name": "test_permissions_request_resource", + "type": "google.cloud.compute_v1.types.TestPermissionsRequest" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52189,14 +52981,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.ResourcePolicy", - "shortName": "get" + "resultType": "google.cloud.compute_v1.types.TestPermissionsResponse", + "shortName": "test_iam_permissions" }, - "description": "Sample for Get", - "file": "compute_v1_generated_resource_policies_get_sync.py", + "description": "Sample for TestIamPermissions", + "file": "compute_v1_generated_resource_policies_test_iam_permissions_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_Get_sync", + "regionTag": "compute_v1_generated_ResourcePolicies_TestIamPermissions_sync", "segments": [ { "end": 53, @@ -52229,41 +53021,33 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_get_sync.py" + "title": "compute_v1_generated_resource_policies_test_iam_permissions_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", - "shortName": "ResourcePoliciesClient" + "fullName": "google.cloud.compute_v1.RoutersClient", + "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.insert", + "fullName": "google.cloud.compute_v1.RoutersClient.aggregated_list", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.Insert", + "fullName": "google.cloud.compute.v1.Routers.AggregatedList", "service": { - "fullName": "google.cloud.compute.v1.ResourcePolicies", - "shortName": "ResourcePolicies" + "fullName": "google.cloud.compute.v1.Routers", + "shortName": "Routers" }, - "shortName": "Insert" + "shortName": "AggregatedList" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.InsertResourcePolicyRequest" + "type": "google.cloud.compute_v1.types.AggregatedListRoutersRequest" }, { "name": "project", "type": "str" }, - { - "name": "region", - "type": "str" - }, - { - "name": "resource_policy_resource", - "type": "google.cloud.compute_v1.types.ResourcePolicy" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52277,14 +53061,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "insert" + "resultType": "google.cloud.compute_v1.services.routers.pagers.AggregatedListPager", + "shortName": "aggregated_list" }, - "description": "Sample for Insert", - "file": "compute_v1_generated_resource_policies_insert_sync.py", + "description": "Sample for AggregatedList", + "file": "compute_v1_generated_routers_aggregated_list_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_Insert_sync", + "regionTag": "compute_v1_generated_Routers_AggregatedList_sync", "segments": [ { "end": 52, @@ -52302,43 +53086,43 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 46, + "end": 45, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 49, - "start": 47, + "end": 48, + "start": 46, "type": "REQUEST_EXECUTION" }, { "end": 53, - "start": 50, + "start": 49, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_insert_sync.py" + "title": "compute_v1_generated_routers_aggregated_list_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", - "shortName": "ResourcePoliciesClient" + "fullName": "google.cloud.compute_v1.RoutersClient", + "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.list", + "fullName": "google.cloud.compute_v1.RoutersClient.delete_route_policy", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.List", + "fullName": "google.cloud.compute.v1.Routers.DeleteRoutePolicy", "service": { - "fullName": "google.cloud.compute.v1.ResourcePolicies", - "shortName": "ResourcePolicies" + "fullName": "google.cloud.compute.v1.Routers", + "shortName": "Routers" }, - "shortName": "List" + "shortName": "DeleteRoutePolicy" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.ListResourcePoliciesRequest" + "type": "google.cloud.compute_v1.types.DeleteRoutePolicyRouterRequest" }, { "name": "project", @@ -52348,6 +53132,10 @@ "name": "region", "type": "str" }, + { + "name": "router", + "type": "str" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52361,14 +53149,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.resource_policies.pagers.ListPager", - "shortName": "list" + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "delete_route_policy" }, - "description": "Sample for List", - "file": "compute_v1_generated_resource_policies_list_sync.py", + "description": "Sample for DeleteRoutePolicy", + "file": "compute_v1_generated_routers_delete_route_policy_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_List_sync", + "regionTag": "compute_v1_generated_Routers_DeleteRoutePolicy_sync", "segments": [ { "end": 53, @@ -52386,43 +53174,43 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 46, + "end": 47, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 49, - "start": 47, + "end": 50, + "start": 48, "type": "REQUEST_EXECUTION" }, { "end": 54, - "start": 50, + "start": 51, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_list_sync.py" + "title": "compute_v1_generated_routers_delete_route_policy_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", - "shortName": "ResourcePoliciesClient" + "fullName": "google.cloud.compute_v1.RoutersClient", + "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.patch", + "fullName": "google.cloud.compute_v1.RoutersClient.delete", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.Patch", + "fullName": "google.cloud.compute.v1.Routers.Delete", "service": { - "fullName": "google.cloud.compute.v1.ResourcePolicies", - "shortName": "ResourcePolicies" + "fullName": "google.cloud.compute.v1.Routers", + "shortName": "Routers" }, - "shortName": "Patch" + "shortName": "Delete" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.PatchResourcePolicyRequest" + "type": "google.cloud.compute_v1.types.DeleteRouterRequest" }, { "name": "project", @@ -52433,13 +53221,9 @@ "type": "str" }, { - "name": "resource_policy", + "name": "router", "type": "str" }, - { - "name": "resource_policy_resource", - "type": "google.cloud.compute_v1.types.ResourcePolicy" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52454,13 +53238,13 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "patch" + "shortName": "delete" }, - "description": "Sample for Patch", - "file": "compute_v1_generated_resource_policies_patch_sync.py", + "description": "Sample for Delete", + "file": "compute_v1_generated_routers_delete_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_Patch_sync", + "regionTag": "compute_v1_generated_Routers_Delete_sync", "segments": [ { "end": 53, @@ -52493,28 +53277,28 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_patch_sync.py" + "title": "compute_v1_generated_routers_delete_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", - "shortName": "ResourcePoliciesClient" + "fullName": "google.cloud.compute_v1.RoutersClient", + "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.set_iam_policy", + "fullName": "google.cloud.compute_v1.RoutersClient.get_nat_ip_info", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.SetIamPolicy", + "fullName": "google.cloud.compute.v1.Routers.GetNatIpInfo", "service": { - "fullName": "google.cloud.compute.v1.ResourcePolicies", - "shortName": "ResourcePolicies" + "fullName": "google.cloud.compute.v1.Routers", + "shortName": "Routers" }, - "shortName": "SetIamPolicy" + "shortName": "GetNatIpInfo" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.SetIamPolicyResourcePolicyRequest" + "type": "google.cloud.compute_v1.types.GetNatIpInfoRouterRequest" }, { "name": "project", @@ -52525,13 +53309,9 @@ "type": "str" }, { - "name": "resource", + "name": "router", "type": "str" }, - { - "name": "region_set_policy_request_resource", - "type": "google.cloud.compute_v1.types.RegionSetPolicyRequest" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52545,14 +53325,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.Policy", - "shortName": "set_iam_policy" + "resultType": "google.cloud.compute_v1.types.NatIpInfoResponse", + "shortName": "get_nat_ip_info" }, - "description": "Sample for SetIamPolicy", - "file": "compute_v1_generated_resource_policies_set_iam_policy_sync.py", + "description": "Sample for GetNatIpInfo", + "file": "compute_v1_generated_routers_get_nat_ip_info_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_SetIamPolicy_sync", + "regionTag": "compute_v1_generated_Routers_GetNatIpInfo_sync", "segments": [ { "end": 53, @@ -52585,28 +53365,28 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_set_iam_policy_sync.py" + "title": "compute_v1_generated_routers_get_nat_ip_info_sync.py" }, { "canonical": true, "clientMethod": { "client": { - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient", - "shortName": "ResourcePoliciesClient" + "fullName": "google.cloud.compute_v1.RoutersClient", + "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.ResourcePoliciesClient.test_iam_permissions", + "fullName": "google.cloud.compute_v1.RoutersClient.get_nat_mapping_info", "method": { - "fullName": "google.cloud.compute.v1.ResourcePolicies.TestIamPermissions", + "fullName": "google.cloud.compute.v1.Routers.GetNatMappingInfo", "service": { - "fullName": "google.cloud.compute.v1.ResourcePolicies", - "shortName": "ResourcePolicies" + "fullName": "google.cloud.compute.v1.Routers", + "shortName": "Routers" }, - "shortName": "TestIamPermissions" + "shortName": "GetNatMappingInfo" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.TestIamPermissionsResourcePolicyRequest" + "type": "google.cloud.compute_v1.types.GetNatMappingInfoRoutersRequest" }, { "name": "project", @@ -52617,12 +53397,96 @@ "type": "str" }, { - "name": "resource", + "name": "router", "type": "str" }, { - "name": "test_permissions_request_resource", - "type": "google.cloud.compute_v1.types.TestPermissionsRequest" + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, Union[str, bytes]]]" + } + ], + "resultType": "google.cloud.compute_v1.services.routers.pagers.GetNatMappingInfoPager", + "shortName": "get_nat_mapping_info" + }, + "description": "Sample for GetNatMappingInfo", + "file": "compute_v1_generated_routers_get_nat_mapping_info_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "compute_v1_generated_Routers_GetNatMappingInfo_sync", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 47, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 50, + "start": 48, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 51, + "type": "RESPONSE_HANDLING" + } + ], + "title": "compute_v1_generated_routers_get_nat_mapping_info_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.compute_v1.RoutersClient", + "shortName": "RoutersClient" + }, + "fullName": "google.cloud.compute_v1.RoutersClient.get_route_policy", + "method": { + "fullName": "google.cloud.compute.v1.Routers.GetRoutePolicy", + "service": { + "fullName": "google.cloud.compute.v1.Routers", + "shortName": "Routers" + }, + "shortName": "GetRoutePolicy" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.compute_v1.types.GetRoutePolicyRouterRequest" + }, + { + "name": "project", + "type": "str" + }, + { + "name": "region", + "type": "str" + }, + { + "name": "router", + "type": "str" }, { "name": "retry", @@ -52637,14 +53501,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.TestPermissionsResponse", - "shortName": "test_iam_permissions" + "resultType": "google.cloud.compute_v1.types.RoutersGetRoutePolicyResponse", + "shortName": "get_route_policy" }, - "description": "Sample for TestIamPermissions", - "file": "compute_v1_generated_resource_policies_test_iam_permissions_sync.py", + "description": "Sample for GetRoutePolicy", + "file": "compute_v1_generated_routers_get_route_policy_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_ResourcePolicies_TestIamPermissions_sync", + "regionTag": "compute_v1_generated_Routers_GetRoutePolicy_sync", "segments": [ { "end": 53, @@ -52677,7 +53541,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_resource_policies_test_iam_permissions_sync.py" + "title": "compute_v1_generated_routers_get_route_policy_sync.py" }, { "canonical": true, @@ -52686,24 +53550,32 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.aggregated_list", + "fullName": "google.cloud.compute_v1.RoutersClient.get_router_status", "method": { - "fullName": "google.cloud.compute.v1.Routers.AggregatedList", + "fullName": "google.cloud.compute.v1.Routers.GetRouterStatus", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "AggregatedList" + "shortName": "GetRouterStatus" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.AggregatedListRoutersRequest" + "type": "google.cloud.compute_v1.types.GetRouterStatusRouterRequest" }, { "name": "project", "type": "str" }, + { + "name": "region", + "type": "str" + }, + { + "name": "router", + "type": "str" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -52717,22 +53589,22 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.routers.pagers.AggregatedListPager", - "shortName": "aggregated_list" + "resultType": "google.cloud.compute_v1.types.RouterStatusResponse", + "shortName": "get_router_status" }, - "description": "Sample for AggregatedList", - "file": "compute_v1_generated_routers_aggregated_list_sync.py", + "description": "Sample for GetRouterStatus", + "file": "compute_v1_generated_routers_get_router_status_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_AggregatedList_sync", + "regionTag": "compute_v1_generated_Routers_GetRouterStatus_sync", "segments": [ { - "end": 52, + "end": 53, "start": 27, "type": "FULL" }, { - "end": 52, + "end": 53, "start": 27, "type": "SHORT" }, @@ -52742,22 +53614,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 45, + "end": 47, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 48, - "start": 46, + "end": 50, + "start": 48, "type": "REQUEST_EXECUTION" }, { - "end": 53, - "start": 49, + "end": 54, + "start": 51, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_aggregated_list_sync.py" + "title": "compute_v1_generated_routers_get_router_status_sync.py" }, { "canonical": true, @@ -52766,19 +53638,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.delete", + "fullName": "google.cloud.compute_v1.RoutersClient.get", "method": { - "fullName": "google.cloud.compute.v1.Routers.Delete", + "fullName": "google.cloud.compute.v1.Routers.Get", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "Delete" + "shortName": "Get" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.DeleteRouterRequest" + "type": "google.cloud.compute_v1.types.GetRouterRequest" }, { "name": "project", @@ -52805,14 +53677,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "delete" + "resultType": "google.cloud.compute_v1.types.Router", + "shortName": "get" }, - "description": "Sample for Delete", - "file": "compute_v1_generated_routers_delete_sync.py", + "description": "Sample for Get", + "file": "compute_v1_generated_routers_get_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_Delete_sync", + "regionTag": "compute_v1_generated_Routers_Get_sync", "segments": [ { "end": 53, @@ -52845,7 +53717,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_delete_sync.py" + "title": "compute_v1_generated_routers_get_sync.py" }, { "canonical": true, @@ -52854,19 +53726,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.get_nat_ip_info", + "fullName": "google.cloud.compute_v1.RoutersClient.insert", "method": { - "fullName": "google.cloud.compute.v1.Routers.GetNatIpInfo", + "fullName": "google.cloud.compute.v1.Routers.Insert", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "GetNatIpInfo" + "shortName": "Insert" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetNatIpInfoRouterRequest" + "type": "google.cloud.compute_v1.types.InsertRouterRequest" }, { "name": "project", @@ -52877,8 +53749,8 @@ "type": "str" }, { - "name": "router", - "type": "str" + "name": "router_resource", + "type": "google.cloud.compute_v1.types.Router" }, { "name": "retry", @@ -52893,22 +53765,22 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.NatIpInfoResponse", - "shortName": "get_nat_ip_info" + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "insert" }, - "description": "Sample for GetNatIpInfo", - "file": "compute_v1_generated_routers_get_nat_ip_info_sync.py", + "description": "Sample for Insert", + "file": "compute_v1_generated_routers_insert_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_GetNatIpInfo_sync", + "regionTag": "compute_v1_generated_Routers_Insert_sync", "segments": [ { - "end": 53, + "end": 52, "start": 27, "type": "FULL" }, { - "end": 53, + "end": 52, "start": 27, "type": "SHORT" }, @@ -52918,22 +53790,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 47, + "end": 46, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 50, - "start": 48, + "end": 49, + "start": 47, "type": "REQUEST_EXECUTION" }, { - "end": 54, - "start": 51, + "end": 53, + "start": 50, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_get_nat_ip_info_sync.py" + "title": "compute_v1_generated_routers_insert_sync.py" }, { "canonical": true, @@ -52942,19 +53814,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.get_nat_mapping_info", + "fullName": "google.cloud.compute_v1.RoutersClient.list_bgp_routes", "method": { - "fullName": "google.cloud.compute.v1.Routers.GetNatMappingInfo", + "fullName": "google.cloud.compute.v1.Routers.ListBgpRoutes", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "GetNatMappingInfo" + "shortName": "ListBgpRoutes" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetNatMappingInfoRoutersRequest" + "type": "google.cloud.compute_v1.types.ListBgpRoutesRoutersRequest" }, { "name": "project", @@ -52981,14 +53853,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.routers.pagers.GetNatMappingInfoPager", - "shortName": "get_nat_mapping_info" + "resultType": "google.cloud.compute_v1.services.routers.pagers.ListBgpRoutesPager", + "shortName": "list_bgp_routes" }, - "description": "Sample for GetNatMappingInfo", - "file": "compute_v1_generated_routers_get_nat_mapping_info_sync.py", + "description": "Sample for ListBgpRoutes", + "file": "compute_v1_generated_routers_list_bgp_routes_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_GetNatMappingInfo_sync", + "regionTag": "compute_v1_generated_Routers_ListBgpRoutes_sync", "segments": [ { "end": 54, @@ -53021,7 +53893,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_get_nat_mapping_info_sync.py" + "title": "compute_v1_generated_routers_list_bgp_routes_sync.py" }, { "canonical": true, @@ -53030,19 +53902,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.get_router_status", + "fullName": "google.cloud.compute_v1.RoutersClient.list_route_policies", "method": { - "fullName": "google.cloud.compute.v1.Routers.GetRouterStatus", + "fullName": "google.cloud.compute.v1.Routers.ListRoutePolicies", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "GetRouterStatus" + "shortName": "ListRoutePolicies" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetRouterStatusRouterRequest" + "type": "google.cloud.compute_v1.types.ListRoutePoliciesRoutersRequest" }, { "name": "project", @@ -53069,22 +53941,22 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.RouterStatusResponse", - "shortName": "get_router_status" + "resultType": "google.cloud.compute_v1.services.routers.pagers.ListRoutePoliciesPager", + "shortName": "list_route_policies" }, - "description": "Sample for GetRouterStatus", - "file": "compute_v1_generated_routers_get_router_status_sync.py", + "description": "Sample for ListRoutePolicies", + "file": "compute_v1_generated_routers_list_route_policies_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_GetRouterStatus_sync", + "regionTag": "compute_v1_generated_Routers_ListRoutePolicies_sync", "segments": [ { - "end": 53, + "end": 54, "start": 27, "type": "FULL" }, { - "end": 53, + "end": 54, "start": 27, "type": "SHORT" }, @@ -53104,12 +53976,12 @@ "type": "REQUEST_EXECUTION" }, { - "end": 54, + "end": 55, "start": 51, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_get_router_status_sync.py" + "title": "compute_v1_generated_routers_list_route_policies_sync.py" }, { "canonical": true, @@ -53118,19 +53990,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.get", + "fullName": "google.cloud.compute_v1.RoutersClient.list", "method": { - "fullName": "google.cloud.compute.v1.Routers.Get", + "fullName": "google.cloud.compute.v1.Routers.List", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "Get" + "shortName": "List" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.GetRouterRequest" + "type": "google.cloud.compute_v1.types.ListRoutersRequest" }, { "name": "project", @@ -53140,10 +54012,6 @@ "name": "region", "type": "str" }, - { - "name": "router", - "type": "str" - }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -53157,14 +54025,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.Router", - "shortName": "get" + "resultType": "google.cloud.compute_v1.services.routers.pagers.ListPager", + "shortName": "list" }, - "description": "Sample for Get", - "file": "compute_v1_generated_routers_get_sync.py", + "description": "Sample for List", + "file": "compute_v1_generated_routers_list_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_Get_sync", + "regionTag": "compute_v1_generated_Routers_List_sync", "segments": [ { "end": 53, @@ -53182,22 +54050,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 47, + "end": 46, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 50, - "start": 48, + "end": 49, + "start": 47, "type": "REQUEST_EXECUTION" }, { "end": 54, - "start": 51, + "start": 50, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_get_sync.py" + "title": "compute_v1_generated_routers_list_sync.py" }, { "canonical": true, @@ -53206,19 +54074,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.insert", + "fullName": "google.cloud.compute_v1.RoutersClient.patch_route_policy", "method": { - "fullName": "google.cloud.compute.v1.Routers.Insert", + "fullName": "google.cloud.compute.v1.Routers.PatchRoutePolicy", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "Insert" + "shortName": "PatchRoutePolicy" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.InsertRouterRequest" + "type": "google.cloud.compute_v1.types.PatchRoutePolicyRouterRequest" }, { "name": "project", @@ -53229,8 +54097,12 @@ "type": "str" }, { - "name": "router_resource", - "type": "google.cloud.compute_v1.types.Router" + "name": "router", + "type": "str" + }, + { + "name": "route_policy_resource", + "type": "google.cloud.compute_v1.types.RoutePolicy" }, { "name": "retry", @@ -53246,21 +54118,21 @@ } ], "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "insert" + "shortName": "patch_route_policy" }, - "description": "Sample for Insert", - "file": "compute_v1_generated_routers_insert_sync.py", + "description": "Sample for PatchRoutePolicy", + "file": "compute_v1_generated_routers_patch_route_policy_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_Insert_sync", + "regionTag": "compute_v1_generated_Routers_PatchRoutePolicy_sync", "segments": [ { - "end": 52, + "end": 53, "start": 27, "type": "FULL" }, { - "end": 52, + "end": 53, "start": 27, "type": "SHORT" }, @@ -53270,22 +54142,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 46, + "end": 47, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 49, - "start": 47, + "end": 50, + "start": 48, "type": "REQUEST_EXECUTION" }, { - "end": 53, - "start": 50, + "end": 54, + "start": 51, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_insert_sync.py" + "title": "compute_v1_generated_routers_patch_route_policy_sync.py" }, { "canonical": true, @@ -53294,19 +54166,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.list", + "fullName": "google.cloud.compute_v1.RoutersClient.patch", "method": { - "fullName": "google.cloud.compute.v1.Routers.List", + "fullName": "google.cloud.compute.v1.Routers.Patch", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "List" + "shortName": "Patch" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.ListRoutersRequest" + "type": "google.cloud.compute_v1.types.PatchRouterRequest" }, { "name": "project", @@ -53316,6 +54188,14 @@ "name": "region", "type": "str" }, + { + "name": "router", + "type": "str" + }, + { + "name": "router_resource", + "type": "google.cloud.compute_v1.types.Router" + }, { "name": "retry", "type": "google.api_core.retry.Retry" @@ -53329,14 +54209,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.services.routers.pagers.ListPager", - "shortName": "list" + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "patch" }, - "description": "Sample for List", - "file": "compute_v1_generated_routers_list_sync.py", + "description": "Sample for Patch", + "file": "compute_v1_generated_routers_patch_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_List_sync", + "regionTag": "compute_v1_generated_Routers_Patch_sync", "segments": [ { "end": 53, @@ -53354,22 +54234,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 46, + "end": 47, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 49, - "start": 47, + "end": 50, + "start": 48, "type": "REQUEST_EXECUTION" }, { "end": 54, - "start": 50, + "start": 51, "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_list_sync.py" + "title": "compute_v1_generated_routers_patch_sync.py" }, { "canonical": true, @@ -53378,19 +54258,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.patch", + "fullName": "google.cloud.compute_v1.RoutersClient.preview", "method": { - "fullName": "google.cloud.compute.v1.Routers.Patch", + "fullName": "google.cloud.compute.v1.Routers.Preview", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "Patch" + "shortName": "Preview" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.PatchRouterRequest" + "type": "google.cloud.compute_v1.types.PreviewRouterRequest" }, { "name": "project", @@ -53421,14 +54301,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.api_core.extended_operation.ExtendedOperation", - "shortName": "patch" + "resultType": "google.cloud.compute_v1.types.RoutersPreviewResponse", + "shortName": "preview" }, - "description": "Sample for Patch", - "file": "compute_v1_generated_routers_patch_sync.py", + "description": "Sample for Preview", + "file": "compute_v1_generated_routers_preview_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_Patch_sync", + "regionTag": "compute_v1_generated_Routers_Preview_sync", "segments": [ { "end": 53, @@ -53461,7 +54341,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_patch_sync.py" + "title": "compute_v1_generated_routers_preview_sync.py" }, { "canonical": true, @@ -53470,19 +54350,19 @@ "fullName": "google.cloud.compute_v1.RoutersClient", "shortName": "RoutersClient" }, - "fullName": "google.cloud.compute_v1.RoutersClient.preview", + "fullName": "google.cloud.compute_v1.RoutersClient.update_route_policy", "method": { - "fullName": "google.cloud.compute.v1.Routers.Preview", + "fullName": "google.cloud.compute.v1.Routers.UpdateRoutePolicy", "service": { "fullName": "google.cloud.compute.v1.Routers", "shortName": "Routers" }, - "shortName": "Preview" + "shortName": "UpdateRoutePolicy" }, "parameters": [ { "name": "request", - "type": "google.cloud.compute_v1.types.PreviewRouterRequest" + "type": "google.cloud.compute_v1.types.UpdateRoutePolicyRouterRequest" }, { "name": "project", @@ -53497,8 +54377,8 @@ "type": "str" }, { - "name": "router_resource", - "type": "google.cloud.compute_v1.types.Router" + "name": "route_policy_resource", + "type": "google.cloud.compute_v1.types.RoutePolicy" }, { "name": "retry", @@ -53513,14 +54393,14 @@ "type": "Sequence[Tuple[str, Union[str, bytes]]]" } ], - "resultType": "google.cloud.compute_v1.types.RoutersPreviewResponse", - "shortName": "preview" + "resultType": "google.api_core.extended_operation.ExtendedOperation", + "shortName": "update_route_policy" }, - "description": "Sample for Preview", - "file": "compute_v1_generated_routers_preview_sync.py", + "description": "Sample for UpdateRoutePolicy", + "file": "compute_v1_generated_routers_update_route_policy_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "compute_v1_generated_Routers_Preview_sync", + "regionTag": "compute_v1_generated_Routers_UpdateRoutePolicy_sync", "segments": [ { "end": 53, @@ -53553,7 +54433,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "compute_v1_generated_routers_preview_sync.py" + "title": "compute_v1_generated_routers_update_route_policy_sync.py" }, { "canonical": true, diff --git a/packages/google-cloud-compute/scripts/fixup_compute_v1_keywords.py b/packages/google-cloud-compute/scripts/fixup_compute_v1_keywords.py index d23baf82d5c1..c3936f054b3c 100644 --- a/packages/google-cloud-compute/scripts/fixup_compute_v1_keywords.py +++ b/packages/google-cloud-compute/scripts/fixup_compute_v1_keywords.py @@ -46,6 +46,7 @@ class computeCallTransformer(cst.CSTTransformer): 'add_instance': ('project', 'region', 'target_pool', 'target_pools_add_instance_request_resource', 'request_id', ), 'add_instances': ('instance_group', 'instance_groups_add_instances_request_resource', 'project', 'zone', 'request_id', ), 'add_nodes': ('node_group', 'node_groups_add_nodes_request_resource', 'project', 'zone', 'request_id', ), + 'add_packet_mirroring_rule': ('firewall_policy', 'firewall_policy_rule_resource', 'project', 'max_priority', 'min_priority', 'request_id', ), 'add_peering': ('network', 'networks_add_peering_request_resource', 'project', 'request_id', ), 'add_resource_policies': ('disk', 'disks_add_resource_policies_request_resource', 'project', 'zone', 'request_id', ), 'add_rule': ('firewall_policy', 'firewall_policy_rule_resource', 'request_id', ), @@ -65,6 +66,7 @@ class computeCallTransformer(cst.CSTTransformer): 'delete_instances': ('instance_group_manager', 'instance_group_managers_delete_instances_request_resource', 'project', 'zone', 'request_id', ), 'delete_nodes': ('node_group', 'node_groups_delete_nodes_request_resource', 'project', 'zone', 'request_id', ), 'delete_per_instance_configs': ('instance_group_manager', 'instance_group_managers_delete_per_instance_configs_req_resource', 'project', 'zone', ), + 'delete_route_policy': ('project', 'region', 'router', 'policy', 'request_id', ), 'delete_signed_url_key': ('backend_bucket', 'key_name', 'project', 'request_id', ), 'deprecate': ('deprecation_status_resource', 'image', 'project', 'request_id', ), 'detach_disk': ('device_name', 'instance', 'project', 'zone', 'request_id', ), @@ -85,6 +87,8 @@ class computeCallTransformer(cst.CSTTransformer): 'get_macsec_config': ('interconnect', 'project', ), 'get_nat_ip_info': ('project', 'region', 'router', 'nat_name', ), 'get_nat_mapping_info': ('project', 'region', 'router', 'filter', 'max_results', 'nat_name', 'order_by', 'page_token', 'return_partial_success', ), + 'get_packet_mirroring_rule': ('firewall_policy', 'project', 'priority', ), + 'get_route_policy': ('project', 'region', 'router', 'policy', ), 'get_router_status': ('project', 'region', 'router', ), 'get_rule': ('firewall_policy', 'priority', ), 'get_screenshot': ('instance', 'project', 'zone', ), @@ -98,6 +102,7 @@ class computeCallTransformer(cst.CSTTransformer): 'list': ('project', 'zone', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'list_associations': ('target_resource', ), 'list_available_features': ('project', 'region', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), + 'list_bgp_routes': ('project', 'region', 'router', 'address_family', 'destination_prefix', 'filter', 'max_results', 'order_by', 'page_token', 'peer', 'policy_applied', 'return_partial_success', 'route_type', ), 'list_disks': ('project', 'storage_pool', 'zone', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'list_errors': ('instance_group_manager', 'project', 'zone', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'list_instances': ('instance_group', 'instance_groups_list_instances_request_resource', 'project', 'zone', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), @@ -108,13 +113,16 @@ class computeCallTransformer(cst.CSTTransformer): 'list_per_instance_configs': ('instance_group_manager', 'project', 'zone', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'list_preconfigured_expression_sets': ('project', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'list_referrers': ('instance', 'project', 'zone', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), + 'list_route_policies': ('project', 'region', 'router', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'list_usable': ('project', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'list_xpn_hosts': ('project', 'projects_list_xpn_hosts_request_resource', 'filter', 'max_results', 'order_by', 'page_token', 'return_partial_success', ), 'move': ('address', 'project', 'region', 'region_addresses_move_request_resource', 'request_id', ), 'move_disk': ('disk_move_request_resource', 'project', 'request_id', ), 'move_instance': ('instance_move_request_resource', 'project', 'request_id', ), 'patch': ('autoscaler_resource', 'project', 'zone', 'autoscaler', 'request_id', ), + 'patch_packet_mirroring_rule': ('firewall_policy', 'firewall_policy_rule_resource', 'project', 'priority', 'request_id', ), 'patch_per_instance_configs': ('instance_group_manager', 'instance_group_managers_patch_per_instance_configs_req_resource', 'project', 'zone', 'request_id', ), + 'patch_route_policy': ('project', 'region', 'route_policy_resource', 'router', 'request_id', ), 'patch_rule': ('firewall_policy', 'firewall_policy_rule_resource', 'priority', 'request_id', ), 'perform_maintenance': ('instance', 'project', 'zone', 'request_id', ), 'preview': ('project', 'region', 'router', 'router_resource', ), @@ -123,6 +131,7 @@ class computeCallTransformer(cst.CSTTransformer): 'remove_health_check': ('project', 'region', 'target_pool', 'target_pools_remove_health_check_request_resource', 'request_id', ), 'remove_instance': ('project', 'region', 'target_pool', 'target_pools_remove_instance_request_resource', 'request_id', ), 'remove_instances': ('instance_group', 'instance_groups_remove_instances_request_resource', 'project', 'zone', 'request_id', ), + 'remove_packet_mirroring_rule': ('firewall_policy', 'project', 'priority', 'request_id', ), 'remove_peering': ('network', 'networks_remove_peering_request_resource', 'project', 'request_id', ), 'remove_resource_policies': ('disk', 'disks_remove_resource_policies_request_resource', 'project', 'zone', 'request_id', ), 'remove_rule': ('firewall_policy', 'priority', 'request_id', ), @@ -183,6 +192,7 @@ class computeCallTransformer(cst.CSTTransformer): 'update_network_interface': ('instance', 'network_interface', 'network_interface_resource', 'project', 'zone', 'request_id', ), 'update_peering': ('network', 'networks_update_peering_request_resource', 'project', 'request_id', ), 'update_per_instance_configs': ('instance_group_manager', 'instance_group_managers_update_per_instance_configs_req_resource', 'project', 'zone', 'request_id', ), + 'update_route_policy': ('project', 'region', 'route_policy_resource', 'router', 'request_id', ), 'update_shielded_instance_config': ('instance', 'project', 'shielded_instance_config_resource', 'zone', 'request_id', ), 'validate': ('project', 'region', 'region_url_maps_validate_request_resource', 'url_map', ), 'wait': ('operation', 'project', ), diff --git a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_firewall_policies.py b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_firewall_policies.py index a62bd4efc062..ee7bd776c721 100644 --- a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_firewall_policies.py +++ b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_firewall_policies.py @@ -7879,10 +7879,7 @@ def test_insert_rest_call_success(request_type): "id": 205, "kind": "kind_value", "name": "name_value", - "parent": "parent_value", - "region": "region_value", - "rule_tuple_count": 1737, - "rules": [ + "packet_mirroring_rules": [ { "action": "action_value", "description": "description_value", @@ -7946,6 +7943,10 @@ def test_insert_rest_call_success(request_type): "tls_inspect": True, } ], + "parent": "parent_value", + "region": "region_value", + "rule_tuple_count": 1737, + "rules": {}, "self_link": "self_link_value", "self_link_with_id": "self_link_with_id_value", "short_name": "short_name_value", @@ -8634,10 +8635,7 @@ def test_patch_rest_call_success(request_type): "id": 205, "kind": "kind_value", "name": "name_value", - "parent": "parent_value", - "region": "region_value", - "rule_tuple_count": 1737, - "rules": [ + "packet_mirroring_rules": [ { "action": "action_value", "description": "description_value", @@ -8701,6 +8699,10 @@ def test_patch_rest_call_success(request_type): "tls_inspect": True, } ], + "parent": "parent_value", + "region": "region_value", + "rule_tuple_count": 1737, + "rules": {}, "self_link": "self_link_value", "self_link_with_id": "self_link_with_id_value", "short_name": "short_name_value", diff --git a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_network_firewall_policies.py b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_network_firewall_policies.py index 6f35311e312b..6d23d6ee6bdb 100644 --- a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_network_firewall_policies.py +++ b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_network_firewall_policies.py @@ -1430,7 +1430,7 @@ def test_add_association_unary_rest_flattened_error(transport: str = "rest"): ) -def test_add_rule_rest_use_cached_wrapped_rpc(): +def test_add_packet_mirroring_rule_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -1444,17 +1444,22 @@ def test_add_rule_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.add_rule in client._transport._wrapped_methods + assert ( + client._transport.add_packet_mirroring_rule + in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.add_rule] = mock_rpc + client._transport._wrapped_methods[ + client._transport.add_packet_mirroring_rule + ] = mock_rpc request = {} - client.add_rule(request) + client.add_packet_mirroring_rule(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -1463,15 +1468,15 @@ def test_add_rule_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.add_rule(request) + client.add_packet_mirroring_rule(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_add_rule_rest_required_fields( - request_type=compute.AddRuleNetworkFirewallPolicyRequest, +def test_add_packet_mirroring_rule_rest_required_fields( + request_type=compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -1488,7 +1493,7 @@ def test_add_rule_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).add_rule._get_unset_required_fields(jsonified_request) + ).add_packet_mirroring_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -1498,7 +1503,7 @@ def test_add_rule_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).add_rule._get_unset_required_fields(jsonified_request) + ).add_packet_mirroring_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( @@ -1551,19 +1556,19 @@ def test_add_rule_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.add_rule(request) + response = client.add_packet_mirroring_rule(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_add_rule_rest_unset_required_fields(): +def test_add_packet_mirroring_rule_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.add_rule._get_unset_required_fields({}) + unset_fields = transport.add_packet_mirroring_rule._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( @@ -1582,7 +1587,7 @@ def test_add_rule_rest_unset_required_fields(): ) -def test_add_rule_rest_flattened(): +def test_add_packet_mirroring_rule_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -1616,20 +1621,20 @@ def test_add_rule_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.add_rule(**mock_args) + client.add_packet_mirroring_rule(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addRule" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addPacketMirroringRule" % client.transport._host, args[1], ) -def test_add_rule_rest_flattened_error(transport: str = "rest"): +def test_add_packet_mirroring_rule_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -1638,8 +1643,8 @@ def test_add_rule_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.add_rule( - compute.AddRuleNetworkFirewallPolicyRequest(), + client.add_packet_mirroring_rule( + compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", firewall_policy_rule_resource=compute.FirewallPolicyRule( @@ -1648,7 +1653,7 @@ def test_add_rule_rest_flattened_error(transport: str = "rest"): ) -def test_add_rule_unary_rest_use_cached_wrapped_rpc(): +def test_add_packet_mirroring_rule_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -1662,17 +1667,22 @@ def test_add_rule_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.add_rule in client._transport._wrapped_methods + assert ( + client._transport.add_packet_mirroring_rule + in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.add_rule] = mock_rpc + client._transport._wrapped_methods[ + client._transport.add_packet_mirroring_rule + ] = mock_rpc request = {} - client.add_rule_unary(request) + client.add_packet_mirroring_rule_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -1681,15 +1691,15 @@ def test_add_rule_unary_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.add_rule_unary(request) + client.add_packet_mirroring_rule_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_add_rule_unary_rest_required_fields( - request_type=compute.AddRuleNetworkFirewallPolicyRequest, +def test_add_packet_mirroring_rule_unary_rest_required_fields( + request_type=compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -1706,7 +1716,7 @@ def test_add_rule_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).add_rule._get_unset_required_fields(jsonified_request) + ).add_packet_mirroring_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -1716,7 +1726,7 @@ def test_add_rule_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).add_rule._get_unset_required_fields(jsonified_request) + ).add_packet_mirroring_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( @@ -1769,19 +1779,19 @@ def test_add_rule_unary_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.add_rule_unary(request) + response = client.add_packet_mirroring_rule_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_add_rule_unary_rest_unset_required_fields(): +def test_add_packet_mirroring_rule_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.add_rule._get_unset_required_fields({}) + unset_fields = transport.add_packet_mirroring_rule._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( @@ -1800,7 +1810,7 @@ def test_add_rule_unary_rest_unset_required_fields(): ) -def test_add_rule_unary_rest_flattened(): +def test_add_packet_mirroring_rule_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -1834,20 +1844,20 @@ def test_add_rule_unary_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.add_rule_unary(**mock_args) + client.add_packet_mirroring_rule_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addRule" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addPacketMirroringRule" % client.transport._host, args[1], ) -def test_add_rule_unary_rest_flattened_error(transport: str = "rest"): +def test_add_packet_mirroring_rule_unary_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -1856,8 +1866,8 @@ def test_add_rule_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.add_rule_unary( - compute.AddRuleNetworkFirewallPolicyRequest(), + client.add_packet_mirroring_rule_unary( + compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", firewall_policy_rule_resource=compute.FirewallPolicyRule( @@ -1866,7 +1876,7 @@ def test_add_rule_unary_rest_flattened_error(transport: str = "rest"): ) -def test_aggregated_list_rest_use_cached_wrapped_rpc(): +def test_add_rule_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -1880,34 +1890,39 @@ def test_aggregated_list_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.aggregated_list in client._transport._wrapped_methods + assert client._transport.add_rule in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.aggregated_list] = mock_rpc + client._transport._wrapped_methods[client._transport.add_rule] = mock_rpc request = {} - client.aggregated_list(request) + client.add_rule(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.aggregated_list(request) + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.add_rule(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_aggregated_list_rest_required_fields( - request_type=compute.AggregatedListNetworkFirewallPoliciesRequest, +def test_add_rule_rest_required_fields( + request_type=compute.AddRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} + request_init["firewall_policy"] = "" request_init["project"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) @@ -1919,31 +1934,30 @@ def test_aggregated_list_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).aggregated_list._get_unset_required_fields(jsonified_request) + ).add_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present + jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).aggregated_list._get_unset_required_fields(jsonified_request) + ).add_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( - "filter", - "include_all_scopes", - "max_results", - "order_by", - "page_token", - "return_partial_success", - "service_project_number", + "max_priority", + "min_priority", + "request_id", ) ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" @@ -1954,7 +1968,7 @@ def test_aggregated_list_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.NetworkFirewallPolicyAggregatedList() + return_value = compute.Operation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -1966,52 +1980,55 @@ def test_aggregated_list_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "get", + "method": "post", "query_params": pb_request, } + transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.NetworkFirewallPolicyAggregatedList.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.aggregated_list(request) + response = client.add_rule(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_aggregated_list_rest_unset_required_fields(): +def test_add_rule_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.aggregated_list._get_unset_required_fields({}) + unset_fields = transport.add_rule._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( - "filter", - "includeAllScopes", - "maxResults", - "orderBy", - "pageToken", - "returnPartialSuccess", - "serviceProjectNumber", + "maxPriority", + "minPriority", + "requestId", + ) + ) + & set( + ( + "firewallPolicy", + "firewallPolicyRuleResource", + "project", ) ) - & set(("project",)) ) -def test_aggregated_list_rest_flattened(): +def test_add_rule_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2020,14 +2037,18 @@ def test_aggregated_list_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.NetworkFirewallPolicyAggregatedList() + return_value = compute.Operation() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1"} + sample_request = {"project": "sample1", "firewall_policy": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", + firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) mock_args.update(sample_request) @@ -2035,26 +2056,26 @@ def test_aggregated_list_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.NetworkFirewallPolicyAggregatedList.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.aggregated_list(**mock_args) + client.add_rule(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/aggregated/firewallPolicies" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addRule" % client.transport._host, args[1], ) -def test_aggregated_list_rest_flattened_error(transport: str = "rest"): +def test_add_rule_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2063,88 +2084,17 @@ def test_aggregated_list_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.aggregated_list( - compute.AggregatedListNetworkFirewallPoliciesRequest(), + client.add_rule( + compute.AddRuleNetworkFirewallPolicyRequest(), project="project_value", - ) - - -def test_aggregated_list_rest_pager(transport: str = "rest"): - client = NetworkFirewallPoliciesClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Mock the http request call within the method and fake a response. - with mock.patch.object(Session, "request") as req: - # TODO(kbandes): remove this mock unless there's a good reason for it. - # with mock.patch.object(path_template, 'transcode') as transcode: - # Set the response as a series of pages - response = ( - compute.NetworkFirewallPolicyAggregatedList( - items={ - "a": compute.FirewallPoliciesScopedList(), - "b": compute.FirewallPoliciesScopedList(), - "c": compute.FirewallPoliciesScopedList(), - }, - next_page_token="abc", - ), - compute.NetworkFirewallPolicyAggregatedList( - items={}, - next_page_token="def", - ), - compute.NetworkFirewallPolicyAggregatedList( - items={ - "g": compute.FirewallPoliciesScopedList(), - }, - next_page_token="ghi", - ), - compute.NetworkFirewallPolicyAggregatedList( - items={ - "h": compute.FirewallPoliciesScopedList(), - "i": compute.FirewallPoliciesScopedList(), - }, + firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" ), ) - # Two responses for two calls - response = response + response - - # Wrap the values into proper Response objs - response = tuple( - compute.NetworkFirewallPolicyAggregatedList.to_json(x) for x in response - ) - return_values = tuple(Response() for i in response) - for return_val, response_val in zip(return_values, response): - return_val._content = response_val.encode("UTF-8") - return_val.status_code = 200 - req.side_effect = return_values - - sample_request = {"project": "sample1"} - - pager = client.aggregated_list(request=sample_request) - - assert isinstance(pager.get("a"), compute.FirewallPoliciesScopedList) - assert pager.get("h") is None - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, tuple) for i in results) - for result in results: - assert isinstance(result, tuple) - assert tuple(type(t) for t in result) == ( - str, - compute.FirewallPoliciesScopedList, - ) - - assert pager.get("a") is None - assert isinstance(pager.get("h"), compute.FirewallPoliciesScopedList) - - pages = list(client.aggregated_list(request=sample_request).pages) - for page_, token in zip(pages, ["abc", "def", "ghi", ""]): - assert page_.raw_page.next_page_token == token -def test_clone_rules_rest_use_cached_wrapped_rpc(): +def test_add_rule_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2158,17 +2108,17 @@ def test_clone_rules_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.clone_rules in client._transport._wrapped_methods + assert client._transport.add_rule in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.clone_rules] = mock_rpc + client._transport._wrapped_methods[client._transport.add_rule] = mock_rpc request = {} - client.clone_rules(request) + client.add_rule_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -2177,15 +2127,15 @@ def test_clone_rules_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.clone_rules(request) + client.add_rule_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_clone_rules_rest_required_fields( - request_type=compute.CloneRulesNetworkFirewallPolicyRequest, +def test_add_rule_unary_rest_required_fields( + request_type=compute.AddRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -2202,7 +2152,7 @@ def test_clone_rules_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).clone_rules._get_unset_required_fields(jsonified_request) + ).add_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -2212,12 +2162,13 @@ def test_clone_rules_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).clone_rules._get_unset_required_fields(jsonified_request) + ).add_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( + "max_priority", + "min_priority", "request_id", - "source_firewall_policy", ) ) jsonified_request.update(unset_fields) @@ -2250,6 +2201,7 @@ def test_clone_rules_rest_required_fields( "method": "post", "query_params": pb_request, } + transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() @@ -2263,36 +2215,38 @@ def test_clone_rules_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.clone_rules(request) + response = client.add_rule_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_clone_rules_rest_unset_required_fields(): +def test_add_rule_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.clone_rules._get_unset_required_fields({}) + unset_fields = transport.add_rule._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( + "maxPriority", + "minPriority", "requestId", - "sourceFirewallPolicy", ) ) & set( ( "firewallPolicy", + "firewallPolicyRuleResource", "project", ) ) ) -def test_clone_rules_rest_flattened(): +def test_add_rule_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2310,6 +2264,9 @@ def test_clone_rules_rest_flattened(): mock_args = dict( project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) mock_args.update(sample_request) @@ -2323,20 +2280,20 @@ def test_clone_rules_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.clone_rules(**mock_args) + client.add_rule_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/cloneRules" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/addRule" % client.transport._host, args[1], ) -def test_clone_rules_rest_flattened_error(transport: str = "rest"): +def test_add_rule_unary_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2345,14 +2302,17 @@ def test_clone_rules_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.clone_rules( - compute.CloneRulesNetworkFirewallPolicyRequest(), - project="project_value", + client.add_rule_unary( + compute.AddRuleNetworkFirewallPolicyRequest(), + project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) -def test_clone_rules_unary_rest_use_cached_wrapped_rpc(): +def test_aggregated_list_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2366,39 +2326,34 @@ def test_clone_rules_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.clone_rules in client._transport._wrapped_methods + assert client._transport.aggregated_list in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.clone_rules] = mock_rpc + client._transport._wrapped_methods[client._transport.aggregated_list] = mock_rpc request = {} - client.clone_rules_unary(request) + client.aggregated_list(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.clone_rules_unary(request) + client.aggregated_list(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_clone_rules_unary_rest_required_fields( - request_type=compute.CloneRulesNetworkFirewallPolicyRequest, +def test_aggregated_list_rest_required_fields( + request_type=compute.AggregatedListNetworkFirewallPoliciesRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} - request_init["firewall_policy"] = "" request_init["project"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) @@ -2410,29 +2365,31 @@ def test_clone_rules_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).clone_rules._get_unset_required_fields(jsonified_request) + ).aggregated_list._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present - jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).clone_rules._get_unset_required_fields(jsonified_request) + ).aggregated_list._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( - "request_id", - "source_firewall_policy", + "filter", + "include_all_scopes", + "max_results", + "order_by", + "page_token", + "return_partial_success", + "service_project_number", ) ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone - assert "firewallPolicy" in jsonified_request - assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" @@ -2443,7 +2400,7 @@ def test_clone_rules_unary_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.NetworkFirewallPolicyAggregatedList() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -2455,7 +2412,7 @@ def test_clone_rules_unary_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "get", "query_params": pb_request, } transcode.return_value = transcode_result @@ -2464,43 +2421,43 @@ def test_clone_rules_unary_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.NetworkFirewallPolicyAggregatedList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.clone_rules_unary(request) + response = client.aggregated_list(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_clone_rules_unary_rest_unset_required_fields(): +def test_aggregated_list_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.clone_rules._get_unset_required_fields({}) + unset_fields = transport.aggregated_list._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( - "requestId", - "sourceFirewallPolicy", - ) - ) - & set( - ( - "firewallPolicy", - "project", + "filter", + "includeAllScopes", + "maxResults", + "orderBy", + "pageToken", + "returnPartialSuccess", + "serviceProjectNumber", ) ) + & set(("project",)) ) -def test_clone_rules_unary_rest_flattened(): +def test_aggregated_list_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2509,15 +2466,14 @@ def test_clone_rules_unary_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.NetworkFirewallPolicyAggregatedList() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "firewall_policy": "sample2"} + sample_request = {"project": "sample1"} # get truthy value for each flattened field mock_args = dict( project="project_value", - firewall_policy="firewall_policy_value", ) mock_args.update(sample_request) @@ -2525,26 +2481,26 @@ def test_clone_rules_unary_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.NetworkFirewallPolicyAggregatedList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.clone_rules_unary(**mock_args) + client.aggregated_list(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/cloneRules" + "%s/compute/v1/projects/{project}/aggregated/firewallPolicies" % client.transport._host, args[1], ) -def test_clone_rules_unary_rest_flattened_error(transport: str = "rest"): +def test_aggregated_list_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2553,14 +2509,88 @@ def test_clone_rules_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.clone_rules_unary( - compute.CloneRulesNetworkFirewallPolicyRequest(), + client.aggregated_list( + compute.AggregatedListNetworkFirewallPoliciesRequest(), project="project_value", - firewall_policy="firewall_policy_value", ) -def test_delete_rest_use_cached_wrapped_rpc(): +def test_aggregated_list_rest_pager(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # TODO(kbandes): remove this mock unless there's a good reason for it. + # with mock.patch.object(path_template, 'transcode') as transcode: + # Set the response as a series of pages + response = ( + compute.NetworkFirewallPolicyAggregatedList( + items={ + "a": compute.FirewallPoliciesScopedList(), + "b": compute.FirewallPoliciesScopedList(), + "c": compute.FirewallPoliciesScopedList(), + }, + next_page_token="abc", + ), + compute.NetworkFirewallPolicyAggregatedList( + items={}, + next_page_token="def", + ), + compute.NetworkFirewallPolicyAggregatedList( + items={ + "g": compute.FirewallPoliciesScopedList(), + }, + next_page_token="ghi", + ), + compute.NetworkFirewallPolicyAggregatedList( + items={ + "h": compute.FirewallPoliciesScopedList(), + "i": compute.FirewallPoliciesScopedList(), + }, + ), + ) + # Two responses for two calls + response = response + response + + # Wrap the values into proper Response objs + response = tuple( + compute.NetworkFirewallPolicyAggregatedList.to_json(x) for x in response + ) + return_values = tuple(Response() for i in response) + for return_val, response_val in zip(return_values, response): + return_val._content = response_val.encode("UTF-8") + return_val.status_code = 200 + req.side_effect = return_values + + sample_request = {"project": "sample1"} + + pager = client.aggregated_list(request=sample_request) + + assert isinstance(pager.get("a"), compute.FirewallPoliciesScopedList) + assert pager.get("h") is None + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, tuple) for i in results) + for result in results: + assert isinstance(result, tuple) + assert tuple(type(t) for t in result) == ( + str, + compute.FirewallPoliciesScopedList, + ) + + assert pager.get("a") is None + assert isinstance(pager.get("h"), compute.FirewallPoliciesScopedList) + + pages = list(client.aggregated_list(request=sample_request).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +def test_clone_rules_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2574,17 +2604,17 @@ def test_delete_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.delete in client._transport._wrapped_methods + assert client._transport.clone_rules in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.delete] = mock_rpc + client._transport._wrapped_methods[client._transport.clone_rules] = mock_rpc request = {} - client.delete(request) + client.clone_rules(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -2593,15 +2623,15 @@ def test_delete_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.delete(request) + client.clone_rules(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_delete_rest_required_fields( - request_type=compute.DeleteNetworkFirewallPolicyRequest, +def test_clone_rules_rest_required_fields( + request_type=compute.CloneRulesNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -2618,7 +2648,7 @@ def test_delete_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).delete._get_unset_required_fields(jsonified_request) + ).clone_rules._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -2628,9 +2658,14 @@ def test_delete_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).delete._get_unset_required_fields(jsonified_request) + ).clone_rules._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set( + ( + "request_id", + "source_firewall_policy", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -2658,7 +2693,7 @@ def test_delete_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "delete", + "method": "post", "query_params": pb_request, } transcode.return_value = transcode_result @@ -2674,21 +2709,26 @@ def test_delete_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.delete(request) + response = client.clone_rules(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_delete_rest_unset_required_fields(): +def test_clone_rules_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.delete._get_unset_required_fields({}) + unset_fields = transport.clone_rules._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set( + ( + "requestId", + "sourceFirewallPolicy", + ) + ) & set( ( "firewallPolicy", @@ -2698,7 +2738,7 @@ def test_delete_rest_unset_required_fields(): ) -def test_delete_rest_flattened(): +def test_clone_rules_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2729,20 +2769,20 @@ def test_delete_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.delete(**mock_args) + client.clone_rules(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/cloneRules" % client.transport._host, args[1], ) -def test_delete_rest_flattened_error(transport: str = "rest"): +def test_clone_rules_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2751,14 +2791,14 @@ def test_delete_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.delete( - compute.DeleteNetworkFirewallPolicyRequest(), + client.clone_rules( + compute.CloneRulesNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", ) -def test_delete_unary_rest_use_cached_wrapped_rpc(): +def test_clone_rules_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2772,17 +2812,17 @@ def test_delete_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.delete in client._transport._wrapped_methods + assert client._transport.clone_rules in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.delete] = mock_rpc + client._transport._wrapped_methods[client._transport.clone_rules] = mock_rpc request = {} - client.delete_unary(request) + client.clone_rules_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -2791,15 +2831,15 @@ def test_delete_unary_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.delete_unary(request) + client.clone_rules_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_delete_unary_rest_required_fields( - request_type=compute.DeleteNetworkFirewallPolicyRequest, +def test_clone_rules_unary_rest_required_fields( + request_type=compute.CloneRulesNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -2816,7 +2856,7 @@ def test_delete_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).delete._get_unset_required_fields(jsonified_request) + ).clone_rules._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -2826,9 +2866,14 @@ def test_delete_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).delete._get_unset_required_fields(jsonified_request) + ).clone_rules._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set( + ( + "request_id", + "source_firewall_policy", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -2856,7 +2901,7 @@ def test_delete_unary_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "delete", + "method": "post", "query_params": pb_request, } transcode.return_value = transcode_result @@ -2872,21 +2917,26 @@ def test_delete_unary_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.delete_unary(request) + response = client.clone_rules_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_delete_unary_rest_unset_required_fields(): +def test_clone_rules_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.delete._get_unset_required_fields({}) + unset_fields = transport.clone_rules._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set( + ( + "requestId", + "sourceFirewallPolicy", + ) + ) & set( ( "firewallPolicy", @@ -2896,7 +2946,7 @@ def test_delete_unary_rest_unset_required_fields(): ) -def test_delete_unary_rest_flattened(): +def test_clone_rules_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2927,20 +2977,20 @@ def test_delete_unary_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.delete_unary(**mock_args) + client.clone_rules_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/cloneRules" % client.transport._host, args[1], ) -def test_delete_unary_rest_flattened_error(transport: str = "rest"): +def test_clone_rules_unary_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2949,14 +2999,14 @@ def test_delete_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.delete_unary( - compute.DeleteNetworkFirewallPolicyRequest(), + client.clone_rules_unary( + compute.CloneRulesNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", ) -def test_get_rest_use_cached_wrapped_rpc(): +def test_delete_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2970,29 +3020,35 @@ def test_get_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.get in client._transport._wrapped_methods + assert client._transport.delete in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.get] = mock_rpc + client._transport._wrapped_methods[client._transport.delete] = mock_rpc request = {} - client.get(request) + client.delete(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get(request) + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.delete(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_rest_required_fields(request_type=compute.GetNetworkFirewallPolicyRequest): +def test_delete_rest_required_fields( + request_type=compute.DeleteNetworkFirewallPolicyRequest, +): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} @@ -3008,7 +3064,7 @@ def test_get_rest_required_fields(request_type=compute.GetNetworkFirewallPolicyR unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get._get_unset_required_fields(jsonified_request) + ).delete._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -3018,7 +3074,9 @@ def test_get_rest_required_fields(request_type=compute.GetNetworkFirewallPolicyR unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get._get_unset_required_fields(jsonified_request) + ).delete._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -3034,7 +3092,7 @@ def test_get_rest_required_fields(request_type=compute.GetNetworkFirewallPolicyR request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicy() + return_value = compute.Operation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3046,7 +3104,7 @@ def test_get_rest_required_fields(request_type=compute.GetNetworkFirewallPolicyR pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "get", + "method": "delete", "query_params": pb_request, } transcode.return_value = transcode_result @@ -3055,28 +3113,28 @@ def test_get_rest_required_fields(request_type=compute.GetNetworkFirewallPolicyR response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicy.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get(request) + response = client.delete(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_rest_unset_required_fields(): +def test_delete_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get._get_unset_required_fields({}) + unset_fields = transport.delete._get_unset_required_fields({}) assert set(unset_fields) == ( - set(()) + set(("requestId",)) & set( ( "firewallPolicy", @@ -3086,7 +3144,7 @@ def test_get_rest_unset_required_fields(): ) -def test_get_rest_flattened(): +def test_delete_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3095,7 +3153,7 @@ def test_get_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicy() + return_value = compute.Operation() # get arguments that satisfy an http rule for this method sample_request = {"project": "sample1", "firewall_policy": "sample2"} @@ -3111,13 +3169,13 @@ def test_get_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicy.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get(**mock_args) + client.delete(**mock_args) # Establish that the underlying call was made with the expected # request object values. @@ -3130,7 +3188,7 @@ def test_get_rest_flattened(): ) -def test_get_rest_flattened_error(transport: str = "rest"): +def test_delete_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3139,14 +3197,14 @@ def test_get_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get( - compute.GetNetworkFirewallPolicyRequest(), + client.delete( + compute.DeleteNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", ) -def test_get_association_rest_use_cached_wrapped_rpc(): +def test_delete_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3160,30 +3218,34 @@ def test_get_association_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.get_association in client._transport._wrapped_methods + assert client._transport.delete in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.get_association] = mock_rpc + client._transport._wrapped_methods[client._transport.delete] = mock_rpc request = {} - client.get_association(request) + client.delete_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get_association(request) + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.delete_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_association_rest_required_fields( - request_type=compute.GetAssociationNetworkFirewallPolicyRequest, +def test_delete_unary_rest_required_fields( + request_type=compute.DeleteNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -3200,7 +3262,7 @@ def test_get_association_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_association._get_unset_required_fields(jsonified_request) + ).delete._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -3210,9 +3272,9 @@ def test_get_association_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_association._get_unset_required_fields(jsonified_request) + ).delete._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("name",)) + assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -3228,7 +3290,7 @@ def test_get_association_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyAssociation() + return_value = compute.Operation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3240,7 +3302,7 @@ def test_get_association_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "get", + "method": "delete", "query_params": pb_request, } transcode.return_value = transcode_result @@ -3249,28 +3311,28 @@ def test_get_association_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyAssociation.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_association(request) + response = client.delete_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_association_rest_unset_required_fields(): +def test_delete_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get_association._get_unset_required_fields({}) + unset_fields = transport.delete._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("name",)) + set(("requestId",)) & set( ( "firewallPolicy", @@ -3280,7 +3342,7 @@ def test_get_association_rest_unset_required_fields(): ) -def test_get_association_rest_flattened(): +def test_delete_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3289,7 +3351,7 @@ def test_get_association_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyAssociation() + return_value = compute.Operation() # get arguments that satisfy an http rule for this method sample_request = {"project": "sample1", "firewall_policy": "sample2"} @@ -3305,26 +3367,26 @@ def test_get_association_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyAssociation.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_association(**mock_args) + client.delete_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getAssociation" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" % client.transport._host, args[1], ) -def test_get_association_rest_flattened_error(transport: str = "rest"): +def test_delete_unary_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3333,14 +3395,14 @@ def test_get_association_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get_association( - compute.GetAssociationNetworkFirewallPolicyRequest(), + client.delete_unary( + compute.DeleteNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", ) -def test_get_iam_policy_rest_use_cached_wrapped_rpc(): +def test_get_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3354,36 +3416,34 @@ def test_get_iam_policy_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.get_iam_policy in client._transport._wrapped_methods + assert client._transport.get in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc + client._transport._wrapped_methods[client._transport.get] = mock_rpc request = {} - client.get_iam_policy(request) + client.get(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get_iam_policy(request) + client.get(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_iam_policy_rest_required_fields( - request_type=compute.GetIamPolicyNetworkFirewallPolicyRequest, -): +def test_get_rest_required_fields(request_type=compute.GetNetworkFirewallPolicyRequest): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} + request_init["firewall_policy"] = "" request_init["project"] = "" - request_init["resource"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -3394,26 +3454,24 @@ def test_get_iam_policy_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_iam_policy._get_unset_required_fields(jsonified_request) + ).get._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present + jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" - jsonified_request["resource"] = "resource_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_iam_policy._get_unset_required_fields(jsonified_request) - # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("options_requested_policy_version",)) + ).get._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" - assert "resource" in jsonified_request - assert jsonified_request["resource"] == "resource_value" client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), @@ -3422,7 +3480,7 @@ def test_get_iam_policy_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Policy() + return_value = compute.FirewallPolicy() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3443,38 +3501,38 @@ def test_get_iam_policy_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Policy.pb(return_value) + return_value = compute.FirewallPolicy.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_iam_policy(request) + response = client.get(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_iam_policy_rest_unset_required_fields(): +def test_get_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get_iam_policy._get_unset_required_fields({}) + unset_fields = transport.get._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("optionsRequestedPolicyVersion",)) + set(()) & set( ( + "firewallPolicy", "project", - "resource", ) ) ) -def test_get_iam_policy_rest_flattened(): +def test_get_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3483,15 +3541,15 @@ def test_get_iam_policy_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Policy() + return_value = compute.FirewallPolicy() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "resource": "sample2"} + sample_request = {"project": "sample1", "firewall_policy": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", - resource="resource_value", + firewall_policy="firewall_policy_value", ) mock_args.update(sample_request) @@ -3499,26 +3557,26 @@ def test_get_iam_policy_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Policy.pb(return_value) + return_value = compute.FirewallPolicy.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_iam_policy(**mock_args) + client.get(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{resource}/getIamPolicy" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" % client.transport._host, args[1], ) -def test_get_iam_policy_rest_flattened_error(transport: str = "rest"): +def test_get_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3527,14 +3585,14 @@ def test_get_iam_policy_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get_iam_policy( - compute.GetIamPolicyNetworkFirewallPolicyRequest(), + client.get( + compute.GetNetworkFirewallPolicyRequest(), project="project_value", - resource="resource_value", + firewall_policy="firewall_policy_value", ) -def test_get_rule_rest_use_cached_wrapped_rpc(): +def test_get_association_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3548,30 +3606,30 @@ def test_get_rule_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.get_rule in client._transport._wrapped_methods + assert client._transport.get_association in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.get_rule] = mock_rpc + client._transport._wrapped_methods[client._transport.get_association] = mock_rpc request = {} - client.get_rule(request) + client.get_association(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get_rule(request) + client.get_association(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_rule_rest_required_fields( - request_type=compute.GetRuleNetworkFirewallPolicyRequest, +def test_get_association_rest_required_fields( + request_type=compute.GetAssociationNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -3588,7 +3646,7 @@ def test_get_rule_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_rule._get_unset_required_fields(jsonified_request) + ).get_association._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -3598,9 +3656,9 @@ def test_get_rule_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_rule._get_unset_required_fields(jsonified_request) + ).get_association._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("priority",)) + assert not set(unset_fields) - set(("name",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -3616,7 +3674,7 @@ def test_get_rule_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyRule() + return_value = compute.FirewallPolicyAssociation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3637,28 +3695,28 @@ def test_get_rule_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyRule.pb(return_value) + return_value = compute.FirewallPolicyAssociation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_rule(request) + response = client.get_association(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_rule_rest_unset_required_fields(): +def test_get_association_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get_rule._get_unset_required_fields({}) + unset_fields = transport.get_association._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("priority",)) + set(("name",)) & set( ( "firewallPolicy", @@ -3668,7 +3726,7 @@ def test_get_rule_rest_unset_required_fields(): ) -def test_get_rule_rest_flattened(): +def test_get_association_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3677,7 +3735,7 @@ def test_get_rule_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyRule() + return_value = compute.FirewallPolicyAssociation() # get arguments that satisfy an http rule for this method sample_request = {"project": "sample1", "firewall_policy": "sample2"} @@ -3693,26 +3751,26 @@ def test_get_rule_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyRule.pb(return_value) + return_value = compute.FirewallPolicyAssociation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_rule(**mock_args) + client.get_association(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getRule" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getAssociation" % client.transport._host, args[1], ) -def test_get_rule_rest_flattened_error(transport: str = "rest"): +def test_get_association_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3721,14 +3779,14 @@ def test_get_rule_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get_rule( - compute.GetRuleNetworkFirewallPolicyRequest(), + client.get_association( + compute.GetAssociationNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", ) -def test_insert_rest_use_cached_wrapped_rpc(): +def test_get_iam_policy_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3742,39 +3800,36 @@ def test_insert_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.insert in client._transport._wrapped_methods + assert client._transport.get_iam_policy in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.insert] = mock_rpc + client._transport._wrapped_methods[client._transport.get_iam_policy] = mock_rpc request = {} - client.insert(request) + client.get_iam_policy(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.insert(request) + client.get_iam_policy(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_insert_rest_required_fields( - request_type=compute.InsertNetworkFirewallPolicyRequest, +def test_get_iam_policy_rest_required_fields( + request_type=compute.GetIamPolicyNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} request_init["project"] = "" + request_init["resource"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -3785,23 +3840,26 @@ def test_insert_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_iam_policy._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present jsonified_request["project"] = "project_value" + jsonified_request["resource"] = "resource_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_iam_policy._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set(("options_requested_policy_version",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" + assert "resource" in jsonified_request + assert jsonified_request["resource"] == "resource_value" client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), @@ -3810,7 +3868,7 @@ def test_insert_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.Policy() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3822,48 +3880,47 @@ def test_insert_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.Policy.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.insert(request) + response = client.get_iam_policy(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_insert_rest_unset_required_fields(): +def test_get_iam_policy_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.insert._get_unset_required_fields({}) + unset_fields = transport.get_iam_policy._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set(("optionsRequestedPolicyVersion",)) & set( ( - "firewallPolicyResource", "project", + "resource", ) ) ) -def test_insert_rest_flattened(): +def test_get_iam_policy_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3872,21 +3929,15 @@ def test_insert_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.Policy() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1"} + sample_request = {"project": "sample1", "resource": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", - firewall_policy_resource=compute.FirewallPolicy( - associations=[ - compute.FirewallPolicyAssociation( - attachment_target="attachment_target_value" - ) - ] - ), + resource="resource_value", ) mock_args.update(sample_request) @@ -3894,26 +3945,26 @@ def test_insert_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.Policy.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.insert(**mock_args) + client.get_iam_policy(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{resource}/getIamPolicy" % client.transport._host, args[1], ) -def test_insert_rest_flattened_error(transport: str = "rest"): +def test_get_iam_policy_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3922,20 +3973,14 @@ def test_insert_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.insert( - compute.InsertNetworkFirewallPolicyRequest(), + client.get_iam_policy( + compute.GetIamPolicyNetworkFirewallPolicyRequest(), project="project_value", - firewall_policy_resource=compute.FirewallPolicy( - associations=[ - compute.FirewallPolicyAssociation( - attachment_target="attachment_target_value" - ) - ] - ), + resource="resource_value", ) -def test_insert_unary_rest_use_cached_wrapped_rpc(): +def test_get_packet_mirroring_rule_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3949,38 +3994,40 @@ def test_insert_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.insert in client._transport._wrapped_methods + assert ( + client._transport.get_packet_mirroring_rule + in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.insert] = mock_rpc + client._transport._wrapped_methods[ + client._transport.get_packet_mirroring_rule + ] = mock_rpc request = {} - client.insert_unary(request) + client.get_packet_mirroring_rule(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.insert_unary(request) + client.get_packet_mirroring_rule(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_insert_unary_rest_required_fields( - request_type=compute.InsertNetworkFirewallPolicyRequest, +def test_get_packet_mirroring_rule_rest_required_fields( + request_type=compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} + request_init["firewall_policy"] = "" request_init["project"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) @@ -3992,21 +4039,24 @@ def test_insert_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_packet_mirroring_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present + jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_packet_mirroring_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set(("priority",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" @@ -4017,7 +4067,7 @@ def test_insert_unary_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.FirewallPolicyRule() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -4029,48 +4079,47 @@ def test_insert_unary_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.FirewallPolicyRule.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.insert_unary(request) + response = client.get_packet_mirroring_rule(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_insert_unary_rest_unset_required_fields(): +def test_get_packet_mirroring_rule_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.insert._get_unset_required_fields({}) + unset_fields = transport.get_packet_mirroring_rule._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set(("priority",)) & set( ( - "firewallPolicyResource", + "firewallPolicy", "project", ) ) ) -def test_insert_unary_rest_flattened(): +def test_get_packet_mirroring_rule_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -4079,21 +4128,15 @@ def test_insert_unary_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.FirewallPolicyRule() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1"} + sample_request = {"project": "sample1", "firewall_policy": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", - firewall_policy_resource=compute.FirewallPolicy( - associations=[ - compute.FirewallPolicyAssociation( - attachment_target="attachment_target_value" - ) - ] - ), + firewall_policy="firewall_policy_value", ) mock_args.update(sample_request) @@ -4101,26 +4144,26 @@ def test_insert_unary_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.FirewallPolicyRule.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.insert_unary(**mock_args) + client.get_packet_mirroring_rule(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getPacketMirroringRule" % client.transport._host, args[1], ) -def test_insert_unary_rest_flattened_error(transport: str = "rest"): +def test_get_packet_mirroring_rule_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -4129,20 +4172,14 @@ def test_insert_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.insert_unary( - compute.InsertNetworkFirewallPolicyRequest(), + client.get_packet_mirroring_rule( + compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest(), project="project_value", - firewall_policy_resource=compute.FirewallPolicy( - associations=[ - compute.FirewallPolicyAssociation( - attachment_target="attachment_target_value" - ) - ] - ), + firewall_policy="firewall_policy_value", ) -def test_list_rest_use_cached_wrapped_rpc(): +def test_get_rule_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -4156,34 +4193,35 @@ def test_list_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.list in client._transport._wrapped_methods + assert client._transport.get_rule in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.list] = mock_rpc + client._transport._wrapped_methods[client._transport.get_rule] = mock_rpc request = {} - client.list(request) + client.get_rule(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.list(request) + client.get_rule(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_list_rest_required_fields( - request_type=compute.ListNetworkFirewallPoliciesRequest, +def test_get_rule_rest_required_fields( + request_type=compute.GetRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} + request_init["firewall_policy"] = "" request_init["project"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) @@ -4195,29 +4233,24 @@ def test_list_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).list._get_unset_required_fields(jsonified_request) + ).get_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present + jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).list._get_unset_required_fields(jsonified_request) + ).get_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set( - ( - "filter", - "max_results", - "order_by", - "page_token", - "return_partial_success", - ) - ) + assert not set(unset_fields) - set(("priority",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" @@ -4228,7 +4261,7 @@ def test_list_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyList() + return_value = compute.FirewallPolicyRule() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -4249,41 +4282,38 @@ def test_list_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyList.pb(return_value) + return_value = compute.FirewallPolicyRule.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.list(request) + response = client.get_rule(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_list_rest_unset_required_fields(): +def test_get_rule_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.list._get_unset_required_fields({}) + unset_fields = transport.get_rule._get_unset_required_fields({}) assert set(unset_fields) == ( - set( + set(("priority",)) + & set( ( - "filter", - "maxResults", - "orderBy", - "pageToken", - "returnPartialSuccess", + "firewallPolicy", + "project", ) ) - & set(("project",)) ) -def test_list_rest_flattened(): +def test_get_rule_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -4292,14 +4322,15 @@ def test_list_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyList() + return_value = compute.FirewallPolicyRule() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1"} + sample_request = {"project": "sample1", "firewall_policy": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", + firewall_policy="firewall_policy_value", ) mock_args.update(sample_request) @@ -4307,26 +4338,26 @@ def test_list_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyList.pb(return_value) + return_value = compute.FirewallPolicyRule.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.list(**mock_args) + client.get_rule(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/getRule" % client.transport._host, args[1], ) -def test_list_rest_flattened_error(transport: str = "rest"): +def test_get_rule_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -4335,74 +4366,14 @@ def test_list_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.list( - compute.ListNetworkFirewallPoliciesRequest(), + client.get_rule( + compute.GetRuleNetworkFirewallPolicyRequest(), project="project_value", + firewall_policy="firewall_policy_value", ) -def test_list_rest_pager(transport: str = "rest"): - client = NetworkFirewallPoliciesClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Mock the http request call within the method and fake a response. - with mock.patch.object(Session, "request") as req: - # TODO(kbandes): remove this mock unless there's a good reason for it. - # with mock.patch.object(path_template, 'transcode') as transcode: - # Set the response as a series of pages - response = ( - compute.FirewallPolicyList( - items=[ - compute.FirewallPolicy(), - compute.FirewallPolicy(), - compute.FirewallPolicy(), - ], - next_page_token="abc", - ), - compute.FirewallPolicyList( - items=[], - next_page_token="def", - ), - compute.FirewallPolicyList( - items=[ - compute.FirewallPolicy(), - ], - next_page_token="ghi", - ), - compute.FirewallPolicyList( - items=[ - compute.FirewallPolicy(), - compute.FirewallPolicy(), - ], - ), - ) - # Two responses for two calls - response = response + response - - # Wrap the values into proper Response objs - response = tuple(compute.FirewallPolicyList.to_json(x) for x in response) - return_values = tuple(Response() for i in response) - for return_val, response_val in zip(return_values, response): - return_val._content = response_val.encode("UTF-8") - return_val.status_code = 200 - req.side_effect = return_values - - sample_request = {"project": "sample1"} - - pager = client.list(request=sample_request) - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, compute.FirewallPolicy) for i in results) - - pages = list(client.list(request=sample_request).pages) - for page_, token in zip(pages, ["abc", "def", "ghi", ""]): - assert page_.raw_page.next_page_token == token - - -def test_patch_rest_use_cached_wrapped_rpc(): +def test_insert_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -4416,17 +4387,17 @@ def test_patch_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.patch in client._transport._wrapped_methods + assert client._transport.insert in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.patch] = mock_rpc + client._transport._wrapped_methods[client._transport.insert] = mock_rpc request = {} - client.patch(request) + client.insert(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -4435,20 +4406,19 @@ def test_patch_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.patch(request) + client.insert(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_patch_rest_required_fields( - request_type=compute.PatchNetworkFirewallPolicyRequest, +def test_insert_rest_required_fields( + request_type=compute.InsertNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} - request_init["firewall_policy"] = "" request_init["project"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) @@ -4460,24 +4430,21 @@ def test_patch_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present - jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone - assert "firewallPolicy" in jsonified_request - assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" @@ -4500,7 +4467,7 @@ def test_patch_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "patch", + "method": "post", "query_params": pb_request, } transcode_result["body"] = pb_request @@ -4517,24 +4484,23 @@ def test_patch_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch(request) + response = client.insert(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_patch_rest_unset_required_fields(): +def test_insert_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.patch._get_unset_required_fields({}) + unset_fields = transport.insert._get_unset_required_fields({}) assert set(unset_fields) == ( set(("requestId",)) & set( ( - "firewallPolicy", "firewallPolicyResource", "project", ) @@ -4542,7 +4508,7 @@ def test_patch_rest_unset_required_fields(): ) -def test_patch_rest_flattened(): +def test_insert_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -4554,12 +4520,11 @@ def test_patch_rest_flattened(): return_value = compute.Operation() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "firewall_policy": "sample2"} + sample_request = {"project": "sample1"} # get truthy value for each flattened field mock_args = dict( project="project_value", - firewall_policy="firewall_policy_value", firewall_policy_resource=compute.FirewallPolicy( associations=[ compute.FirewallPolicyAssociation( @@ -4580,20 +4545,20 @@ def test_patch_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch(**mock_args) + client.insert(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" + "%s/compute/v1/projects/{project}/global/firewallPolicies" % client.transport._host, args[1], ) -def test_patch_rest_flattened_error(transport: str = "rest"): +def test_insert_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -4602,10 +4567,9 @@ def test_patch_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.patch( - compute.PatchNetworkFirewallPolicyRequest(), + client.insert( + compute.InsertNetworkFirewallPolicyRequest(), project="project_value", - firewall_policy="firewall_policy_value", firewall_policy_resource=compute.FirewallPolicy( associations=[ compute.FirewallPolicyAssociation( @@ -4616,7 +4580,7 @@ def test_patch_rest_flattened_error(transport: str = "rest"): ) -def test_patch_unary_rest_use_cached_wrapped_rpc(): +def test_insert_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -4630,17 +4594,17 @@ def test_patch_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.patch in client._transport._wrapped_methods + assert client._transport.insert in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.patch] = mock_rpc + client._transport._wrapped_methods[client._transport.insert] = mock_rpc request = {} - client.patch_unary(request) + client.insert_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -4649,20 +4613,19 @@ def test_patch_unary_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.patch_unary(request) + client.insert_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_patch_unary_rest_required_fields( - request_type=compute.PatchNetworkFirewallPolicyRequest, +def test_insert_unary_rest_required_fields( + request_type=compute.InsertNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} - request_init["firewall_policy"] = "" request_init["project"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) @@ -4674,24 +4637,21 @@ def test_patch_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present - jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone - assert "firewallPolicy" in jsonified_request - assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" @@ -4714,7 +4674,7 @@ def test_patch_unary_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "patch", + "method": "post", "query_params": pb_request, } transcode_result["body"] = pb_request @@ -4731,24 +4691,23 @@ def test_patch_unary_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch_unary(request) + response = client.insert_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_patch_unary_rest_unset_required_fields(): +def test_insert_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.patch._get_unset_required_fields({}) + unset_fields = transport.insert._get_unset_required_fields({}) assert set(unset_fields) == ( set(("requestId",)) & set( ( - "firewallPolicy", "firewallPolicyResource", "project", ) @@ -4756,7 +4715,7 @@ def test_patch_unary_rest_unset_required_fields(): ) -def test_patch_unary_rest_flattened(): +def test_insert_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -4768,12 +4727,11 @@ def test_patch_unary_rest_flattened(): return_value = compute.Operation() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "firewall_policy": "sample2"} + sample_request = {"project": "sample1"} # get truthy value for each flattened field mock_args = dict( project="project_value", - firewall_policy="firewall_policy_value", firewall_policy_resource=compute.FirewallPolicy( associations=[ compute.FirewallPolicyAssociation( @@ -4794,20 +4752,20 @@ def test_patch_unary_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch_unary(**mock_args) + client.insert_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" + "%s/compute/v1/projects/{project}/global/firewallPolicies" % client.transport._host, args[1], ) -def test_patch_unary_rest_flattened_error(transport: str = "rest"): +def test_insert_unary_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -4816,10 +4774,9 @@ def test_patch_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.patch_unary( - compute.PatchNetworkFirewallPolicyRequest(), + client.insert_unary( + compute.InsertNetworkFirewallPolicyRequest(), project="project_value", - firewall_policy="firewall_policy_value", firewall_policy_resource=compute.FirewallPolicy( associations=[ compute.FirewallPolicyAssociation( @@ -4830,7 +4787,7 @@ def test_patch_unary_rest_flattened_error(transport: str = "rest"): ) -def test_patch_rule_rest_use_cached_wrapped_rpc(): +def test_list_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -4844,39 +4801,34 @@ def test_patch_rule_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.patch_rule in client._transport._wrapped_methods + assert client._transport.list in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.patch_rule] = mock_rpc + client._transport._wrapped_methods[client._transport.list] = mock_rpc request = {} - client.patch_rule(request) + client.list(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.patch_rule(request) + client.list(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_patch_rule_rest_required_fields( - request_type=compute.PatchRuleNetworkFirewallPolicyRequest, +def test_list_rest_required_fields( + request_type=compute.ListNetworkFirewallPoliciesRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} - request_init["firewall_policy"] = "" request_init["project"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) @@ -4888,29 +4840,29 @@ def test_patch_rule_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch_rule._get_unset_required_fields(jsonified_request) + ).list._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present - jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch_rule._get_unset_required_fields(jsonified_request) + ).list._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( - "priority", - "request_id", + "filter", + "max_results", + "order_by", + "page_token", + "return_partial_success", ) ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone - assert "firewallPolicy" in jsonified_request - assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" @@ -4921,7 +4873,7 @@ def test_patch_rule_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.FirewallPolicyList() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -4933,54 +4885,50 @@ def test_patch_rule_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.FirewallPolicyList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch_rule(request) + response = client.list(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_patch_rule_rest_unset_required_fields(): +def test_list_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.patch_rule._get_unset_required_fields({}) + unset_fields = transport.list._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( - "priority", - "requestId", - ) - ) - & set( - ( - "firewallPolicy", - "firewallPolicyRuleResource", - "project", + "filter", + "maxResults", + "orderBy", + "pageToken", + "returnPartialSuccess", ) ) + & set(("project",)) ) -def test_patch_rule_rest_flattened(): +def test_list_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -4989,18 +4937,14 @@ def test_patch_rule_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.FirewallPolicyList() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "firewall_policy": "sample2"} + sample_request = {"project": "sample1"} # get truthy value for each flattened field mock_args = dict( project="project_value", - firewall_policy="firewall_policy_value", - firewall_policy_rule_resource=compute.FirewallPolicyRule( - action="action_value" - ), ) mock_args.update(sample_request) @@ -5008,26 +4952,26 @@ def test_patch_rule_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.FirewallPolicyList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch_rule(**mock_args) + client.list(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule" + "%s/compute/v1/projects/{project}/global/firewallPolicies" % client.transport._host, args[1], ) -def test_patch_rule_rest_flattened_error(transport: str = "rest"): +def test_list_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -5036,17 +4980,74 @@ def test_patch_rule_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.patch_rule( - compute.PatchRuleNetworkFirewallPolicyRequest(), + client.list( + compute.ListNetworkFirewallPoliciesRequest(), project="project_value", - firewall_policy="firewall_policy_value", - firewall_policy_rule_resource=compute.FirewallPolicyRule( - action="action_value" + ) + + +def test_list_rest_pager(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # TODO(kbandes): remove this mock unless there's a good reason for it. + # with mock.patch.object(path_template, 'transcode') as transcode: + # Set the response as a series of pages + response = ( + compute.FirewallPolicyList( + items=[ + compute.FirewallPolicy(), + compute.FirewallPolicy(), + compute.FirewallPolicy(), + ], + next_page_token="abc", + ), + compute.FirewallPolicyList( + items=[], + next_page_token="def", + ), + compute.FirewallPolicyList( + items=[ + compute.FirewallPolicy(), + ], + next_page_token="ghi", + ), + compute.FirewallPolicyList( + items=[ + compute.FirewallPolicy(), + compute.FirewallPolicy(), + ], ), ) + # Two responses for two calls + response = response + response + # Wrap the values into proper Response objs + response = tuple(compute.FirewallPolicyList.to_json(x) for x in response) + return_values = tuple(Response() for i in response) + for return_val, response_val in zip(return_values, response): + return_val._content = response_val.encode("UTF-8") + return_val.status_code = 200 + req.side_effect = return_values -def test_patch_rule_unary_rest_use_cached_wrapped_rpc(): + sample_request = {"project": "sample1"} + + pager = client.list(request=sample_request) + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, compute.FirewallPolicy) for i in results) + + pages = list(client.list(request=sample_request).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +def test_patch_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -5060,17 +5061,17 @@ def test_patch_rule_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.patch_rule in client._transport._wrapped_methods + assert client._transport.patch in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.patch_rule] = mock_rpc + client._transport._wrapped_methods[client._transport.patch] = mock_rpc request = {} - client.patch_rule_unary(request) + client.patch(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -5079,15 +5080,15 @@ def test_patch_rule_unary_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.patch_rule_unary(request) + client.patch(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_patch_rule_unary_rest_required_fields( - request_type=compute.PatchRuleNetworkFirewallPolicyRequest, +def test_patch_rest_required_fields( + request_type=compute.PatchNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -5104,7 +5105,7 @@ def test_patch_rule_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch_rule._get_unset_required_fields(jsonified_request) + ).patch._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -5114,14 +5115,9 @@ def test_patch_rule_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch_rule._get_unset_required_fields(jsonified_request) + ).patch._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set( - ( - "priority", - "request_id", - ) - ) + assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -5149,7 +5145,7 @@ def test_patch_rule_unary_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "patch", "query_params": pb_request, } transcode_result["body"] = pb_request @@ -5166,37 +5162,32 @@ def test_patch_rule_unary_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch_rule_unary(request) + response = client.patch(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_patch_rule_unary_rest_unset_required_fields(): +def test_patch_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.patch_rule._get_unset_required_fields({}) + unset_fields = transport.patch._get_unset_required_fields({}) assert set(unset_fields) == ( - set( - ( - "priority", - "requestId", - ) - ) + set(("requestId",)) & set( ( "firewallPolicy", - "firewallPolicyRuleResource", + "firewallPolicyResource", "project", ) ) ) -def test_patch_rule_unary_rest_flattened(): +def test_patch_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -5214,8 +5205,12 @@ def test_patch_rule_unary_rest_flattened(): mock_args = dict( project="project_value", firewall_policy="firewall_policy_value", - firewall_policy_rule_resource=compute.FirewallPolicyRule( - action="action_value" + firewall_policy_resource=compute.FirewallPolicy( + associations=[ + compute.FirewallPolicyAssociation( + attachment_target="attachment_target_value" + ) + ] ), ) mock_args.update(sample_request) @@ -5230,20 +5225,20 @@ def test_patch_rule_unary_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch_rule_unary(**mock_args) + client.patch(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" % client.transport._host, args[1], ) -def test_patch_rule_unary_rest_flattened_error(transport: str = "rest"): +def test_patch_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -5252,17 +5247,21 @@ def test_patch_rule_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.patch_rule_unary( - compute.PatchRuleNetworkFirewallPolicyRequest(), + client.patch( + compute.PatchNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", - firewall_policy_rule_resource=compute.FirewallPolicyRule( - action="action_value" + firewall_policy_resource=compute.FirewallPolicy( + associations=[ + compute.FirewallPolicyAssociation( + attachment_target="attachment_target_value" + ) + ] ), ) -def test_remove_association_rest_use_cached_wrapped_rpc(): +def test_patch_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -5276,21 +5275,17 @@ def test_remove_association_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert ( - client._transport.remove_association in client._transport._wrapped_methods - ) + assert client._transport.patch in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[ - client._transport.remove_association - ] = mock_rpc + client._transport._wrapped_methods[client._transport.patch] = mock_rpc request = {} - client.remove_association(request) + client.patch_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -5299,15 +5294,15 @@ def test_remove_association_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.remove_association(request) + client.patch_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_remove_association_rest_required_fields( - request_type=compute.RemoveAssociationNetworkFirewallPolicyRequest, +def test_patch_unary_rest_required_fields( + request_type=compute.PatchNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -5324,7 +5319,7 @@ def test_remove_association_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_association._get_unset_required_fields(jsonified_request) + ).patch._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -5334,14 +5329,9 @@ def test_remove_association_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_association._get_unset_required_fields(jsonified_request) + ).patch._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set( - ( - "name", - "request_id", - ) - ) + assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -5369,9 +5359,10 @@ def test_remove_association_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "patch", "query_params": pb_request, } + transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() @@ -5385,36 +5376,32 @@ def test_remove_association_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.remove_association(request) + response = client.patch_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_remove_association_rest_unset_required_fields(): +def test_patch_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.remove_association._get_unset_required_fields({}) + unset_fields = transport.patch._get_unset_required_fields({}) assert set(unset_fields) == ( - set( - ( - "name", - "requestId", - ) - ) + set(("requestId",)) & set( ( "firewallPolicy", + "firewallPolicyResource", "project", ) ) ) -def test_remove_association_rest_flattened(): +def test_patch_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -5432,6 +5419,13 @@ def test_remove_association_rest_flattened(): mock_args = dict( project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_resource=compute.FirewallPolicy( + associations=[ + compute.FirewallPolicyAssociation( + attachment_target="attachment_target_value" + ) + ] + ), ) mock_args.update(sample_request) @@ -5445,20 +5439,20 @@ def test_remove_association_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.remove_association(**mock_args) + client.patch_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}" % client.transport._host, args[1], ) -def test_remove_association_rest_flattened_error(transport: str = "rest"): +def test_patch_unary_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -5467,14 +5461,21 @@ def test_remove_association_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.remove_association( - compute.RemoveAssociationNetworkFirewallPolicyRequest(), + client.patch_unary( + compute.PatchNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_resource=compute.FirewallPolicy( + associations=[ + compute.FirewallPolicyAssociation( + attachment_target="attachment_target_value" + ) + ] + ), ) -def test_remove_association_unary_rest_use_cached_wrapped_rpc(): +def test_patch_packet_mirroring_rule_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -5489,7 +5490,8 @@ def test_remove_association_unary_rest_use_cached_wrapped_rpc(): # Ensure method has been cached assert ( - client._transport.remove_association in client._transport._wrapped_methods + client._transport.patch_packet_mirroring_rule + in client._transport._wrapped_methods ) # Replace cached wrapped function with mock @@ -5498,11 +5500,11 @@ def test_remove_association_unary_rest_use_cached_wrapped_rpc(): "foo" # operation_request.operation in compute client(s) expect a string. ) client._transport._wrapped_methods[ - client._transport.remove_association + client._transport.patch_packet_mirroring_rule ] = mock_rpc request = {} - client.remove_association_unary(request) + client.patch_packet_mirroring_rule(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -5511,15 +5513,15 @@ def test_remove_association_unary_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.remove_association_unary(request) + client.patch_packet_mirroring_rule(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_remove_association_unary_rest_required_fields( - request_type=compute.RemoveAssociationNetworkFirewallPolicyRequest, +def test_patch_packet_mirroring_rule_rest_required_fields( + request_type=compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -5536,7 +5538,7 @@ def test_remove_association_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_association._get_unset_required_fields(jsonified_request) + ).patch_packet_mirroring_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -5546,11 +5548,11 @@ def test_remove_association_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_association._get_unset_required_fields(jsonified_request) + ).patch_packet_mirroring_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( - "name", + "priority", "request_id", ) ) @@ -5584,6 +5586,7 @@ def test_remove_association_unary_rest_required_fields( "method": "post", "query_params": pb_request, } + transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() @@ -5597,36 +5600,37 @@ def test_remove_association_unary_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.remove_association_unary(request) + response = client.patch_packet_mirroring_rule(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_remove_association_unary_rest_unset_required_fields(): +def test_patch_packet_mirroring_rule_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.remove_association._get_unset_required_fields({}) + unset_fields = transport.patch_packet_mirroring_rule._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( - "name", + "priority", "requestId", ) ) & set( ( "firewallPolicy", + "firewallPolicyRuleResource", "project", ) ) ) -def test_remove_association_unary_rest_flattened(): +def test_patch_packet_mirroring_rule_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -5644,6 +5648,9 @@ def test_remove_association_unary_rest_flattened(): mock_args = dict( project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) mock_args.update(sample_request) @@ -5657,20 +5664,20 @@ def test_remove_association_unary_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.remove_association_unary(**mock_args) + client.patch_packet_mirroring_rule(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchPacketMirroringRule" % client.transport._host, args[1], ) -def test_remove_association_unary_rest_flattened_error(transport: str = "rest"): +def test_patch_packet_mirroring_rule_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -5679,14 +5686,17 @@ def test_remove_association_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.remove_association_unary( - compute.RemoveAssociationNetworkFirewallPolicyRequest(), + client.patch_packet_mirroring_rule( + compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) -def test_remove_rule_rest_use_cached_wrapped_rpc(): +def test_patch_packet_mirroring_rule_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -5700,17 +5710,22 @@ def test_remove_rule_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.remove_rule in client._transport._wrapped_methods + assert ( + client._transport.patch_packet_mirroring_rule + in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.remove_rule] = mock_rpc + client._transport._wrapped_methods[ + client._transport.patch_packet_mirroring_rule + ] = mock_rpc request = {} - client.remove_rule(request) + client.patch_packet_mirroring_rule_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -5719,15 +5734,15 @@ def test_remove_rule_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.remove_rule(request) + client.patch_packet_mirroring_rule_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_remove_rule_rest_required_fields( - request_type=compute.RemoveRuleNetworkFirewallPolicyRequest, +def test_patch_packet_mirroring_rule_unary_rest_required_fields( + request_type=compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -5744,7 +5759,7 @@ def test_remove_rule_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_rule._get_unset_required_fields(jsonified_request) + ).patch_packet_mirroring_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -5754,7 +5769,7 @@ def test_remove_rule_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_rule._get_unset_required_fields(jsonified_request) + ).patch_packet_mirroring_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( @@ -5792,6 +5807,7 @@ def test_remove_rule_rest_required_fields( "method": "post", "query_params": pb_request, } + transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() @@ -5805,19 +5821,19 @@ def test_remove_rule_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.remove_rule(request) + response = client.patch_packet_mirroring_rule_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_remove_rule_rest_unset_required_fields(): +def test_patch_packet_mirroring_rule_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.remove_rule._get_unset_required_fields({}) + unset_fields = transport.patch_packet_mirroring_rule._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( @@ -5828,13 +5844,14 @@ def test_remove_rule_rest_unset_required_fields(): & set( ( "firewallPolicy", + "firewallPolicyRuleResource", "project", ) ) ) -def test_remove_rule_rest_flattened(): +def test_patch_packet_mirroring_rule_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -5852,6 +5869,9 @@ def test_remove_rule_rest_flattened(): mock_args = dict( project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) mock_args.update(sample_request) @@ -5865,20 +5885,22 @@ def test_remove_rule_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.remove_rule(**mock_args) + client.patch_packet_mirroring_rule_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchPacketMirroringRule" % client.transport._host, args[1], ) -def test_remove_rule_rest_flattened_error(transport: str = "rest"): +def test_patch_packet_mirroring_rule_unary_rest_flattened_error( + transport: str = "rest", +): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -5887,14 +5909,17 @@ def test_remove_rule_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.remove_rule( - compute.RemoveRuleNetworkFirewallPolicyRequest(), + client.patch_packet_mirroring_rule_unary( + compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) -def test_remove_rule_unary_rest_use_cached_wrapped_rpc(): +def test_patch_rule_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -5908,17 +5933,17 @@ def test_remove_rule_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.remove_rule in client._transport._wrapped_methods + assert client._transport.patch_rule in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.remove_rule] = mock_rpc + client._transport._wrapped_methods[client._transport.patch_rule] = mock_rpc request = {} - client.remove_rule_unary(request) + client.patch_rule(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -5927,15 +5952,15 @@ def test_remove_rule_unary_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.remove_rule_unary(request) + client.patch_rule(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_remove_rule_unary_rest_required_fields( - request_type=compute.RemoveRuleNetworkFirewallPolicyRequest, +def test_patch_rule_rest_required_fields( + request_type=compute.PatchRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport @@ -5952,7 +5977,7 @@ def test_remove_rule_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_rule._get_unset_required_fields(jsonified_request) + ).patch_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -5962,7 +5987,7 @@ def test_remove_rule_unary_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).remove_rule._get_unset_required_fields(jsonified_request) + ).patch_rule._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set( ( @@ -6000,6 +6025,7 @@ def test_remove_rule_unary_rest_required_fields( "method": "post", "query_params": pb_request, } + transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() @@ -6013,19 +6039,19 @@ def test_remove_rule_unary_rest_required_fields( req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.remove_rule_unary(request) + response = client.patch_rule(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_remove_rule_unary_rest_unset_required_fields(): +def test_patch_rule_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.remove_rule._get_unset_required_fields({}) + unset_fields = transport.patch_rule._get_unset_required_fields({}) assert set(unset_fields) == ( set( ( @@ -6036,13 +6062,14 @@ def test_remove_rule_unary_rest_unset_required_fields(): & set( ( "firewallPolicy", + "firewallPolicyRuleResource", "project", ) ) ) -def test_remove_rule_unary_rest_flattened(): +def test_patch_rule_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -6060,6 +6087,9 @@ def test_remove_rule_unary_rest_flattened(): mock_args = dict( project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) mock_args.update(sample_request) @@ -6073,20 +6103,20 @@ def test_remove_rule_unary_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.remove_rule_unary(**mock_args) + client.patch_rule(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule" % client.transport._host, args[1], ) -def test_remove_rule_unary_rest_flattened_error(transport: str = "rest"): +def test_patch_rule_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -6095,14 +6125,17 @@ def test_remove_rule_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.remove_rule_unary( - compute.RemoveRuleNetworkFirewallPolicyRequest(), + client.patch_rule( + compute.PatchRuleNetworkFirewallPolicyRequest(), project="project_value", firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" + ), ) -def test_set_iam_policy_rest_use_cached_wrapped_rpc(): +def test_patch_rule_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -6116,36 +6149,40 @@ def test_set_iam_policy_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.set_iam_policy in client._transport._wrapped_methods + assert client._transport.patch_rule in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc + client._transport._wrapped_methods[client._transport.patch_rule] = mock_rpc request = {} - client.set_iam_policy(request) + client.patch_rule_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.set_iam_policy(request) + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.patch_rule_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_set_iam_policy_rest_required_fields( - request_type=compute.SetIamPolicyNetworkFirewallPolicyRequest, +def test_patch_rule_unary_rest_required_fields( + request_type=compute.PatchRuleNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} + request_init["firewall_policy"] = "" request_init["project"] = "" - request_init["resource"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -6156,24 +6193,31 @@ def test_set_iam_policy_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).set_iam_policy._get_unset_required_fields(jsonified_request) + ).patch_rule._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present + jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" - jsonified_request["resource"] = "resource_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).set_iam_policy._get_unset_required_fields(jsonified_request) - jsonified_request.update(unset_fields) - - # verify required fields with non-default values are left alone - assert "project" in jsonified_request + ).patch_rule._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "priority", + "request_id", + ) + ) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" + assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" - assert "resource" in jsonified_request - assert jsonified_request["resource"] == "resource_value" client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), @@ -6182,7 +6226,7 @@ def test_set_iam_policy_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Policy() + return_value = compute.Operation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -6204,39 +6248,44 @@ def test_set_iam_policy_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Policy.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.set_iam_policy(request) + response = client.patch_rule_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_set_iam_policy_rest_unset_required_fields(): +def test_patch_rule_unary_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.set_iam_policy._get_unset_required_fields({}) + unset_fields = transport.patch_rule._get_unset_required_fields({}) assert set(unset_fields) == ( - set(()) + set( + ( + "priority", + "requestId", + ) + ) & set( ( - "globalSetPolicyRequestResource", + "firewallPolicy", + "firewallPolicyRuleResource", "project", - "resource", ) ) ) -def test_set_iam_policy_rest_flattened(): +def test_patch_rule_unary_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -6245,17 +6294,17 @@ def test_set_iam_policy_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Policy() + return_value = compute.Operation() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "resource": "sample2"} + sample_request = {"project": "sample1", "firewall_policy": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", - resource="resource_value", - global_set_policy_request_resource=compute.GlobalSetPolicyRequest( - bindings=[compute.Binding(binding_id="binding_id_value")] + firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" ), ) mock_args.update(sample_request) @@ -6264,26 +6313,26 @@ def test_set_iam_policy_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Policy.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.set_iam_policy(**mock_args) + client.patch_rule_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{resource}/setIamPolicy" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule" % client.transport._host, args[1], ) -def test_set_iam_policy_rest_flattened_error(transport: str = "rest"): +def test_patch_rule_unary_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -6292,17 +6341,17 @@ def test_set_iam_policy_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.set_iam_policy( - compute.SetIamPolicyNetworkFirewallPolicyRequest(), + client.patch_rule_unary( + compute.PatchRuleNetworkFirewallPolicyRequest(), project="project_value", - resource="resource_value", - global_set_policy_request_resource=compute.GlobalSetPolicyRequest( - bindings=[compute.Binding(binding_id="binding_id_value")] + firewall_policy="firewall_policy_value", + firewall_policy_rule_resource=compute.FirewallPolicyRule( + action="action_value" ), ) -def test_test_iam_permissions_rest_use_cached_wrapped_rpc(): +def test_remove_association_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -6317,7 +6366,7 @@ def test_test_iam_permissions_rest_use_cached_wrapped_rpc(): # Ensure method has been cached assert ( - client._transport.test_iam_permissions in client._transport._wrapped_methods + client._transport.remove_association in client._transport._wrapped_methods ) # Replace cached wrapped function with mock @@ -6326,30 +6375,34 @@ def test_test_iam_permissions_rest_use_cached_wrapped_rpc(): "foo" # operation_request.operation in compute client(s) expect a string. ) client._transport._wrapped_methods[ - client._transport.test_iam_permissions + client._transport.remove_association ] = mock_rpc request = {} - client.test_iam_permissions(request) + client.remove_association(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.test_iam_permissions(request) + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.remove_association(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_test_iam_permissions_rest_required_fields( - request_type=compute.TestIamPermissionsNetworkFirewallPolicyRequest, +def test_remove_association_rest_required_fields( + request_type=compute.RemoveAssociationNetworkFirewallPolicyRequest, ): transport_class = transports.NetworkFirewallPoliciesRestTransport request_init = {} + request_init["firewall_policy"] = "" request_init["project"] = "" - request_init["resource"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -6360,24 +6413,31 @@ def test_test_iam_permissions_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).test_iam_permissions._get_unset_required_fields(jsonified_request) + ).remove_association._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present + jsonified_request["firewallPolicy"] = "firewall_policy_value" jsonified_request["project"] = "project_value" - jsonified_request["resource"] = "resource_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).test_iam_permissions._get_unset_required_fields(jsonified_request) + ).remove_association._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "name", + "request_id", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" assert "project" in jsonified_request assert jsonified_request["project"] == "project_value" - assert "resource" in jsonified_request - assert jsonified_request["resource"] == "resource_value" client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), @@ -6386,7 +6446,7 @@ def test_test_iam_permissions_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.TestPermissionsResponse() + return_value = compute.Operation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -6401,46 +6461,49 @@ def test_test_iam_permissions_rest_required_fields( "method": "post", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.TestPermissionsResponse.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.test_iam_permissions(request) + response = client.remove_association(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_test_iam_permissions_rest_unset_required_fields(): +def test_remove_association_rest_unset_required_fields(): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.test_iam_permissions._get_unset_required_fields({}) + unset_fields = transport.remove_association._get_unset_required_fields({}) assert set(unset_fields) == ( - set(()) + set( + ( + "name", + "requestId", + ) + ) & set( ( + "firewallPolicy", "project", - "resource", - "testPermissionsRequestResource", ) ) ) -def test_test_iam_permissions_rest_flattened(): +def test_remove_association_rest_flattened(): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -6449,18 +6512,15 @@ def test_test_iam_permissions_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.TestPermissionsResponse() + return_value = compute.Operation() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "resource": "sample2"} + sample_request = {"project": "sample1", "firewall_policy": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", - resource="resource_value", - test_permissions_request_resource=compute.TestPermissionsRequest( - permissions=["permissions_value"] - ), + firewall_policy="firewall_policy_value", ) mock_args.update(sample_request) @@ -6468,26 +6528,26 @@ def test_test_iam_permissions_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.TestPermissionsResponse.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.test_iam_permissions(**mock_args) + client.remove_association(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/global/firewallPolicies/{resource}/testIamPermissions" + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation" % client.transport._host, args[1], ) -def test_test_iam_permissions_rest_flattened_error(transport: str = "rest"): +def test_remove_association_rest_flattened_error(transport: str = "rest"): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -6496,106 +6556,2414 @@ def test_test_iam_permissions_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.test_iam_permissions( - compute.TestIamPermissionsNetworkFirewallPolicyRequest(), + client.remove_association( + compute.RemoveAssociationNetworkFirewallPolicyRequest(), project="project_value", - resource="resource_value", - test_permissions_request_resource=compute.TestPermissionsRequest( - permissions=["permissions_value"] - ), + firewall_policy="firewall_policy_value", ) -def test_credentials_transport_error(): - # It is an error to provide credentials and a transport instance. - transport = transports.NetworkFirewallPoliciesRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): +def test_remove_association_unary_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # It is an error to provide a credentials file and a transport instance. - transport = transports.NetworkFirewallPoliciesRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = NetworkFirewallPoliciesClient( - client_options={"credentials_file": "credentials.json"}, - transport=transport, + transport="rest", ) - # It is an error to provide an api_key and a transport instance. - transport = transports.NetworkFirewallPoliciesRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - options = client_options.ClientOptions() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = NetworkFirewallPoliciesClient( - client_options=options, - transport=transport, - ) + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() - # It is an error to provide an api_key and a credential. - options = client_options.ClientOptions() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = NetworkFirewallPoliciesClient( - client_options=options, credentials=ga_credentials.AnonymousCredentials() + # Ensure method has been cached + assert ( + client._transport.remove_association in client._transport._wrapped_methods ) - # It is an error to provide scopes and a transport instance. - transport = transports.NetworkFirewallPoliciesRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = NetworkFirewallPoliciesClient( - client_options={"scopes": ["1", "2"]}, - transport=transport, + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. ) + client._transport._wrapped_methods[ + client._transport.remove_association + ] = mock_rpc + request = {} + client.remove_association_unary(request) -def test_transport_instance(): - # A client may be instantiated with a custom transport instance. - transport = transports.NetworkFirewallPoliciesRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - client = NetworkFirewallPoliciesClient(transport=transport) - assert client.transport is transport - + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 -@pytest.mark.parametrize( - "transport_class", - [ - transports.NetworkFirewallPoliciesRestTransport, - ], -) -def test_transport_adc(transport_class): - # Test default credentials are used if not provided. - with mock.patch.object(google.auth, "default") as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class() - adc.assert_called_once() + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + client.remove_association_unary(request) -def test_transport_kind_rest(): - transport = NetworkFirewallPoliciesClient.get_transport_class("rest")( - credentials=ga_credentials.AnonymousCredentials() - ) - assert transport.kind == "rest" + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 -def test_add_association_rest_bad_request( - request_type=compute.AddAssociationNetworkFirewallPolicyRequest, +def test_remove_association_unary_rest_required_fields( + request_type=compute.RemoveAssociationNetworkFirewallPolicyRequest, ): - client = NetworkFirewallPoliciesClient( - credentials=ga_credentials.AnonymousCredentials(), transport="rest" - ) + transport_class = transports.NetworkFirewallPoliciesRestTransport + + request_init = {} + request_init["firewall_policy"] = "" + request_init["project"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_association._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["firewallPolicy"] = "firewall_policy_value" + jsonified_request["project"] = "project_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_association._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "name", + "request_id", + ) + ) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.remove_association_unary(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_remove_association_unary_rest_unset_required_fields(): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.remove_association._get_unset_required_fields({}) + assert set(unset_fields) == ( + set( + ( + "name", + "requestId", + ) + ) + & set( + ( + "firewallPolicy", + "project", + ) + ) + ) + + +def test_remove_association_unary_rest_flattened(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = {"project": "sample1", "firewall_policy": "sample2"} + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + firewall_policy="firewall_policy_value", + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.remove_association_unary(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation" + % client.transport._host, + args[1], + ) + + +def test_remove_association_unary_rest_flattened_error(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.remove_association_unary( + compute.RemoveAssociationNetworkFirewallPolicyRequest(), + project="project_value", + firewall_policy="firewall_policy_value", + ) + + +def test_remove_packet_mirroring_rule_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert ( + client._transport.remove_packet_mirroring_rule + in client._transport._wrapped_methods + ) + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[ + client._transport.remove_packet_mirroring_rule + ] = mock_rpc + + request = {} + client.remove_packet_mirroring_rule(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.remove_packet_mirroring_rule(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_remove_packet_mirroring_rule_rest_required_fields( + request_type=compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, +): + transport_class = transports.NetworkFirewallPoliciesRestTransport + + request_init = {} + request_init["firewall_policy"] = "" + request_init["project"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_packet_mirroring_rule._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["firewallPolicy"] = "firewall_policy_value" + jsonified_request["project"] = "project_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_packet_mirroring_rule._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "priority", + "request_id", + ) + ) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.remove_packet_mirroring_rule(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_remove_packet_mirroring_rule_rest_unset_required_fields(): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.remove_packet_mirroring_rule._get_unset_required_fields({}) + assert set(unset_fields) == ( + set( + ( + "priority", + "requestId", + ) + ) + & set( + ( + "firewallPolicy", + "project", + ) + ) + ) + + +def test_remove_packet_mirroring_rule_rest_flattened(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = {"project": "sample1", "firewall_policy": "sample2"} + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + firewall_policy="firewall_policy_value", + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.remove_packet_mirroring_rule(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removePacketMirroringRule" + % client.transport._host, + args[1], + ) + + +def test_remove_packet_mirroring_rule_rest_flattened_error(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.remove_packet_mirroring_rule( + compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest(), + project="project_value", + firewall_policy="firewall_policy_value", + ) + + +def test_remove_packet_mirroring_rule_unary_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert ( + client._transport.remove_packet_mirroring_rule + in client._transport._wrapped_methods + ) + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[ + client._transport.remove_packet_mirroring_rule + ] = mock_rpc + + request = {} + client.remove_packet_mirroring_rule_unary(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.remove_packet_mirroring_rule_unary(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_remove_packet_mirroring_rule_unary_rest_required_fields( + request_type=compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, +): + transport_class = transports.NetworkFirewallPoliciesRestTransport + + request_init = {} + request_init["firewall_policy"] = "" + request_init["project"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_packet_mirroring_rule._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["firewallPolicy"] = "firewall_policy_value" + jsonified_request["project"] = "project_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_packet_mirroring_rule._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "priority", + "request_id", + ) + ) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.remove_packet_mirroring_rule_unary(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_remove_packet_mirroring_rule_unary_rest_unset_required_fields(): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.remove_packet_mirroring_rule._get_unset_required_fields({}) + assert set(unset_fields) == ( + set( + ( + "priority", + "requestId", + ) + ) + & set( + ( + "firewallPolicy", + "project", + ) + ) + ) + + +def test_remove_packet_mirroring_rule_unary_rest_flattened(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = {"project": "sample1", "firewall_policy": "sample2"} + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + firewall_policy="firewall_policy_value", + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.remove_packet_mirroring_rule_unary(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removePacketMirroringRule" + % client.transport._host, + args[1], + ) + + +def test_remove_packet_mirroring_rule_unary_rest_flattened_error( + transport: str = "rest", +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.remove_packet_mirroring_rule_unary( + compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest(), + project="project_value", + firewall_policy="firewall_policy_value", + ) + + +def test_remove_rule_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.remove_rule in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.remove_rule] = mock_rpc + + request = {} + client.remove_rule(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.remove_rule(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_remove_rule_rest_required_fields( + request_type=compute.RemoveRuleNetworkFirewallPolicyRequest, +): + transport_class = transports.NetworkFirewallPoliciesRestTransport + + request_init = {} + request_init["firewall_policy"] = "" + request_init["project"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_rule._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["firewallPolicy"] = "firewall_policy_value" + jsonified_request["project"] = "project_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_rule._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "priority", + "request_id", + ) + ) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.remove_rule(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_remove_rule_rest_unset_required_fields(): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.remove_rule._get_unset_required_fields({}) + assert set(unset_fields) == ( + set( + ( + "priority", + "requestId", + ) + ) + & set( + ( + "firewallPolicy", + "project", + ) + ) + ) + + +def test_remove_rule_rest_flattened(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = {"project": "sample1", "firewall_policy": "sample2"} + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + firewall_policy="firewall_policy_value", + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.remove_rule(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule" + % client.transport._host, + args[1], + ) + + +def test_remove_rule_rest_flattened_error(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.remove_rule( + compute.RemoveRuleNetworkFirewallPolicyRequest(), + project="project_value", + firewall_policy="firewall_policy_value", + ) + + +def test_remove_rule_unary_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.remove_rule in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.remove_rule] = mock_rpc + + request = {} + client.remove_rule_unary(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.remove_rule_unary(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_remove_rule_unary_rest_required_fields( + request_type=compute.RemoveRuleNetworkFirewallPolicyRequest, +): + transport_class = transports.NetworkFirewallPoliciesRestTransport + + request_init = {} + request_init["firewall_policy"] = "" + request_init["project"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_rule._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["firewallPolicy"] = "firewall_policy_value" + jsonified_request["project"] = "project_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).remove_rule._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "priority", + "request_id", + ) + ) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "firewallPolicy" in jsonified_request + assert jsonified_request["firewallPolicy"] == "firewall_policy_value" + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.remove_rule_unary(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_remove_rule_unary_rest_unset_required_fields(): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.remove_rule._get_unset_required_fields({}) + assert set(unset_fields) == ( + set( + ( + "priority", + "requestId", + ) + ) + & set( + ( + "firewallPolicy", + "project", + ) + ) + ) + + +def test_remove_rule_unary_rest_flattened(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = {"project": "sample1", "firewall_policy": "sample2"} + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + firewall_policy="firewall_policy_value", + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.remove_rule_unary(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule" + % client.transport._host, + args[1], + ) + + +def test_remove_rule_unary_rest_flattened_error(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.remove_rule_unary( + compute.RemoveRuleNetworkFirewallPolicyRequest(), + project="project_value", + firewall_policy="firewall_policy_value", + ) + + +def test_set_iam_policy_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.set_iam_policy in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.set_iam_policy] = mock_rpc + + request = {} + client.set_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + client.set_iam_policy(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_set_iam_policy_rest_required_fields( + request_type=compute.SetIamPolicyNetworkFirewallPolicyRequest, +): + transport_class = transports.NetworkFirewallPoliciesRestTransport + + request_init = {} + request_init["project"] = "" + request_init["resource"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).set_iam_policy._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["resource"] = "resource_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).set_iam_policy._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "resource" in jsonified_request + assert jsonified_request["resource"] == "resource_value" + + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Policy() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Policy.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.set_iam_policy(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_set_iam_policy_rest_unset_required_fields(): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.set_iam_policy._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(()) + & set( + ( + "globalSetPolicyRequestResource", + "project", + "resource", + ) + ) + ) + + +def test_set_iam_policy_rest_flattened(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Policy() + + # get arguments that satisfy an http rule for this method + sample_request = {"project": "sample1", "resource": "sample2"} + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + resource="resource_value", + global_set_policy_request_resource=compute.GlobalSetPolicyRequest( + bindings=[compute.Binding(binding_id="binding_id_value")] + ), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Policy.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.set_iam_policy(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/global/firewallPolicies/{resource}/setIamPolicy" + % client.transport._host, + args[1], + ) + + +def test_set_iam_policy_rest_flattened_error(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.set_iam_policy( + compute.SetIamPolicyNetworkFirewallPolicyRequest(), + project="project_value", + resource="resource_value", + global_set_policy_request_resource=compute.GlobalSetPolicyRequest( + bindings=[compute.Binding(binding_id="binding_id_value")] + ), + ) + + +def test_test_iam_permissions_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert ( + client._transport.test_iam_permissions in client._transport._wrapped_methods + ) + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[ + client._transport.test_iam_permissions + ] = mock_rpc + + request = {} + client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + client.test_iam_permissions(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_test_iam_permissions_rest_required_fields( + request_type=compute.TestIamPermissionsNetworkFirewallPolicyRequest, +): + transport_class = transports.NetworkFirewallPoliciesRestTransport + + request_init = {} + request_init["project"] = "" + request_init["resource"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).test_iam_permissions._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["resource"] = "resource_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).test_iam_permissions._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "resource" in jsonified_request + assert jsonified_request["resource"] == "resource_value" + + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.TestPermissionsResponse() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.TestPermissionsResponse.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.test_iam_permissions(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_test_iam_permissions_rest_unset_required_fields(): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.test_iam_permissions._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(()) + & set( + ( + "project", + "resource", + "testPermissionsRequestResource", + ) + ) + ) + + +def test_test_iam_permissions_rest_flattened(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.TestPermissionsResponse() + + # get arguments that satisfy an http rule for this method + sample_request = {"project": "sample1", "resource": "sample2"} + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + resource="resource_value", + test_permissions_request_resource=compute.TestPermissionsRequest( + permissions=["permissions_value"] + ), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.TestPermissionsResponse.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.test_iam_permissions(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/global/firewallPolicies/{resource}/testIamPermissions" + % client.transport._host, + args[1], + ) + + +def test_test_iam_permissions_rest_flattened_error(transport: str = "rest"): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.test_iam_permissions( + compute.TestIamPermissionsNetworkFirewallPolicyRequest(), + project="project_value", + resource="resource_value", + test_permissions_request_resource=compute.TestPermissionsRequest( + permissions=["permissions_value"] + ), + ) + + +def test_credentials_transport_error(): + # It is an error to provide credentials and a transport instance. + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # It is an error to provide a credentials file and a transport instance. + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = NetworkFirewallPoliciesClient( + client_options={"credentials_file": "credentials.json"}, + transport=transport, + ) + + # It is an error to provide an api_key and a transport instance. + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + options = client_options.ClientOptions() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = NetworkFirewallPoliciesClient( + client_options=options, + transport=transport, + ) + + # It is an error to provide an api_key and a credential. + options = client_options.ClientOptions() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = NetworkFirewallPoliciesClient( + client_options=options, credentials=ga_credentials.AnonymousCredentials() + ) + + # It is an error to provide scopes and a transport instance. + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = NetworkFirewallPoliciesClient( + client_options={"scopes": ["1", "2"]}, + transport=transport, + ) + + +def test_transport_instance(): + # A client may be instantiated with a custom transport instance. + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + client = NetworkFirewallPoliciesClient(transport=transport) + assert client.transport is transport + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.NetworkFirewallPoliciesRestTransport, + ], +) +def test_transport_adc(transport_class): + # Test default credentials are used if not provided. + with mock.patch.object(google.auth, "default") as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport_class() + adc.assert_called_once() + + +def test_transport_kind_rest(): + transport = NetworkFirewallPoliciesClient.get_transport_class("rest")( + credentials=ga_credentials.AnonymousCredentials() + ) + assert transport.kind == "rest" + + +def test_add_association_rest_bad_request( + request_type=compute.AddAssociationNetworkFirewallPolicyRequest, +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.add_association(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.AddAssociationNetworkFirewallPolicyRequest, + dict, + ], +) +def test_add_association_rest_call_success(request_type): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init["firewall_policy_association_resource"] = { + "attachment_target": "attachment_target_value", + "display_name": "display_name_value", + "firewall_policy_id": "firewall_policy_id_value", + "name": "name_value", + "short_name": "short_name_value", + } + # The version of a generated dependency at test runtime may differ from the version used during generation. + # Delete any fields which are not present in the current runtime dependency + # See https://github.com/googleapis/gapic-generator-python/issues/1748 + + # Determine if the message type is proto-plus or protobuf + test_field = compute.AddAssociationNetworkFirewallPolicyRequest.meta.fields[ + "firewall_policy_association_resource" + ] + + def get_message_fields(field): + # Given a field which is a message (composite type), return a list with + # all the fields of the message. + # If the field is not a composite type, return an empty list. + message_fields = [] + + if hasattr(field, "message") and field.message: + is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") + + if is_field_type_proto_plus_type: + message_fields = field.message.meta.fields.values() + # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types + else: # pragma: NO COVER + message_fields = field.message.DESCRIPTOR.fields + return message_fields + + runtime_nested_fields = [ + (field.name, nested_field.name) + for field in get_message_fields(test_field) + for nested_field in get_message_fields(field) + ] + + subfields_not_in_runtime = [] + + # For each item in the sample request, create a list of sub fields which are not present at runtime + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for field, value in request_init[ + "firewall_policy_association_resource" + ].items(): # pragma: NO COVER + result = None + is_repeated = False + # For repeated fields + if isinstance(value, list) and len(value): + is_repeated = True + result = value[0] + # For fields where the type is another message + if isinstance(value, dict): + result = value + + if result and hasattr(result, "keys"): + for subfield in result.keys(): + if (field, subfield) not in runtime_nested_fields: + subfields_not_in_runtime.append( + { + "field": field, + "subfield": subfield, + "is_repeated": is_repeated, + } + ) + + # Remove fields from the sample request which are not present in the runtime version of the dependency + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER + field = subfield_to_delete.get("field") + field_repeated = subfield_to_delete.get("is_repeated") + subfield = subfield_to_delete.get("subfield") + if subfield: + if field_repeated: + for i in range( + 0, len(request_init["firewall_policy_association_resource"][field]) + ): + del request_init["firewall_policy_association_resource"][field][i][ + subfield + ] + else: + del request_init["firewall_policy_association_resource"][field][ + subfield + ] + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.add_association(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_add_association_rest_interceptors(null_interceptor): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None + if null_interceptor + else transports.NetworkFirewallPoliciesRestInterceptor(), + ) + client = NetworkFirewallPoliciesClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, "post_add_association" + ) as post, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "post_add_association_with_metadata", + ) as post_with_metadata, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, "pre_add_association" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.AddAssociationNetworkFirewallPolicyRequest.pb( + compute.AddAssociationNetworkFirewallPolicyRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.Operation.to_json(compute.Operation()) + req.return_value.content = return_value + + request = compute.AddAssociationNetworkFirewallPolicyRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata + + client.add_association( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_add_packet_mirroring_rule_rest_bad_request( + request_type=compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.add_packet_mirroring_rule(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest, + dict, + ], +) +def test_add_packet_mirroring_rule_rest_call_success(request_type): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init["firewall_policy_rule_resource"] = { + "action": "action_value", + "description": "description_value", + "direction": "direction_value", + "disabled": True, + "enable_logging": True, + "kind": "kind_value", + "match": { + "dest_address_groups": [ + "dest_address_groups_value1", + "dest_address_groups_value2", + ], + "dest_fqdns": ["dest_fqdns_value1", "dest_fqdns_value2"], + "dest_ip_ranges": ["dest_ip_ranges_value1", "dest_ip_ranges_value2"], + "dest_region_codes": [ + "dest_region_codes_value1", + "dest_region_codes_value2", + ], + "dest_threat_intelligences": [ + "dest_threat_intelligences_value1", + "dest_threat_intelligences_value2", + ], + "layer4_configs": [ + { + "ip_protocol": "ip_protocol_value", + "ports": ["ports_value1", "ports_value2"], + } + ], + "src_address_groups": [ + "src_address_groups_value1", + "src_address_groups_value2", + ], + "src_fqdns": ["src_fqdns_value1", "src_fqdns_value2"], + "src_ip_ranges": ["src_ip_ranges_value1", "src_ip_ranges_value2"], + "src_region_codes": ["src_region_codes_value1", "src_region_codes_value2"], + "src_secure_tags": [{"name": "name_value", "state": "state_value"}], + "src_threat_intelligences": [ + "src_threat_intelligences_value1", + "src_threat_intelligences_value2", + ], + }, + "priority": 898, + "rule_name": "rule_name_value", + "rule_tuple_count": 1737, + "security_profile_group": "security_profile_group_value", + "target_resources": ["target_resources_value1", "target_resources_value2"], + "target_secure_tags": {}, + "target_service_accounts": [ + "target_service_accounts_value1", + "target_service_accounts_value2", + ], + "tls_inspect": True, + } + # The version of a generated dependency at test runtime may differ from the version used during generation. + # Delete any fields which are not present in the current runtime dependency + # See https://github.com/googleapis/gapic-generator-python/issues/1748 + + # Determine if the message type is proto-plus or protobuf + test_field = compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest.meta.fields[ + "firewall_policy_rule_resource" + ] + + def get_message_fields(field): + # Given a field which is a message (composite type), return a list with + # all the fields of the message. + # If the field is not a composite type, return an empty list. + message_fields = [] + + if hasattr(field, "message") and field.message: + is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") + + if is_field_type_proto_plus_type: + message_fields = field.message.meta.fields.values() + # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types + else: # pragma: NO COVER + message_fields = field.message.DESCRIPTOR.fields + return message_fields + + runtime_nested_fields = [ + (field.name, nested_field.name) + for field in get_message_fields(test_field) + for nested_field in get_message_fields(field) + ] + + subfields_not_in_runtime = [] + + # For each item in the sample request, create a list of sub fields which are not present at runtime + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for field, value in request_init[ + "firewall_policy_rule_resource" + ].items(): # pragma: NO COVER + result = None + is_repeated = False + # For repeated fields + if isinstance(value, list) and len(value): + is_repeated = True + result = value[0] + # For fields where the type is another message + if isinstance(value, dict): + result = value + + if result and hasattr(result, "keys"): + for subfield in result.keys(): + if (field, subfield) not in runtime_nested_fields: + subfields_not_in_runtime.append( + { + "field": field, + "subfield": subfield, + "is_repeated": is_repeated, + } + ) + + # Remove fields from the sample request which are not present in the runtime version of the dependency + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER + field = subfield_to_delete.get("field") + field_repeated = subfield_to_delete.get("is_repeated") + subfield = subfield_to_delete.get("subfield") + if subfield: + if field_repeated: + for i in range( + 0, len(request_init["firewall_policy_rule_resource"][field]) + ): + del request_init["firewall_policy_rule_resource"][field][i][ + subfield + ] + else: + del request_init["firewall_policy_rule_resource"][field][subfield] + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.add_packet_mirroring_rule(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_add_packet_mirroring_rule_rest_interceptors(null_interceptor): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None + if null_interceptor + else transports.NetworkFirewallPoliciesRestInterceptor(), + ) + client = NetworkFirewallPoliciesClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "post_add_packet_mirroring_rule", + ) as post, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "post_add_packet_mirroring_rule_with_metadata", + ) as post_with_metadata, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "pre_add_packet_mirroring_rule", + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest.pb( + compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.Operation.to_json(compute.Operation()) + req.return_value.content = return_value + + request = compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata + + client.add_packet_mirroring_rule( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_add_rule_rest_bad_request( + request_type=compute.AddRuleNetworkFirewallPolicyRequest, +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.add_rule(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.AddRuleNetworkFirewallPolicyRequest, + dict, + ], +) +def test_add_rule_rest_call_success(request_type): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init["firewall_policy_rule_resource"] = { + "action": "action_value", + "description": "description_value", + "direction": "direction_value", + "disabled": True, + "enable_logging": True, + "kind": "kind_value", + "match": { + "dest_address_groups": [ + "dest_address_groups_value1", + "dest_address_groups_value2", + ], + "dest_fqdns": ["dest_fqdns_value1", "dest_fqdns_value2"], + "dest_ip_ranges": ["dest_ip_ranges_value1", "dest_ip_ranges_value2"], + "dest_region_codes": [ + "dest_region_codes_value1", + "dest_region_codes_value2", + ], + "dest_threat_intelligences": [ + "dest_threat_intelligences_value1", + "dest_threat_intelligences_value2", + ], + "layer4_configs": [ + { + "ip_protocol": "ip_protocol_value", + "ports": ["ports_value1", "ports_value2"], + } + ], + "src_address_groups": [ + "src_address_groups_value1", + "src_address_groups_value2", + ], + "src_fqdns": ["src_fqdns_value1", "src_fqdns_value2"], + "src_ip_ranges": ["src_ip_ranges_value1", "src_ip_ranges_value2"], + "src_region_codes": ["src_region_codes_value1", "src_region_codes_value2"], + "src_secure_tags": [{"name": "name_value", "state": "state_value"}], + "src_threat_intelligences": [ + "src_threat_intelligences_value1", + "src_threat_intelligences_value2", + ], + }, + "priority": 898, + "rule_name": "rule_name_value", + "rule_tuple_count": 1737, + "security_profile_group": "security_profile_group_value", + "target_resources": ["target_resources_value1", "target_resources_value2"], + "target_secure_tags": {}, + "target_service_accounts": [ + "target_service_accounts_value1", + "target_service_accounts_value2", + ], + "tls_inspect": True, + } + # The version of a generated dependency at test runtime may differ from the version used during generation. + # Delete any fields which are not present in the current runtime dependency + # See https://github.com/googleapis/gapic-generator-python/issues/1748 + + # Determine if the message type is proto-plus or protobuf + test_field = compute.AddRuleNetworkFirewallPolicyRequest.meta.fields[ + "firewall_policy_rule_resource" + ] + + def get_message_fields(field): + # Given a field which is a message (composite type), return a list with + # all the fields of the message. + # If the field is not a composite type, return an empty list. + message_fields = [] + + if hasattr(field, "message") and field.message: + is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") + + if is_field_type_proto_plus_type: + message_fields = field.message.meta.fields.values() + # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types + else: # pragma: NO COVER + message_fields = field.message.DESCRIPTOR.fields + return message_fields + + runtime_nested_fields = [ + (field.name, nested_field.name) + for field in get_message_fields(test_field) + for nested_field in get_message_fields(field) + ] + + subfields_not_in_runtime = [] + + # For each item in the sample request, create a list of sub fields which are not present at runtime + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for field, value in request_init[ + "firewall_policy_rule_resource" + ].items(): # pragma: NO COVER + result = None + is_repeated = False + # For repeated fields + if isinstance(value, list) and len(value): + is_repeated = True + result = value[0] + # For fields where the type is another message + if isinstance(value, dict): + result = value + + if result and hasattr(result, "keys"): + for subfield in result.keys(): + if (field, subfield) not in runtime_nested_fields: + subfields_not_in_runtime.append( + { + "field": field, + "subfield": subfield, + "is_repeated": is_repeated, + } + ) + + # Remove fields from the sample request which are not present in the runtime version of the dependency + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER + field = subfield_to_delete.get("field") + field_repeated = subfield_to_delete.get("is_repeated") + subfield = subfield_to_delete.get("subfield") + if subfield: + if field_repeated: + for i in range( + 0, len(request_init["firewall_policy_rule_resource"][field]) + ): + del request_init["firewall_policy_rule_resource"][field][i][ + subfield + ] + else: + del request_init["firewall_policy_rule_resource"][field][subfield] + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.add_rule(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_add_rule_rest_interceptors(null_interceptor): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None + if null_interceptor + else transports.NetworkFirewallPoliciesRestInterceptor(), + ) + client = NetworkFirewallPoliciesClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, "post_add_rule" + ) as post, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, "post_add_rule_with_metadata" + ) as post_with_metadata, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, "pre_add_rule" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.AddRuleNetworkFirewallPolicyRequest.pb( + compute.AddRuleNetworkFirewallPolicyRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.Operation.to_json(compute.Operation()) + req.return_value.content = return_value + + request = compute.AddRuleNetworkFirewallPolicyRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata + + client.add_rule( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_aggregated_list_rest_bad_request( + request_type=compute.AggregatedListNetworkFirewallPoliciesRequest, +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init = {"project": "sample1"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -6610,107 +8978,164 @@ def test_add_association_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.add_association(request) + client.aggregated_list(request) @pytest.mark.parametrize( "request_type", [ - compute.AddAssociationNetworkFirewallPolicyRequest, + compute.AggregatedListNetworkFirewallPoliciesRequest, dict, ], ) -def test_add_association_rest_call_success(request_type): +def test_aggregated_list_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "firewall_policy": "sample2"} - request_init["firewall_policy_association_resource"] = { - "attachment_target": "attachment_target_value", - "display_name": "display_name_value", - "firewall_policy_id": "firewall_policy_id_value", - "name": "name_value", - "short_name": "short_name_value", - } - # The version of a generated dependency at test runtime may differ from the version used during generation. - # Delete any fields which are not present in the current runtime dependency - # See https://github.com/googleapis/gapic-generator-python/issues/1748 + request_init = {"project": "sample1"} + request = request_type(**request_init) - # Determine if the message type is proto-plus or protobuf - test_field = compute.AddAssociationNetworkFirewallPolicyRequest.meta.fields[ - "firewall_policy_association_resource" - ] + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.NetworkFirewallPolicyAggregatedList( + id="id_value", + kind="kind_value", + next_page_token="next_page_token_value", + self_link="self_link_value", + unreachables=["unreachables_value"], + ) - def get_message_fields(field): - # Given a field which is a message (composite type), return a list with - # all the fields of the message. - # If the field is not a composite type, return an empty list. - message_fields = [] + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 - if hasattr(field, "message") and field.message: - is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") + # Convert return value to protobuf type + return_value = compute.NetworkFirewallPolicyAggregatedList.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.aggregated_list(request) - if is_field_type_proto_plus_type: - message_fields = field.message.meta.fields.values() - # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types - else: # pragma: NO COVER - message_fields = field.message.DESCRIPTOR.fields - return message_fields + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.AggregatedListPager) + assert response.id == "id_value" + assert response.kind == "kind_value" + assert response.next_page_token == "next_page_token_value" + assert response.self_link == "self_link_value" + assert response.unreachables == ["unreachables_value"] - runtime_nested_fields = [ - (field.name, nested_field.name) - for field in get_message_fields(test_field) - for nested_field in get_message_fields(field) - ] - subfields_not_in_runtime = [] +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_aggregated_list_rest_interceptors(null_interceptor): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None + if null_interceptor + else transports.NetworkFirewallPoliciesRestInterceptor(), + ) + client = NetworkFirewallPoliciesClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, "post_aggregated_list" + ) as post, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "post_aggregated_list_with_metadata", + ) as post_with_metadata, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, "pre_aggregated_list" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.AggregatedListNetworkFirewallPoliciesRequest.pb( + compute.AggregatedListNetworkFirewallPoliciesRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.NetworkFirewallPolicyAggregatedList.to_json( + compute.NetworkFirewallPolicyAggregatedList() + ) + req.return_value.content = return_value + + request = compute.AggregatedListNetworkFirewallPoliciesRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.NetworkFirewallPolicyAggregatedList() + post_with_metadata.return_value = ( + compute.NetworkFirewallPolicyAggregatedList(), + metadata, + ) + + client.aggregated_list( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_clone_rules_rest_bad_request( + request_type=compute.CloneRulesNetworkFirewallPolicyRequest, +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.clone_rules(request) - # For each item in the sample request, create a list of sub fields which are not present at runtime - # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime - for field, value in request_init[ - "firewall_policy_association_resource" - ].items(): # pragma: NO COVER - result = None - is_repeated = False - # For repeated fields - if isinstance(value, list) and len(value): - is_repeated = True - result = value[0] - # For fields where the type is another message - if isinstance(value, dict): - result = value - if result and hasattr(result, "keys"): - for subfield in result.keys(): - if (field, subfield) not in runtime_nested_fields: - subfields_not_in_runtime.append( - { - "field": field, - "subfield": subfield, - "is_repeated": is_repeated, - } - ) +@pytest.mark.parametrize( + "request_type", + [ + compute.CloneRulesNetworkFirewallPolicyRequest, + dict, + ], +) +def test_clone_rules_rest_call_success(request_type): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) - # Remove fields from the sample request which are not present in the runtime version of the dependency - # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime - for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER - field = subfield_to_delete.get("field") - field_repeated = subfield_to_delete.get("is_repeated") - subfield = subfield_to_delete.get("subfield") - if subfield: - if field_repeated: - for i in range( - 0, len(request_init["firewall_policy_association_resource"][field]) - ): - del request_init["firewall_policy_association_resource"][field][i][ - subfield - ] - else: - del request_init["firewall_policy_association_resource"][field][ - subfield - ] + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a response. @@ -6751,7 +9176,7 @@ def get_message_fields(field): response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.add_association(request) + response = client.clone_rules(request) # Establish that the response is the type that we expect. assert isinstance(response, extended_operation.ExtendedOperation) @@ -6780,7 +9205,7 @@ def get_message_fields(field): @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_add_association_rest_interceptors(null_interceptor): +def test_clone_rules_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -6794,18 +9219,18 @@ def test_add_association_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_add_association" + transports.NetworkFirewallPoliciesRestInterceptor, "post_clone_rules" ) as post, mock.patch.object( transports.NetworkFirewallPoliciesRestInterceptor, - "post_add_association_with_metadata", + "post_clone_rules_with_metadata", ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_add_association" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_clone_rules" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.AddAssociationNetworkFirewallPolicyRequest.pb( - compute.AddAssociationNetworkFirewallPolicyRequest() + pb_message = compute.CloneRulesNetworkFirewallPolicyRequest.pb( + compute.CloneRulesNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -6820,7 +9245,7 @@ def test_add_association_rest_interceptors(null_interceptor): return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.AddAssociationNetworkFirewallPolicyRequest() + request = compute.CloneRulesNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), @@ -6829,7 +9254,7 @@ def test_add_association_rest_interceptors(null_interceptor): post.return_value = compute.Operation() post_with_metadata.return_value = compute.Operation(), metadata - client.add_association( + client.clone_rules( request, metadata=[ ("key", "val"), @@ -6842,8 +9267,8 @@ def test_add_association_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_add_rule_rest_bad_request( - request_type=compute.AddRuleNetworkFirewallPolicyRequest, +def test_delete_rest_bad_request( + request_type=compute.DeleteNetworkFirewallPolicyRequest, ): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" @@ -6864,151 +9289,23 @@ def test_add_rule_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.add_rule(request) + client.delete(request) @pytest.mark.parametrize( "request_type", [ - compute.AddRuleNetworkFirewallPolicyRequest, + compute.DeleteNetworkFirewallPolicyRequest, dict, ], ) -def test_add_rule_rest_call_success(request_type): +def test_delete_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding request_init = {"project": "sample1", "firewall_policy": "sample2"} - request_init["firewall_policy_rule_resource"] = { - "action": "action_value", - "description": "description_value", - "direction": "direction_value", - "disabled": True, - "enable_logging": True, - "kind": "kind_value", - "match": { - "dest_address_groups": [ - "dest_address_groups_value1", - "dest_address_groups_value2", - ], - "dest_fqdns": ["dest_fqdns_value1", "dest_fqdns_value2"], - "dest_ip_ranges": ["dest_ip_ranges_value1", "dest_ip_ranges_value2"], - "dest_region_codes": [ - "dest_region_codes_value1", - "dest_region_codes_value2", - ], - "dest_threat_intelligences": [ - "dest_threat_intelligences_value1", - "dest_threat_intelligences_value2", - ], - "layer4_configs": [ - { - "ip_protocol": "ip_protocol_value", - "ports": ["ports_value1", "ports_value2"], - } - ], - "src_address_groups": [ - "src_address_groups_value1", - "src_address_groups_value2", - ], - "src_fqdns": ["src_fqdns_value1", "src_fqdns_value2"], - "src_ip_ranges": ["src_ip_ranges_value1", "src_ip_ranges_value2"], - "src_region_codes": ["src_region_codes_value1", "src_region_codes_value2"], - "src_secure_tags": [{"name": "name_value", "state": "state_value"}], - "src_threat_intelligences": [ - "src_threat_intelligences_value1", - "src_threat_intelligences_value2", - ], - }, - "priority": 898, - "rule_name": "rule_name_value", - "rule_tuple_count": 1737, - "security_profile_group": "security_profile_group_value", - "target_resources": ["target_resources_value1", "target_resources_value2"], - "target_secure_tags": {}, - "target_service_accounts": [ - "target_service_accounts_value1", - "target_service_accounts_value2", - ], - "tls_inspect": True, - } - # The version of a generated dependency at test runtime may differ from the version used during generation. - # Delete any fields which are not present in the current runtime dependency - # See https://github.com/googleapis/gapic-generator-python/issues/1748 - - # Determine if the message type is proto-plus or protobuf - test_field = compute.AddRuleNetworkFirewallPolicyRequest.meta.fields[ - "firewall_policy_rule_resource" - ] - - def get_message_fields(field): - # Given a field which is a message (composite type), return a list with - # all the fields of the message. - # If the field is not a composite type, return an empty list. - message_fields = [] - - if hasattr(field, "message") and field.message: - is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") - - if is_field_type_proto_plus_type: - message_fields = field.message.meta.fields.values() - # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types - else: # pragma: NO COVER - message_fields = field.message.DESCRIPTOR.fields - return message_fields - - runtime_nested_fields = [ - (field.name, nested_field.name) - for field in get_message_fields(test_field) - for nested_field in get_message_fields(field) - ] - - subfields_not_in_runtime = [] - - # For each item in the sample request, create a list of sub fields which are not present at runtime - # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime - for field, value in request_init[ - "firewall_policy_rule_resource" - ].items(): # pragma: NO COVER - result = None - is_repeated = False - # For repeated fields - if isinstance(value, list) and len(value): - is_repeated = True - result = value[0] - # For fields where the type is another message - if isinstance(value, dict): - result = value - - if result and hasattr(result, "keys"): - for subfield in result.keys(): - if (field, subfield) not in runtime_nested_fields: - subfields_not_in_runtime.append( - { - "field": field, - "subfield": subfield, - "is_repeated": is_repeated, - } - ) - - # Remove fields from the sample request which are not present in the runtime version of the dependency - # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime - for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER - field = subfield_to_delete.get("field") - field_repeated = subfield_to_delete.get("is_repeated") - subfield = subfield_to_delete.get("subfield") - if subfield: - if field_repeated: - for i in range( - 0, len(request_init["firewall_policy_rule_resource"][field]) - ): - del request_init["firewall_policy_rule_resource"][field][i][ - subfield - ] - else: - del request_init["firewall_policy_rule_resource"][field][subfield] request = request_type(**request_init) # Mock the http request call within the method and fake a response. @@ -7049,7 +9346,7 @@ def get_message_fields(field): response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.add_rule(request) + response = client.delete(request) # Establish that the response is the type that we expect. assert isinstance(response, extended_operation.ExtendedOperation) @@ -7078,7 +9375,7 @@ def get_message_fields(field): @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_add_rule_rest_interceptors(null_interceptor): +def test_delete_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -7092,17 +9389,17 @@ def test_add_rule_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_add_rule" + transports.NetworkFirewallPoliciesRestInterceptor, "post_delete" ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_add_rule_with_metadata" + transports.NetworkFirewallPoliciesRestInterceptor, "post_delete_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_add_rule" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_delete" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.AddRuleNetworkFirewallPolicyRequest.pb( - compute.AddRuleNetworkFirewallPolicyRequest() + pb_message = compute.DeleteNetworkFirewallPolicyRequest.pb( + compute.DeleteNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -7117,7 +9414,7 @@ def test_add_rule_rest_interceptors(null_interceptor): return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.AddRuleNetworkFirewallPolicyRequest() + request = compute.DeleteNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), @@ -7126,7 +9423,7 @@ def test_add_rule_rest_interceptors(null_interceptor): post.return_value = compute.Operation() post_with_metadata.return_value = compute.Operation(), metadata - client.add_rule( + client.delete( request, metadata=[ ("key", "val"), @@ -7139,14 +9436,12 @@ def test_add_rule_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_aggregated_list_rest_bad_request( - request_type=compute.AggregatedListNetworkFirewallPoliciesRequest, -): +def test_get_rest_bad_request(request_type=compute.GetNetworkFirewallPolicyRequest): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1"} + request_init = {"project": "sample1", "firewall_policy": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -7161,34 +9456,42 @@ def test_aggregated_list_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.aggregated_list(request) + client.get(request) @pytest.mark.parametrize( "request_type", [ - compute.AggregatedListNetworkFirewallPoliciesRequest, + compute.GetNetworkFirewallPolicyRequest, dict, ], ) -def test_aggregated_list_rest_call_success(request_type): +def test_get_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1"} + request_init = {"project": "sample1", "firewall_policy": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.NetworkFirewallPolicyAggregatedList( - id="id_value", + return_value = compute.FirewallPolicy( + creation_timestamp="creation_timestamp_value", + description="description_value", + display_name="display_name_value", + fingerprint="fingerprint_value", + id=205, kind="kind_value", - next_page_token="next_page_token_value", + name="name_value", + parent="parent_value", + region="region_value", + rule_tuple_count=1737, self_link="self_link_value", - unreachables=["unreachables_value"], + self_link_with_id="self_link_with_id_value", + short_name="short_name_value", ) # Wrap the value into a proper Response obj @@ -7196,24 +9499,32 @@ def test_aggregated_list_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.NetworkFirewallPolicyAggregatedList.pb(return_value) + return_value = compute.FirewallPolicy.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.aggregated_list(request) + response = client.get(request) # Establish that the response is the type that we expect. - assert isinstance(response, pagers.AggregatedListPager) - assert response.id == "id_value" + assert isinstance(response, compute.FirewallPolicy) + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.display_name == "display_name_value" + assert response.fingerprint == "fingerprint_value" + assert response.id == 205 assert response.kind == "kind_value" - assert response.next_page_token == "next_page_token_value" + assert response.name == "name_value" + assert response.parent == "parent_value" + assert response.region == "region_value" + assert response.rule_tuple_count == 1737 assert response.self_link == "self_link_value" - assert response.unreachables == ["unreachables_value"] + assert response.self_link_with_id == "self_link_with_id_value" + assert response.short_name == "short_name_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_aggregated_list_rest_interceptors(null_interceptor): +def test_get_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -7227,18 +9538,17 @@ def test_aggregated_list_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_aggregated_list" + transports.NetworkFirewallPoliciesRestInterceptor, "post_get" ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, - "post_aggregated_list_with_metadata", + transports.NetworkFirewallPoliciesRestInterceptor, "post_get_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_aggregated_list" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_get" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.AggregatedListNetworkFirewallPoliciesRequest.pb( - compute.AggregatedListNetworkFirewallPoliciesRequest() + pb_message = compute.GetNetworkFirewallPolicyRequest.pb( + compute.GetNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -7250,24 +9560,19 @@ def test_aggregated_list_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.NetworkFirewallPolicyAggregatedList.to_json( - compute.NetworkFirewallPolicyAggregatedList() - ) + return_value = compute.FirewallPolicy.to_json(compute.FirewallPolicy()) req.return_value.content = return_value - request = compute.AggregatedListNetworkFirewallPoliciesRequest() + request = compute.GetNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.NetworkFirewallPolicyAggregatedList() - post_with_metadata.return_value = ( - compute.NetworkFirewallPolicyAggregatedList(), - metadata, - ) + post.return_value = compute.FirewallPolicy() + post_with_metadata.return_value = compute.FirewallPolicy(), metadata - client.aggregated_list( + client.get( request, metadata=[ ("key", "val"), @@ -7280,8 +9585,8 @@ def test_aggregated_list_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_clone_rules_rest_bad_request( - request_type=compute.CloneRulesNetworkFirewallPolicyRequest, +def test_get_association_rest_bad_request( + request_type=compute.GetAssociationNetworkFirewallPolicyRequest, ): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" @@ -7302,17 +9607,17 @@ def test_clone_rules_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.clone_rules(request) + client.get_association(request) @pytest.mark.parametrize( "request_type", [ - compute.CloneRulesNetworkFirewallPolicyRequest, + compute.GetAssociationNetworkFirewallPolicyRequest, dict, ], ) -def test_clone_rules_rest_call_success(request_type): +def test_get_association_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -7324,29 +9629,12 @@ def test_clone_rules_rest_call_success(request_type): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation( - client_operation_id="client_operation_id_value", - creation_timestamp="creation_timestamp_value", - description="description_value", - end_time="end_time_value", - http_error_message="http_error_message_value", - http_error_status_code=2374, - id=205, - insert_time="insert_time_value", - kind="kind_value", + return_value = compute.FirewallPolicyAssociation( + attachment_target="attachment_target_value", + display_name="display_name_value", + firewall_policy_id="firewall_policy_id_value", name="name_value", - operation_group_id="operation_group_id_value", - operation_type="operation_type_value", - progress=885, - region="region_value", - self_link="self_link_value", - start_time="start_time_value", - status=compute.Operation.Status.DONE, - status_message="status_message_value", - target_id=947, - target_link="target_link_value", - user="user_value", - zone="zone_value", + short_name="short_name_value", ) # Wrap the value into a proper Response obj @@ -7354,41 +9642,24 @@ def test_clone_rules_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.FirewallPolicyAssociation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.clone_rules(request) + response = client.get_association(request) # Establish that the response is the type that we expect. - assert isinstance(response, extended_operation.ExtendedOperation) - assert response.client_operation_id == "client_operation_id_value" - assert response.creation_timestamp == "creation_timestamp_value" - assert response.description == "description_value" - assert response.end_time == "end_time_value" - assert response.http_error_message == "http_error_message_value" - assert response.http_error_status_code == 2374 - assert response.id == 205 - assert response.insert_time == "insert_time_value" - assert response.kind == "kind_value" + assert isinstance(response, compute.FirewallPolicyAssociation) + assert response.attachment_target == "attachment_target_value" + assert response.display_name == "display_name_value" + assert response.firewall_policy_id == "firewall_policy_id_value" assert response.name == "name_value" - assert response.operation_group_id == "operation_group_id_value" - assert response.operation_type == "operation_type_value" - assert response.progress == 885 - assert response.region == "region_value" - assert response.self_link == "self_link_value" - assert response.start_time == "start_time_value" - assert response.status == compute.Operation.Status.DONE - assert response.status_message == "status_message_value" - assert response.target_id == 947 - assert response.target_link == "target_link_value" - assert response.user == "user_value" - assert response.zone == "zone_value" + assert response.short_name == "short_name_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_clone_rules_rest_interceptors(null_interceptor): +def test_get_association_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -7402,18 +9673,18 @@ def test_clone_rules_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_clone_rules" + transports.NetworkFirewallPoliciesRestInterceptor, "post_get_association" ) as post, mock.patch.object( transports.NetworkFirewallPoliciesRestInterceptor, - "post_clone_rules_with_metadata", + "post_get_association_with_metadata", ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_clone_rules" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_get_association" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.CloneRulesNetworkFirewallPolicyRequest.pb( - compute.CloneRulesNetworkFirewallPolicyRequest() + pb_message = compute.GetAssociationNetworkFirewallPolicyRequest.pb( + compute.GetAssociationNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -7425,19 +9696,21 @@ def test_clone_rules_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.Operation.to_json(compute.Operation()) + return_value = compute.FirewallPolicyAssociation.to_json( + compute.FirewallPolicyAssociation() + ) req.return_value.content = return_value - request = compute.CloneRulesNetworkFirewallPolicyRequest() + request = compute.GetAssociationNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.Operation() - post_with_metadata.return_value = compute.Operation(), metadata + post.return_value = compute.FirewallPolicyAssociation() + post_with_metadata.return_value = compute.FirewallPolicyAssociation(), metadata - client.clone_rules( + client.get_association( request, metadata=[ ("key", "val"), @@ -7450,14 +9723,14 @@ def test_clone_rules_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_delete_rest_bad_request( - request_type=compute.DeleteNetworkFirewallPolicyRequest, +def test_get_iam_policy_rest_bad_request( + request_type=compute.GetIamPolicyNetworkFirewallPolicyRequest, ): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init = {"project": "sample1", "resource": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -7472,51 +9745,32 @@ def test_delete_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.delete(request) + client.get_iam_policy(request) @pytest.mark.parametrize( "request_type", [ - compute.DeleteNetworkFirewallPolicyRequest, + compute.GetIamPolicyNetworkFirewallPolicyRequest, dict, ], ) -def test_delete_rest_call_success(request_type): +def test_get_iam_policy_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init = {"project": "sample1", "resource": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation( - client_operation_id="client_operation_id_value", - creation_timestamp="creation_timestamp_value", - description="description_value", - end_time="end_time_value", - http_error_message="http_error_message_value", - http_error_status_code=2374, - id=205, - insert_time="insert_time_value", - kind="kind_value", - name="name_value", - operation_group_id="operation_group_id_value", - operation_type="operation_type_value", - progress=885, - region="region_value", - self_link="self_link_value", - start_time="start_time_value", - status=compute.Operation.Status.DONE, - status_message="status_message_value", - target_id=947, - target_link="target_link_value", - user="user_value", - zone="zone_value", + return_value = compute.Policy( + etag="etag_value", + iam_owned=True, + version=774, ) # Wrap the value into a proper Response obj @@ -7524,41 +9778,22 @@ def test_delete_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.Policy.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.delete(request) + response = client.get_iam_policy(request) # Establish that the response is the type that we expect. - assert isinstance(response, extended_operation.ExtendedOperation) - assert response.client_operation_id == "client_operation_id_value" - assert response.creation_timestamp == "creation_timestamp_value" - assert response.description == "description_value" - assert response.end_time == "end_time_value" - assert response.http_error_message == "http_error_message_value" - assert response.http_error_status_code == 2374 - assert response.id == 205 - assert response.insert_time == "insert_time_value" - assert response.kind == "kind_value" - assert response.name == "name_value" - assert response.operation_group_id == "operation_group_id_value" - assert response.operation_type == "operation_type_value" - assert response.progress == 885 - assert response.region == "region_value" - assert response.self_link == "self_link_value" - assert response.start_time == "start_time_value" - assert response.status == compute.Operation.Status.DONE - assert response.status_message == "status_message_value" - assert response.target_id == 947 - assert response.target_link == "target_link_value" - assert response.user == "user_value" - assert response.zone == "zone_value" + assert isinstance(response, compute.Policy) + assert response.etag == "etag_value" + assert response.iam_owned is True + assert response.version == 774 @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_delete_rest_interceptors(null_interceptor): +def test_get_iam_policy_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -7572,17 +9807,18 @@ def test_delete_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_delete" + transports.NetworkFirewallPoliciesRestInterceptor, "post_get_iam_policy" ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_delete_with_metadata" + transports.NetworkFirewallPoliciesRestInterceptor, + "post_get_iam_policy_with_metadata", ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_delete" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_get_iam_policy" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.DeleteNetworkFirewallPolicyRequest.pb( - compute.DeleteNetworkFirewallPolicyRequest() + pb_message = compute.GetIamPolicyNetworkFirewallPolicyRequest.pb( + compute.GetIamPolicyNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -7594,19 +9830,19 @@ def test_delete_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.Operation.to_json(compute.Operation()) + return_value = compute.Policy.to_json(compute.Policy()) req.return_value.content = return_value - request = compute.DeleteNetworkFirewallPolicyRequest() + request = compute.GetIamPolicyNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.Operation() - post_with_metadata.return_value = compute.Operation(), metadata + post.return_value = compute.Policy() + post_with_metadata.return_value = compute.Policy(), metadata - client.delete( + client.get_iam_policy( request, metadata=[ ("key", "val"), @@ -7619,7 +9855,9 @@ def test_delete_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_get_rest_bad_request(request_type=compute.GetNetworkFirewallPolicyRequest): +def test_get_packet_mirroring_rule_rest_bad_request( + request_type=compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest, +): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -7639,17 +9877,17 @@ def test_get_rest_bad_request(request_type=compute.GetNetworkFirewallPolicyReque response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get(request) + client.get_packet_mirroring_rule(request) @pytest.mark.parametrize( "request_type", [ - compute.GetNetworkFirewallPolicyRequest, + compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest, dict, ], ) -def test_get_rest_call_success(request_type): +def test_get_packet_mirroring_rule_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -7661,20 +9899,20 @@ def test_get_rest_call_success(request_type): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicy( - creation_timestamp="creation_timestamp_value", + return_value = compute.FirewallPolicyRule( + action="action_value", description="description_value", - display_name="display_name_value", - fingerprint="fingerprint_value", - id=205, + direction="direction_value", + disabled=True, + enable_logging=True, kind="kind_value", - name="name_value", - parent="parent_value", - region="region_value", + priority=898, + rule_name="rule_name_value", rule_tuple_count=1737, - self_link="self_link_value", - self_link_with_id="self_link_with_id_value", - short_name="short_name_value", + security_profile_group="security_profile_group_value", + target_resources=["target_resources_value"], + target_service_accounts=["target_service_accounts_value"], + tls_inspect=True, ) # Wrap the value into a proper Response obj @@ -7682,32 +9920,32 @@ def test_get_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicy.pb(return_value) + return_value = compute.FirewallPolicyRule.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get(request) + response = client.get_packet_mirroring_rule(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.FirewallPolicy) - assert response.creation_timestamp == "creation_timestamp_value" + assert isinstance(response, compute.FirewallPolicyRule) + assert response.action == "action_value" assert response.description == "description_value" - assert response.display_name == "display_name_value" - assert response.fingerprint == "fingerprint_value" - assert response.id == 205 + assert response.direction == "direction_value" + assert response.disabled is True + assert response.enable_logging is True assert response.kind == "kind_value" - assert response.name == "name_value" - assert response.parent == "parent_value" - assert response.region == "region_value" + assert response.priority == 898 + assert response.rule_name == "rule_name_value" assert response.rule_tuple_count == 1737 - assert response.self_link == "self_link_value" - assert response.self_link_with_id == "self_link_with_id_value" - assert response.short_name == "short_name_value" + assert response.security_profile_group == "security_profile_group_value" + assert response.target_resources == ["target_resources_value"] + assert response.target_service_accounts == ["target_service_accounts_value"] + assert response.tls_inspect is True @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_rest_interceptors(null_interceptor): +def test_get_packet_mirroring_rule_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -7721,17 +9959,20 @@ def test_get_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_get" + transports.NetworkFirewallPoliciesRestInterceptor, + "post_get_packet_mirroring_rule", ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_get_with_metadata" + transports.NetworkFirewallPoliciesRestInterceptor, + "post_get_packet_mirroring_rule_with_metadata", ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_get" + transports.NetworkFirewallPoliciesRestInterceptor, + "pre_get_packet_mirroring_rule", ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetNetworkFirewallPolicyRequest.pb( - compute.GetNetworkFirewallPolicyRequest() + pb_message = compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest.pb( + compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -7743,19 +9984,19 @@ def test_get_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.FirewallPolicy.to_json(compute.FirewallPolicy()) + return_value = compute.FirewallPolicyRule.to_json(compute.FirewallPolicyRule()) req.return_value.content = return_value - request = compute.GetNetworkFirewallPolicyRequest() + request = compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.FirewallPolicy() - post_with_metadata.return_value = compute.FirewallPolicy(), metadata + post.return_value = compute.FirewallPolicyRule() + post_with_metadata.return_value = compute.FirewallPolicyRule(), metadata - client.get( + client.get_packet_mirroring_rule( request, metadata=[ ("key", "val"), @@ -7768,8 +10009,8 @@ def test_get_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_get_association_rest_bad_request( - request_type=compute.GetAssociationNetworkFirewallPolicyRequest, +def test_get_rule_rest_bad_request( + request_type=compute.GetRuleNetworkFirewallPolicyRequest, ): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" @@ -7790,17 +10031,17 @@ def test_get_association_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_association(request) + client.get_rule(request) @pytest.mark.parametrize( "request_type", [ - compute.GetAssociationNetworkFirewallPolicyRequest, + compute.GetRuleNetworkFirewallPolicyRequest, dict, ], ) -def test_get_association_rest_call_success(request_type): +def test_get_rule_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -7812,12 +10053,20 @@ def test_get_association_rest_call_success(request_type): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyAssociation( - attachment_target="attachment_target_value", - display_name="display_name_value", - firewall_policy_id="firewall_policy_id_value", - name="name_value", - short_name="short_name_value", + return_value = compute.FirewallPolicyRule( + action="action_value", + description="description_value", + direction="direction_value", + disabled=True, + enable_logging=True, + kind="kind_value", + priority=898, + rule_name="rule_name_value", + rule_tuple_count=1737, + security_profile_group="security_profile_group_value", + target_resources=["target_resources_value"], + target_service_accounts=["target_service_accounts_value"], + tls_inspect=True, ) # Wrap the value into a proper Response obj @@ -7825,24 +10074,32 @@ def test_get_association_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyAssociation.pb(return_value) + return_value = compute.FirewallPolicyRule.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_association(request) + response = client.get_rule(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.FirewallPolicyAssociation) - assert response.attachment_target == "attachment_target_value" - assert response.display_name == "display_name_value" - assert response.firewall_policy_id == "firewall_policy_id_value" - assert response.name == "name_value" - assert response.short_name == "short_name_value" + assert isinstance(response, compute.FirewallPolicyRule) + assert response.action == "action_value" + assert response.description == "description_value" + assert response.direction == "direction_value" + assert response.disabled is True + assert response.enable_logging is True + assert response.kind == "kind_value" + assert response.priority == 898 + assert response.rule_name == "rule_name_value" + assert response.rule_tuple_count == 1737 + assert response.security_profile_group == "security_profile_group_value" + assert response.target_resources == ["target_resources_value"] + assert response.target_service_accounts == ["target_service_accounts_value"] + assert response.tls_inspect is True @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_association_rest_interceptors(null_interceptor): +def test_get_rule_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -7856,18 +10113,17 @@ def test_get_association_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_get_association" + transports.NetworkFirewallPoliciesRestInterceptor, "post_get_rule" ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, - "post_get_association_with_metadata", + transports.NetworkFirewallPoliciesRestInterceptor, "post_get_rule_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_get_association" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_get_rule" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetAssociationNetworkFirewallPolicyRequest.pb( - compute.GetAssociationNetworkFirewallPolicyRequest() + pb_message = compute.GetRuleNetworkFirewallPolicyRequest.pb( + compute.GetRuleNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -7879,81 +10135,258 @@ def test_get_association_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.FirewallPolicyAssociation.to_json( - compute.FirewallPolicyAssociation() - ) + return_value = compute.FirewallPolicyRule.to_json(compute.FirewallPolicyRule()) req.return_value.content = return_value - request = compute.GetAssociationNetworkFirewallPolicyRequest() - metadata = [ - ("key", "val"), - ("cephalopod", "squid"), - ] - pre.return_value = request, metadata - post.return_value = compute.FirewallPolicyAssociation() - post_with_metadata.return_value = compute.FirewallPolicyAssociation(), metadata + request = compute.GetRuleNetworkFirewallPolicyRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.FirewallPolicyRule() + post_with_metadata.return_value = compute.FirewallPolicyRule(), metadata + + client.get_rule( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_insert_rest_bad_request( + request_type=compute.InsertNetworkFirewallPolicyRequest, +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.insert(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.InsertNetworkFirewallPolicyRequest, + dict, + ], +) +def test_insert_rest_call_success(request_type): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1"} + request_init["firewall_policy_resource"] = { + "associations": [ + { + "attachment_target": "attachment_target_value", + "display_name": "display_name_value", + "firewall_policy_id": "firewall_policy_id_value", + "name": "name_value", + "short_name": "short_name_value", + } + ], + "creation_timestamp": "creation_timestamp_value", + "description": "description_value", + "display_name": "display_name_value", + "fingerprint": "fingerprint_value", + "id": 205, + "kind": "kind_value", + "name": "name_value", + "packet_mirroring_rules": [ + { + "action": "action_value", + "description": "description_value", + "direction": "direction_value", + "disabled": True, + "enable_logging": True, + "kind": "kind_value", + "match": { + "dest_address_groups": [ + "dest_address_groups_value1", + "dest_address_groups_value2", + ], + "dest_fqdns": ["dest_fqdns_value1", "dest_fqdns_value2"], + "dest_ip_ranges": [ + "dest_ip_ranges_value1", + "dest_ip_ranges_value2", + ], + "dest_region_codes": [ + "dest_region_codes_value1", + "dest_region_codes_value2", + ], + "dest_threat_intelligences": [ + "dest_threat_intelligences_value1", + "dest_threat_intelligences_value2", + ], + "layer4_configs": [ + { + "ip_protocol": "ip_protocol_value", + "ports": ["ports_value1", "ports_value2"], + } + ], + "src_address_groups": [ + "src_address_groups_value1", + "src_address_groups_value2", + ], + "src_fqdns": ["src_fqdns_value1", "src_fqdns_value2"], + "src_ip_ranges": ["src_ip_ranges_value1", "src_ip_ranges_value2"], + "src_region_codes": [ + "src_region_codes_value1", + "src_region_codes_value2", + ], + "src_secure_tags": [{"name": "name_value", "state": "state_value"}], + "src_threat_intelligences": [ + "src_threat_intelligences_value1", + "src_threat_intelligences_value2", + ], + }, + "priority": 898, + "rule_name": "rule_name_value", + "rule_tuple_count": 1737, + "security_profile_group": "security_profile_group_value", + "target_resources": [ + "target_resources_value1", + "target_resources_value2", + ], + "target_secure_tags": {}, + "target_service_accounts": [ + "target_service_accounts_value1", + "target_service_accounts_value2", + ], + "tls_inspect": True, + } + ], + "parent": "parent_value", + "region": "region_value", + "rule_tuple_count": 1737, + "rules": {}, + "self_link": "self_link_value", + "self_link_with_id": "self_link_with_id_value", + "short_name": "short_name_value", + } + # The version of a generated dependency at test runtime may differ from the version used during generation. + # Delete any fields which are not present in the current runtime dependency + # See https://github.com/googleapis/gapic-generator-python/issues/1748 + + # Determine if the message type is proto-plus or protobuf + test_field = compute.InsertNetworkFirewallPolicyRequest.meta.fields[ + "firewall_policy_resource" + ] - client.get_association( - request, - metadata=[ - ("key", "val"), - ("cephalopod", "squid"), - ], - ) + def get_message_fields(field): + # Given a field which is a message (composite type), return a list with + # all the fields of the message. + # If the field is not a composite type, return an empty list. + message_fields = [] - pre.assert_called_once() - post.assert_called_once() - post_with_metadata.assert_called_once() + if hasattr(field, "message") and field.message: + is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") + if is_field_type_proto_plus_type: + message_fields = field.message.meta.fields.values() + # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types + else: # pragma: NO COVER + message_fields = field.message.DESCRIPTOR.fields + return message_fields -def test_get_iam_policy_rest_bad_request( - request_type=compute.GetIamPolicyNetworkFirewallPolicyRequest, -): - client = NetworkFirewallPoliciesClient( - credentials=ga_credentials.AnonymousCredentials(), transport="rest" - ) - # send a request that will satisfy transcoding - request_init = {"project": "sample1", "resource": "sample2"} - request = request_type(**request_init) + runtime_nested_fields = [ + (field.name, nested_field.name) + for field in get_message_fields(test_field) + for nested_field in get_message_fields(field) + ] - # Mock the http request call within the method and fake a BadRequest error. - with mock.patch.object(Session, "request") as req, pytest.raises( - core_exceptions.BadRequest - ): - # Wrap the value into a proper Response obj - response_value = mock.Mock() - json_return_value = "" - response_value.json = mock.Mock(return_value={}) - response_value.status_code = 400 - response_value.request = mock.Mock() - req.return_value = response_value - req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_iam_policy(request) + subfields_not_in_runtime = [] + # For each item in the sample request, create a list of sub fields which are not present at runtime + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for field, value in request_init[ + "firewall_policy_resource" + ].items(): # pragma: NO COVER + result = None + is_repeated = False + # For repeated fields + if isinstance(value, list) and len(value): + is_repeated = True + result = value[0] + # For fields where the type is another message + if isinstance(value, dict): + result = value -@pytest.mark.parametrize( - "request_type", - [ - compute.GetIamPolicyNetworkFirewallPolicyRequest, - dict, - ], -) -def test_get_iam_policy_rest_call_success(request_type): - client = NetworkFirewallPoliciesClient( - credentials=ga_credentials.AnonymousCredentials(), transport="rest" - ) + if result and hasattr(result, "keys"): + for subfield in result.keys(): + if (field, subfield) not in runtime_nested_fields: + subfields_not_in_runtime.append( + { + "field": field, + "subfield": subfield, + "is_repeated": is_repeated, + } + ) - # send a request that will satisfy transcoding - request_init = {"project": "sample1", "resource": "sample2"} + # Remove fields from the sample request which are not present in the runtime version of the dependency + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER + field = subfield_to_delete.get("field") + field_repeated = subfield_to_delete.get("is_repeated") + subfield = subfield_to_delete.get("subfield") + if subfield: + if field_repeated: + for i in range(0, len(request_init["firewall_policy_resource"][field])): + del request_init["firewall_policy_resource"][field][i][subfield] + else: + del request_init["firewall_policy_resource"][field][subfield] request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Policy( - etag="etag_value", - iam_owned=True, - version=774, + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", ) # Wrap the value into a proper Response obj @@ -7961,22 +10394,41 @@ def test_get_iam_policy_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Policy.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_iam_policy(request) + response = client.insert(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.Policy) - assert response.etag == "etag_value" - assert response.iam_owned is True - assert response.version == 774 + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_iam_policy_rest_interceptors(null_interceptor): +def test_insert_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -7990,18 +10442,17 @@ def test_get_iam_policy_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_get_iam_policy" + transports.NetworkFirewallPoliciesRestInterceptor, "post_insert" ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, - "post_get_iam_policy_with_metadata", + transports.NetworkFirewallPoliciesRestInterceptor, "post_insert_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_get_iam_policy" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_insert" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetIamPolicyNetworkFirewallPolicyRequest.pb( - compute.GetIamPolicyNetworkFirewallPolicyRequest() + pb_message = compute.InsertNetworkFirewallPolicyRequest.pb( + compute.InsertNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -8013,19 +10464,19 @@ def test_get_iam_policy_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.Policy.to_json(compute.Policy()) + return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.GetIamPolicyNetworkFirewallPolicyRequest() + request = compute.InsertNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.Policy() - post_with_metadata.return_value = compute.Policy(), metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata - client.get_iam_policy( + client.insert( request, metadata=[ ("key", "val"), @@ -8038,14 +10489,12 @@ def test_get_iam_policy_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_get_rule_rest_bad_request( - request_type=compute.GetRuleNetworkFirewallPolicyRequest, -): +def test_list_rest_bad_request(request_type=compute.ListNetworkFirewallPoliciesRequest): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init = {"project": "sample1"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -8060,42 +10509,32 @@ def test_get_rule_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_rule(request) + client.list(request) @pytest.mark.parametrize( "request_type", [ - compute.GetRuleNetworkFirewallPolicyRequest, + compute.ListNetworkFirewallPoliciesRequest, dict, ], ) -def test_get_rule_rest_call_success(request_type): +def test_list_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "firewall_policy": "sample2"} + request_init = {"project": "sample1"} request = request_type(**request_init) - # Mock the http request call within the method and fake a response. - with mock.patch.object(type(client.transport._session), "request") as req: - # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyRule( - action="action_value", - description="description_value", - direction="direction_value", - disabled=True, - enable_logging=True, + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.FirewallPolicyList( + id="id_value", kind="kind_value", - priority=898, - rule_name="rule_name_value", - rule_tuple_count=1737, - security_profile_group="security_profile_group_value", - target_resources=["target_resources_value"], - target_service_accounts=["target_service_accounts_value"], - tls_inspect=True, + next_page_token="next_page_token_value", ) # Wrap the value into a proper Response obj @@ -8103,32 +10542,22 @@ def test_get_rule_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyRule.pb(return_value) + return_value = compute.FirewallPolicyList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_rule(request) + response = client.list(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.FirewallPolicyRule) - assert response.action == "action_value" - assert response.description == "description_value" - assert response.direction == "direction_value" - assert response.disabled is True - assert response.enable_logging is True + assert isinstance(response, pagers.ListPager) + assert response.id == "id_value" assert response.kind == "kind_value" - assert response.priority == 898 - assert response.rule_name == "rule_name_value" - assert response.rule_tuple_count == 1737 - assert response.security_profile_group == "security_profile_group_value" - assert response.target_resources == ["target_resources_value"] - assert response.target_service_accounts == ["target_service_accounts_value"] - assert response.tls_inspect is True + assert response.next_page_token == "next_page_token_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_rule_rest_interceptors(null_interceptor): +def test_list_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -8142,17 +10571,17 @@ def test_get_rule_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_get_rule" + transports.NetworkFirewallPoliciesRestInterceptor, "post_list" ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_get_rule_with_metadata" + transports.NetworkFirewallPoliciesRestInterceptor, "post_list_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_get_rule" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_list" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetRuleNetworkFirewallPolicyRequest.pb( - compute.GetRuleNetworkFirewallPolicyRequest() + pb_message = compute.ListNetworkFirewallPoliciesRequest.pb( + compute.ListNetworkFirewallPoliciesRequest() ) transcode.return_value = { "method": "post", @@ -8164,19 +10593,19 @@ def test_get_rule_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.FirewallPolicyRule.to_json(compute.FirewallPolicyRule()) + return_value = compute.FirewallPolicyList.to_json(compute.FirewallPolicyList()) req.return_value.content = return_value - request = compute.GetRuleNetworkFirewallPolicyRequest() + request = compute.ListNetworkFirewallPoliciesRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.FirewallPolicyRule() - post_with_metadata.return_value = compute.FirewallPolicyRule(), metadata + post.return_value = compute.FirewallPolicyList() + post_with_metadata.return_value = compute.FirewallPolicyList(), metadata - client.get_rule( + client.list( request, metadata=[ ("key", "val"), @@ -8189,14 +10618,12 @@ def test_get_rule_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_insert_rest_bad_request( - request_type=compute.InsertNetworkFirewallPolicyRequest, -): +def test_patch_rest_bad_request(request_type=compute.PatchNetworkFirewallPolicyRequest): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1"} + request_init = {"project": "sample1", "firewall_policy": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -8211,23 +10638,23 @@ def test_insert_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.insert(request) + client.patch(request) @pytest.mark.parametrize( "request_type", [ - compute.InsertNetworkFirewallPolicyRequest, + compute.PatchNetworkFirewallPolicyRequest, dict, ], ) -def test_insert_rest_call_success(request_type): +def test_patch_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1"} + request_init = {"project": "sample1", "firewall_policy": "sample2"} request_init["firewall_policy_resource"] = { "associations": [ { @@ -8245,10 +10672,7 @@ def test_insert_rest_call_success(request_type): "id": 205, "kind": "kind_value", "name": "name_value", - "parent": "parent_value", - "region": "region_value", - "rule_tuple_count": 1737, - "rules": [ + "packet_mirroring_rules": [ { "action": "action_value", "description": "description_value", @@ -8312,6 +10736,10 @@ def test_insert_rest_call_success(request_type): "tls_inspect": True, } ], + "parent": "parent_value", + "region": "region_value", + "rule_tuple_count": 1737, + "rules": {}, "self_link": "self_link_value", "self_link_with_id": "self_link_with_id_value", "short_name": "short_name_value", @@ -8321,7 +10749,7 @@ def test_insert_rest_call_success(request_type): # See https://github.com/googleapis/gapic-generator-python/issues/1748 # Determine if the message type is proto-plus or protobuf - test_field = compute.InsertNetworkFirewallPolicyRequest.meta.fields[ + test_field = compute.PatchNetworkFirewallPolicyRequest.meta.fields[ "firewall_policy_resource" ] @@ -8360,209 +10788,61 @@ def get_message_fields(field): if isinstance(value, list) and len(value): is_repeated = True result = value[0] - # For fields where the type is another message - if isinstance(value, dict): - result = value - - if result and hasattr(result, "keys"): - for subfield in result.keys(): - if (field, subfield) not in runtime_nested_fields: - subfields_not_in_runtime.append( - { - "field": field, - "subfield": subfield, - "is_repeated": is_repeated, - } - ) - - # Remove fields from the sample request which are not present in the runtime version of the dependency - # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime - for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER - field = subfield_to_delete.get("field") - field_repeated = subfield_to_delete.get("is_repeated") - subfield = subfield_to_delete.get("subfield") - if subfield: - if field_repeated: - for i in range(0, len(request_init["firewall_policy_resource"][field])): - del request_init["firewall_policy_resource"][field][i][subfield] - else: - del request_init["firewall_policy_resource"][field][subfield] - request = request_type(**request_init) - - # Mock the http request call within the method and fake a response. - with mock.patch.object(type(client.transport._session), "request") as req: - # Designate an appropriate value for the returned response. - return_value = compute.Operation( - client_operation_id="client_operation_id_value", - creation_timestamp="creation_timestamp_value", - description="description_value", - end_time="end_time_value", - http_error_message="http_error_message_value", - http_error_status_code=2374, - id=205, - insert_time="insert_time_value", - kind="kind_value", - name="name_value", - operation_group_id="operation_group_id_value", - operation_type="operation_type_value", - progress=885, - region="region_value", - self_link="self_link_value", - start_time="start_time_value", - status=compute.Operation.Status.DONE, - status_message="status_message_value", - target_id=947, - target_link="target_link_value", - user="user_value", - zone="zone_value", - ) - - # Wrap the value into a proper Response obj - response_value = mock.Mock() - response_value.status_code = 200 - - # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) - json_return_value = json_format.MessageToJson(return_value) - response_value.content = json_return_value.encode("UTF-8") - req.return_value = response_value - req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.insert(request) - - # Establish that the response is the type that we expect. - assert isinstance(response, extended_operation.ExtendedOperation) - assert response.client_operation_id == "client_operation_id_value" - assert response.creation_timestamp == "creation_timestamp_value" - assert response.description == "description_value" - assert response.end_time == "end_time_value" - assert response.http_error_message == "http_error_message_value" - assert response.http_error_status_code == 2374 - assert response.id == 205 - assert response.insert_time == "insert_time_value" - assert response.kind == "kind_value" - assert response.name == "name_value" - assert response.operation_group_id == "operation_group_id_value" - assert response.operation_type == "operation_type_value" - assert response.progress == 885 - assert response.region == "region_value" - assert response.self_link == "self_link_value" - assert response.start_time == "start_time_value" - assert response.status == compute.Operation.Status.DONE - assert response.status_message == "status_message_value" - assert response.target_id == 947 - assert response.target_link == "target_link_value" - assert response.user == "user_value" - assert response.zone == "zone_value" - - -@pytest.mark.parametrize("null_interceptor", [True, False]) -def test_insert_rest_interceptors(null_interceptor): - transport = transports.NetworkFirewallPoliciesRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - interceptor=None - if null_interceptor - else transports.NetworkFirewallPoliciesRestInterceptor(), - ) - client = NetworkFirewallPoliciesClient(transport=transport) - - with mock.patch.object( - type(client.transport._session), "request" - ) as req, mock.patch.object( - path_template, "transcode" - ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_insert" - ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_insert_with_metadata" - ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_insert" - ) as pre: - pre.assert_not_called() - post.assert_not_called() - post_with_metadata.assert_not_called() - pb_message = compute.InsertNetworkFirewallPolicyRequest.pb( - compute.InsertNetworkFirewallPolicyRequest() - ) - transcode.return_value = { - "method": "post", - "uri": "my_uri", - "body": pb_message, - "query_params": pb_message, - } - - req.return_value = mock.Mock() - req.return_value.status_code = 200 - req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.Operation.to_json(compute.Operation()) - req.return_value.content = return_value - - request = compute.InsertNetworkFirewallPolicyRequest() - metadata = [ - ("key", "val"), - ("cephalopod", "squid"), - ] - pre.return_value = request, metadata - post.return_value = compute.Operation() - post_with_metadata.return_value = compute.Operation(), metadata - - client.insert( - request, - metadata=[ - ("key", "val"), - ("cephalopod", "squid"), - ], - ) - - pre.assert_called_once() - post.assert_called_once() - post_with_metadata.assert_called_once() - - -def test_list_rest_bad_request(request_type=compute.ListNetworkFirewallPoliciesRequest): - client = NetworkFirewallPoliciesClient( - credentials=ga_credentials.AnonymousCredentials(), transport="rest" - ) - # send a request that will satisfy transcoding - request_init = {"project": "sample1"} - request = request_type(**request_init) - - # Mock the http request call within the method and fake a BadRequest error. - with mock.patch.object(Session, "request") as req, pytest.raises( - core_exceptions.BadRequest - ): - # Wrap the value into a proper Response obj - response_value = mock.Mock() - json_return_value = "" - response_value.json = mock.Mock(return_value={}) - response_value.status_code = 400 - response_value.request = mock.Mock() - req.return_value = response_value - req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.list(request) - + # For fields where the type is another message + if isinstance(value, dict): + result = value -@pytest.mark.parametrize( - "request_type", - [ - compute.ListNetworkFirewallPoliciesRequest, - dict, - ], -) -def test_list_rest_call_success(request_type): - client = NetworkFirewallPoliciesClient( - credentials=ga_credentials.AnonymousCredentials(), transport="rest" - ) + if result and hasattr(result, "keys"): + for subfield in result.keys(): + if (field, subfield) not in runtime_nested_fields: + subfields_not_in_runtime.append( + { + "field": field, + "subfield": subfield, + "is_repeated": is_repeated, + } + ) - # send a request that will satisfy transcoding - request_init = {"project": "sample1"} + # Remove fields from the sample request which are not present in the runtime version of the dependency + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER + field = subfield_to_delete.get("field") + field_repeated = subfield_to_delete.get("is_repeated") + subfield = subfield_to_delete.get("subfield") + if subfield: + if field_repeated: + for i in range(0, len(request_init["firewall_policy_resource"][field])): + del request_init["firewall_policy_resource"][field][i][subfield] + else: + del request_init["firewall_policy_resource"][field][subfield] request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.FirewallPolicyList( - id="id_value", + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", kind="kind_value", - next_page_token="next_page_token_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", ) # Wrap the value into a proper Response obj @@ -8570,22 +10850,41 @@ def test_list_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.FirewallPolicyList.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.list(request) + response = client.patch(request) # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListPager) - assert response.id == "id_value" + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" assert response.kind == "kind_value" - assert response.next_page_token == "next_page_token_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_list_rest_interceptors(null_interceptor): +def test_patch_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -8599,17 +10898,17 @@ def test_list_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_list" + transports.NetworkFirewallPoliciesRestInterceptor, "post_patch" ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_list_with_metadata" + transports.NetworkFirewallPoliciesRestInterceptor, "post_patch_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_list" + transports.NetworkFirewallPoliciesRestInterceptor, "pre_patch" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.ListNetworkFirewallPoliciesRequest.pb( - compute.ListNetworkFirewallPoliciesRequest() + pb_message = compute.PatchNetworkFirewallPolicyRequest.pb( + compute.PatchNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -8621,19 +10920,19 @@ def test_list_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.FirewallPolicyList.to_json(compute.FirewallPolicyList()) + return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.ListNetworkFirewallPoliciesRequest() + request = compute.PatchNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.FirewallPolicyList() - post_with_metadata.return_value = compute.FirewallPolicyList(), metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata - client.list( + client.patch( request, metadata=[ ("key", "val"), @@ -8646,7 +10945,9 @@ def test_list_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_patch_rest_bad_request(request_type=compute.PatchNetworkFirewallPolicyRequest): +def test_patch_packet_mirroring_rule_rest_bad_request( + request_type=compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, +): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -8666,119 +10967,86 @@ def test_patch_rest_bad_request(request_type=compute.PatchNetworkFirewallPolicyR response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch(request) + client.patch_packet_mirroring_rule(request) @pytest.mark.parametrize( "request_type", [ - compute.PatchNetworkFirewallPolicyRequest, + compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, dict, ], ) -def test_patch_rest_call_success(request_type): +def test_patch_packet_mirroring_rule_rest_call_success(request_type): client = NetworkFirewallPoliciesClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding request_init = {"project": "sample1", "firewall_policy": "sample2"} - request_init["firewall_policy_resource"] = { - "associations": [ - { - "attachment_target": "attachment_target_value", - "display_name": "display_name_value", - "firewall_policy_id": "firewall_policy_id_value", - "name": "name_value", - "short_name": "short_name_value", - } - ], - "creation_timestamp": "creation_timestamp_value", + request_init["firewall_policy_rule_resource"] = { + "action": "action_value", "description": "description_value", - "display_name": "display_name_value", - "fingerprint": "fingerprint_value", - "id": 205, + "direction": "direction_value", + "disabled": True, + "enable_logging": True, "kind": "kind_value", - "name": "name_value", - "parent": "parent_value", - "region": "region_value", + "match": { + "dest_address_groups": [ + "dest_address_groups_value1", + "dest_address_groups_value2", + ], + "dest_fqdns": ["dest_fqdns_value1", "dest_fqdns_value2"], + "dest_ip_ranges": ["dest_ip_ranges_value1", "dest_ip_ranges_value2"], + "dest_region_codes": [ + "dest_region_codes_value1", + "dest_region_codes_value2", + ], + "dest_threat_intelligences": [ + "dest_threat_intelligences_value1", + "dest_threat_intelligences_value2", + ], + "layer4_configs": [ + { + "ip_protocol": "ip_protocol_value", + "ports": ["ports_value1", "ports_value2"], + } + ], + "src_address_groups": [ + "src_address_groups_value1", + "src_address_groups_value2", + ], + "src_fqdns": ["src_fqdns_value1", "src_fqdns_value2"], + "src_ip_ranges": ["src_ip_ranges_value1", "src_ip_ranges_value2"], + "src_region_codes": ["src_region_codes_value1", "src_region_codes_value2"], + "src_secure_tags": [{"name": "name_value", "state": "state_value"}], + "src_threat_intelligences": [ + "src_threat_intelligences_value1", + "src_threat_intelligences_value2", + ], + }, + "priority": 898, + "rule_name": "rule_name_value", "rule_tuple_count": 1737, - "rules": [ - { - "action": "action_value", - "description": "description_value", - "direction": "direction_value", - "disabled": True, - "enable_logging": True, - "kind": "kind_value", - "match": { - "dest_address_groups": [ - "dest_address_groups_value1", - "dest_address_groups_value2", - ], - "dest_fqdns": ["dest_fqdns_value1", "dest_fqdns_value2"], - "dest_ip_ranges": [ - "dest_ip_ranges_value1", - "dest_ip_ranges_value2", - ], - "dest_region_codes": [ - "dest_region_codes_value1", - "dest_region_codes_value2", - ], - "dest_threat_intelligences": [ - "dest_threat_intelligences_value1", - "dest_threat_intelligences_value2", - ], - "layer4_configs": [ - { - "ip_protocol": "ip_protocol_value", - "ports": ["ports_value1", "ports_value2"], - } - ], - "src_address_groups": [ - "src_address_groups_value1", - "src_address_groups_value2", - ], - "src_fqdns": ["src_fqdns_value1", "src_fqdns_value2"], - "src_ip_ranges": ["src_ip_ranges_value1", "src_ip_ranges_value2"], - "src_region_codes": [ - "src_region_codes_value1", - "src_region_codes_value2", - ], - "src_secure_tags": [{"name": "name_value", "state": "state_value"}], - "src_threat_intelligences": [ - "src_threat_intelligences_value1", - "src_threat_intelligences_value2", - ], - }, - "priority": 898, - "rule_name": "rule_name_value", - "rule_tuple_count": 1737, - "security_profile_group": "security_profile_group_value", - "target_resources": [ - "target_resources_value1", - "target_resources_value2", - ], - "target_secure_tags": {}, - "target_service_accounts": [ - "target_service_accounts_value1", - "target_service_accounts_value2", - ], - "tls_inspect": True, - } + "security_profile_group": "security_profile_group_value", + "target_resources": ["target_resources_value1", "target_resources_value2"], + "target_secure_tags": {}, + "target_service_accounts": [ + "target_service_accounts_value1", + "target_service_accounts_value2", ], - "self_link": "self_link_value", - "self_link_with_id": "self_link_with_id_value", - "short_name": "short_name_value", + "tls_inspect": True, } # The version of a generated dependency at test runtime may differ from the version used during generation. # Delete any fields which are not present in the current runtime dependency # See https://github.com/googleapis/gapic-generator-python/issues/1748 # Determine if the message type is proto-plus or protobuf - test_field = compute.PatchNetworkFirewallPolicyRequest.meta.fields[ - "firewall_policy_resource" - ] + test_field = ( + compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest.meta.fields[ + "firewall_policy_rule_resource" + ] + ) def get_message_fields(field): # Given a field which is a message (composite type), return a list with @@ -8807,7 +11075,7 @@ def get_message_fields(field): # For each item in the sample request, create a list of sub fields which are not present at runtime # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime for field, value in request_init[ - "firewall_policy_resource" + "firewall_policy_rule_resource" ].items(): # pragma: NO COVER result = None is_repeated = False @@ -8838,10 +11106,14 @@ def get_message_fields(field): subfield = subfield_to_delete.get("subfield") if subfield: if field_repeated: - for i in range(0, len(request_init["firewall_policy_resource"][field])): - del request_init["firewall_policy_resource"][field][i][subfield] + for i in range( + 0, len(request_init["firewall_policy_rule_resource"][field]) + ): + del request_init["firewall_policy_rule_resource"][field][i][ + subfield + ] else: - del request_init["firewall_policy_resource"][field][subfield] + del request_init["firewall_policy_rule_resource"][field][subfield] request = request_type(**request_init) # Mock the http request call within the method and fake a response. @@ -8882,7 +11154,7 @@ def get_message_fields(field): response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch(request) + response = client.patch_packet_mirroring_rule(request) # Establish that the response is the type that we expect. assert isinstance(response, extended_operation.ExtendedOperation) @@ -8911,7 +11183,7 @@ def get_message_fields(field): @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_patch_rest_interceptors(null_interceptor): +def test_patch_packet_mirroring_rule_rest_interceptors(null_interceptor): transport = transports.NetworkFirewallPoliciesRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None @@ -8925,17 +11197,20 @@ def test_patch_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_patch" + transports.NetworkFirewallPoliciesRestInterceptor, + "post_patch_packet_mirroring_rule", ) as post, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "post_patch_with_metadata" + transports.NetworkFirewallPoliciesRestInterceptor, + "post_patch_packet_mirroring_rule_with_metadata", ) as post_with_metadata, mock.patch.object( - transports.NetworkFirewallPoliciesRestInterceptor, "pre_patch" + transports.NetworkFirewallPoliciesRestInterceptor, + "pre_patch_packet_mirroring_rule", ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.PatchNetworkFirewallPolicyRequest.pb( - compute.PatchNetworkFirewallPolicyRequest() + pb_message = compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest.pb( + compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest() ) transcode.return_value = { "method": "post", @@ -8950,7 +11225,7 @@ def test_patch_rest_interceptors(null_interceptor): return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.PatchNetworkFirewallPolicyRequest() + request = compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), @@ -8959,7 +11234,7 @@ def test_patch_rest_interceptors(null_interceptor): post.return_value = compute.Operation() post_with_metadata.return_value = compute.Operation(), metadata - client.patch( + client.patch_packet_mirroring_rule( request, metadata=[ ("key", "val"), @@ -9440,6 +11715,178 @@ def test_remove_association_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() +def test_remove_packet_mirroring_rule_rest_bad_request( + request_type=compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, +): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.remove_packet_mirroring_rule(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, + dict, + ], +) +def test_remove_packet_mirroring_rule_rest_call_success(request_type): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "firewall_policy": "sample2"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.remove_packet_mirroring_rule(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_remove_packet_mirroring_rule_rest_interceptors(null_interceptor): + transport = transports.NetworkFirewallPoliciesRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None + if null_interceptor + else transports.NetworkFirewallPoliciesRestInterceptor(), + ) + client = NetworkFirewallPoliciesClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "post_remove_packet_mirroring_rule", + ) as post, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "post_remove_packet_mirroring_rule_with_metadata", + ) as post_with_metadata, mock.patch.object( + transports.NetworkFirewallPoliciesRestInterceptor, + "pre_remove_packet_mirroring_rule", + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest.pb( + compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.Operation.to_json(compute.Operation()) + req.return_value.content = return_value + + request = compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata + + client.remove_packet_mirroring_rule( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + def test_remove_rule_rest_bad_request( request_type=compute.RemoveRuleNetworkFirewallPolicyRequest, ): @@ -10093,6 +12540,28 @@ def test_add_association_unary_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_add_packet_mirroring_rule_unary_empty_call_rest(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.add_packet_mirroring_rule), "__call__" + ) as call: + client.add_packet_mirroring_rule_unary(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.AddPacketMirroringRuleNetworkFirewallPolicyRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_add_rule_unary_empty_call_rest(): @@ -10233,6 +12702,28 @@ def test_get_iam_policy_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_get_packet_mirroring_rule_empty_call_rest(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.get_packet_mirroring_rule), "__call__" + ) as call: + client.get_packet_mirroring_rule(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.GetPacketMirroringRuleNetworkFirewallPolicyRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_get_rule_empty_call_rest(): @@ -10313,6 +12804,28 @@ def test_patch_unary_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_patch_packet_mirroring_rule_unary_empty_call_rest(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.patch_packet_mirroring_rule), "__call__" + ) as call: + client.patch_packet_mirroring_rule_unary(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.PatchPacketMirroringRuleNetworkFirewallPolicyRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_patch_rule_unary_empty_call_rest(): @@ -10355,6 +12868,28 @@ def test_remove_association_unary_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_remove_packet_mirroring_rule_unary_empty_call_rest(): + client = NetworkFirewallPoliciesClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.remove_packet_mirroring_rule), "__call__" + ) as call: + client.remove_packet_mirroring_rule_unary(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.RemovePacketMirroringRuleNetworkFirewallPolicyRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_remove_rule_unary_empty_call_rest(): @@ -10440,6 +12975,7 @@ def test_network_firewall_policies_base_transport(): # raise NotImplementedError. methods = ( "add_association", + "add_packet_mirroring_rule", "add_rule", "aggregated_list", "clone_rules", @@ -10447,12 +12983,15 @@ def test_network_firewall_policies_base_transport(): "get", "get_association", "get_iam_policy", + "get_packet_mirroring_rule", "get_rule", "insert", "list", "patch", + "patch_packet_mirroring_rule", "patch_rule", "remove_association", + "remove_packet_mirroring_rule", "remove_rule", "set_iam_policy", "test_iam_permissions", @@ -10596,6 +13135,9 @@ def test_network_firewall_policies_client_transport_session_collision(transport_ session1 = client1.transport.add_association._session session2 = client2.transport.add_association._session assert session1 != session2 + session1 = client1.transport.add_packet_mirroring_rule._session + session2 = client2.transport.add_packet_mirroring_rule._session + assert session1 != session2 session1 = client1.transport.add_rule._session session2 = client2.transport.add_rule._session assert session1 != session2 @@ -10617,6 +13159,9 @@ def test_network_firewall_policies_client_transport_session_collision(transport_ session1 = client1.transport.get_iam_policy._session session2 = client2.transport.get_iam_policy._session assert session1 != session2 + session1 = client1.transport.get_packet_mirroring_rule._session + session2 = client2.transport.get_packet_mirroring_rule._session + assert session1 != session2 session1 = client1.transport.get_rule._session session2 = client2.transport.get_rule._session assert session1 != session2 @@ -10629,12 +13174,18 @@ def test_network_firewall_policies_client_transport_session_collision(transport_ session1 = client1.transport.patch._session session2 = client2.transport.patch._session assert session1 != session2 + session1 = client1.transport.patch_packet_mirroring_rule._session + session2 = client2.transport.patch_packet_mirroring_rule._session + assert session1 != session2 session1 = client1.transport.patch_rule._session session2 = client2.transport.patch_rule._session assert session1 != session2 session1 = client1.transport.remove_association._session session2 = client2.transport.remove_association._session assert session1 != session2 + session1 = client1.transport.remove_packet_mirroring_rule._session + session2 = client2.transport.remove_packet_mirroring_rule._session + assert session1 != session2 session1 = client1.transport.remove_rule._session session2 = client2.transport.remove_rule._session assert session1 != session2 diff --git a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_node_types.py b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_node_types.py index 20d947629a32..e51b7bb7c46c 100644 --- a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_node_types.py +++ b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_node_types.py @@ -1928,6 +1928,7 @@ def test_get_rest_call_success(request_type): id=205, kind="kind_value", local_ssd_gb=1244, + max_vms=763, memory_mb=967, name="name_value", self_link="self_link_value", @@ -1955,6 +1956,7 @@ def test_get_rest_call_success(request_type): assert response.id == 205 assert response.kind == "kind_value" assert response.local_ssd_gb == 1244 + assert response.max_vms == 763 assert response.memory_mb == 967 assert response.name == "name_value" assert response.self_link == "self_link_value" diff --git a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_region_network_firewall_policies.py b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_region_network_firewall_policies.py index 01e53e03d63f..f599e4cc04aa 100644 --- a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_region_network_firewall_policies.py +++ b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_region_network_firewall_policies.py @@ -8545,10 +8545,7 @@ def test_insert_rest_call_success(request_type): "id": 205, "kind": "kind_value", "name": "name_value", - "parent": "parent_value", - "region": "region_value", - "rule_tuple_count": 1737, - "rules": [ + "packet_mirroring_rules": [ { "action": "action_value", "description": "description_value", @@ -8612,6 +8609,10 @@ def test_insert_rest_call_success(request_type): "tls_inspect": True, } ], + "parent": "parent_value", + "region": "region_value", + "rule_tuple_count": 1737, + "rules": {}, "self_link": "self_link_value", "self_link_with_id": "self_link_with_id_value", "short_name": "short_name_value", @@ -9014,10 +9015,7 @@ def test_patch_rest_call_success(request_type): "id": 205, "kind": "kind_value", "name": "name_value", - "parent": "parent_value", - "region": "region_value", - "rule_tuple_count": 1737, - "rules": [ + "packet_mirroring_rules": [ { "action": "action_value", "description": "description_value", @@ -9081,6 +9079,10 @@ def test_patch_rest_call_success(request_type): "tls_inspect": True, } ], + "parent": "parent_value", + "region": "region_value", + "rule_tuple_count": 1737, + "rules": {}, "self_link": "self_link_value", "self_link_with_id": "self_link_with_id_value", "short_name": "short_name_value", diff --git a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_routers.py b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_routers.py index c1fbdf8e0923..337cebd25618 100644 --- a/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_routers.py +++ b/packages/google-cloud-compute/tests/unit/gapic/compute_v1/test_routers.py @@ -1594,7 +1594,7 @@ def test_delete_unary_rest_flattened_error(transport: str = "rest"): ) -def test_get_rest_use_cached_wrapped_rpc(): +def test_delete_route_policy_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -1608,29 +1608,39 @@ def test_get_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.get in client._transport._wrapped_methods + assert ( + client._transport.delete_route_policy in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.get] = mock_rpc + client._transport._wrapped_methods[ + client._transport.delete_route_policy + ] = mock_rpc request = {} - client.get(request) + client.delete_route_policy(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get(request) + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.delete_route_policy(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_rest_required_fields(request_type=compute.GetRouterRequest): +def test_delete_route_policy_rest_required_fields( + request_type=compute.DeleteRoutePolicyRouterRequest, +): transport_class = transports.RoutersRestTransport request_init = {} @@ -1647,7 +1657,7 @@ def test_get_rest_required_fields(request_type=compute.GetRouterRequest): unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get._get_unset_required_fields(jsonified_request) + ).delete_route_policy._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -1658,7 +1668,14 @@ def test_get_rest_required_fields(request_type=compute.GetRouterRequest): unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get._get_unset_required_fields(jsonified_request) + ).delete_route_policy._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "policy", + "request_id", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -1676,7 +1693,7 @@ def test_get_rest_required_fields(request_type=compute.GetRouterRequest): request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Router() + return_value = compute.Operation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -1688,7 +1705,7 @@ def test_get_rest_required_fields(request_type=compute.GetRouterRequest): pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "get", + "method": "post", "query_params": pb_request, } transcode.return_value = transcode_result @@ -1697,28 +1714,33 @@ def test_get_rest_required_fields(request_type=compute.GetRouterRequest): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Router.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get(request) + response = client.delete_route_policy(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_rest_unset_required_fields(): +def test_delete_route_policy_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get._get_unset_required_fields({}) + unset_fields = transport.delete_route_policy._get_unset_required_fields({}) assert set(unset_fields) == ( - set(()) + set( + ( + "policy", + "requestId", + ) + ) & set( ( "project", @@ -1729,7 +1751,7 @@ def test_get_rest_unset_required_fields(): ) -def test_get_rest_flattened(): +def test_delete_route_policy_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -1738,7 +1760,7 @@ def test_get_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Router() + return_value = compute.Operation() # get arguments that satisfy an http rule for this method sample_request = { @@ -1759,26 +1781,26 @@ def test_get_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Router.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get(**mock_args) + client.delete_route_policy(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy" % client.transport._host, args[1], ) -def test_get_rest_flattened_error(transport: str = "rest"): +def test_delete_route_policy_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -1787,15 +1809,15 @@ def test_get_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get( - compute.GetRouterRequest(), + client.delete_route_policy( + compute.DeleteRoutePolicyRouterRequest(), project="project_value", region="region_value", router="router_value", ) -def test_get_nat_ip_info_rest_use_cached_wrapped_rpc(): +def test_delete_route_policy_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -1809,30 +1831,38 @@ def test_get_nat_ip_info_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.get_nat_ip_info in client._transport._wrapped_methods + assert ( + client._transport.delete_route_policy in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.get_nat_ip_info] = mock_rpc + client._transport._wrapped_methods[ + client._transport.delete_route_policy + ] = mock_rpc request = {} - client.get_nat_ip_info(request) + client.delete_route_policy_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get_nat_ip_info(request) + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.delete_route_policy_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_nat_ip_info_rest_required_fields( - request_type=compute.GetNatIpInfoRouterRequest, +def test_delete_route_policy_unary_rest_required_fields( + request_type=compute.DeleteRoutePolicyRouterRequest, ): transport_class = transports.RoutersRestTransport @@ -1850,7 +1880,7 @@ def test_get_nat_ip_info_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_nat_ip_info._get_unset_required_fields(jsonified_request) + ).delete_route_policy._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -1861,9 +1891,14 @@ def test_get_nat_ip_info_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_nat_ip_info._get_unset_required_fields(jsonified_request) + ).delete_route_policy._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("nat_name",)) + assert not set(unset_fields) - set( + ( + "policy", + "request_id", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -1881,7 +1916,7 @@ def test_get_nat_ip_info_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.NatIpInfoResponse() + return_value = compute.Operation() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -1893,7 +1928,7 @@ def test_get_nat_ip_info_rest_required_fields( pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "get", + "method": "post", "query_params": pb_request, } transcode.return_value = transcode_result @@ -1902,28 +1937,33 @@ def test_get_nat_ip_info_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.NatIpInfoResponse.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_nat_ip_info(request) + response = client.delete_route_policy_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_nat_ip_info_rest_unset_required_fields(): +def test_delete_route_policy_unary_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get_nat_ip_info._get_unset_required_fields({}) + unset_fields = transport.delete_route_policy._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("natName",)) + set( + ( + "policy", + "requestId", + ) + ) & set( ( "project", @@ -1934,7 +1974,7 @@ def test_get_nat_ip_info_rest_unset_required_fields(): ) -def test_get_nat_ip_info_rest_flattened(): +def test_delete_route_policy_unary_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -1943,7 +1983,7 @@ def test_get_nat_ip_info_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.NatIpInfoResponse() + return_value = compute.Operation() # get arguments that satisfy an http rule for this method sample_request = { @@ -1964,26 +2004,26 @@ def test_get_nat_ip_info_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.NatIpInfoResponse.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_nat_ip_info(**mock_args) + client.delete_route_policy_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatIpInfo" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy" % client.transport._host, args[1], ) -def test_get_nat_ip_info_rest_flattened_error(transport: str = "rest"): +def test_delete_route_policy_unary_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -1992,15 +2032,15 @@ def test_get_nat_ip_info_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get_nat_ip_info( - compute.GetNatIpInfoRouterRequest(), + client.delete_route_policy_unary( + compute.DeleteRoutePolicyRouterRequest(), project="project_value", region="region_value", router="router_value", ) -def test_get_nat_mapping_info_rest_use_cached_wrapped_rpc(): +def test_get_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2014,35 +2054,29 @@ def test_get_nat_mapping_info_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert ( - client._transport.get_nat_mapping_info in client._transport._wrapped_methods - ) + assert client._transport.get in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[ - client._transport.get_nat_mapping_info - ] = mock_rpc + client._transport._wrapped_methods[client._transport.get] = mock_rpc request = {} - client.get_nat_mapping_info(request) + client.get(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get_nat_mapping_info(request) + client.get(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_nat_mapping_info_rest_required_fields( - request_type=compute.GetNatMappingInfoRoutersRequest, -): +def test_get_rest_required_fields(request_type=compute.GetRouterRequest): transport_class = transports.RoutersRestTransport request_init = {} @@ -2059,7 +2093,7 @@ def test_get_nat_mapping_info_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_nat_mapping_info._get_unset_required_fields(jsonified_request) + ).get._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -2070,18 +2104,7 @@ def test_get_nat_mapping_info_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_nat_mapping_info._get_unset_required_fields(jsonified_request) - # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set( - ( - "filter", - "max_results", - "nat_name", - "order_by", - "page_token", - "return_partial_success", - ) - ) + ).get._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -2099,7 +2122,7 @@ def test_get_nat_mapping_info_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.VmEndpointNatMappingsList() + return_value = compute.Router() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -2120,37 +2143,28 @@ def test_get_nat_mapping_info_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.VmEndpointNatMappingsList.pb(return_value) + return_value = compute.Router.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_nat_mapping_info(request) + response = client.get(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_nat_mapping_info_rest_unset_required_fields(): +def test_get_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get_nat_mapping_info._get_unset_required_fields({}) + unset_fields = transport.get._get_unset_required_fields({}) assert set(unset_fields) == ( - set( - ( - "filter", - "maxResults", - "natName", - "orderBy", - "pageToken", - "returnPartialSuccess", - ) - ) + set(()) & set( ( "project", @@ -2161,7 +2175,7 @@ def test_get_nat_mapping_info_rest_unset_required_fields(): ) -def test_get_nat_mapping_info_rest_flattened(): +def test_get_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2170,7 +2184,7 @@ def test_get_nat_mapping_info_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.VmEndpointNatMappingsList() + return_value = compute.Router() # get arguments that satisfy an http rule for this method sample_request = { @@ -2191,26 +2205,26 @@ def test_get_nat_mapping_info_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.VmEndpointNatMappingsList.pb(return_value) + return_value = compute.Router.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_nat_mapping_info(**mock_args) + client.get(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" % client.transport._host, args[1], ) -def test_get_nat_mapping_info_rest_flattened_error(transport: str = "rest"): +def test_get_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2219,80 +2233,15 @@ def test_get_nat_mapping_info_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get_nat_mapping_info( - compute.GetNatMappingInfoRoutersRequest(), + client.get( + compute.GetRouterRequest(), project="project_value", region="region_value", router="router_value", ) -def test_get_nat_mapping_info_rest_pager(transport: str = "rest"): - client = RoutersClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Mock the http request call within the method and fake a response. - with mock.patch.object(Session, "request") as req: - # TODO(kbandes): remove this mock unless there's a good reason for it. - # with mock.patch.object(path_template, 'transcode') as transcode: - # Set the response as a series of pages - response = ( - compute.VmEndpointNatMappingsList( - result=[ - compute.VmEndpointNatMappings(), - compute.VmEndpointNatMappings(), - compute.VmEndpointNatMappings(), - ], - next_page_token="abc", - ), - compute.VmEndpointNatMappingsList( - result=[], - next_page_token="def", - ), - compute.VmEndpointNatMappingsList( - result=[ - compute.VmEndpointNatMappings(), - ], - next_page_token="ghi", - ), - compute.VmEndpointNatMappingsList( - result=[ - compute.VmEndpointNatMappings(), - compute.VmEndpointNatMappings(), - ], - ), - ) - # Two responses for two calls - response = response + response - - # Wrap the values into proper Response objs - response = tuple(compute.VmEndpointNatMappingsList.to_json(x) for x in response) - return_values = tuple(Response() for i in response) - for return_val, response_val in zip(return_values, response): - return_val._content = response_val.encode("UTF-8") - return_val.status_code = 200 - req.side_effect = return_values - - sample_request = { - "project": "sample1", - "region": "sample2", - "router": "sample3", - } - - pager = client.get_nat_mapping_info(request=sample_request) - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, compute.VmEndpointNatMappings) for i in results) - - pages = list(client.get_nat_mapping_info(request=sample_request).pages) - for page_, token in zip(pages, ["abc", "def", "ghi", ""]): - assert page_.raw_page.next_page_token == token - - -def test_get_router_status_rest_use_cached_wrapped_rpc(): +def test_get_nat_ip_info_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2306,32 +2255,30 @@ def test_get_router_status_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.get_router_status in client._transport._wrapped_methods + assert client._transport.get_nat_ip_info in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[ - client._transport.get_router_status - ] = mock_rpc + client._transport._wrapped_methods[client._transport.get_nat_ip_info] = mock_rpc request = {} - client.get_router_status(request) + client.get_nat_ip_info(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.get_router_status(request) + client.get_nat_ip_info(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_get_router_status_rest_required_fields( - request_type=compute.GetRouterStatusRouterRequest, +def test_get_nat_ip_info_rest_required_fields( + request_type=compute.GetNatIpInfoRouterRequest, ): transport_class = transports.RoutersRestTransport @@ -2349,7 +2296,7 @@ def test_get_router_status_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_router_status._get_unset_required_fields(jsonified_request) + ).get_nat_ip_info._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -2360,7 +2307,9 @@ def test_get_router_status_rest_required_fields( unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).get_router_status._get_unset_required_fields(jsonified_request) + ).get_nat_ip_info._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("nat_name",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -2378,7 +2327,7 @@ def test_get_router_status_rest_required_fields( request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.RouterStatusResponse() + return_value = compute.NatIpInfoResponse() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -2399,28 +2348,28 @@ def test_get_router_status_rest_required_fields( response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RouterStatusResponse.pb(return_value) + return_value = compute.NatIpInfoResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_router_status(request) + response = client.get_nat_ip_info(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_get_router_status_rest_unset_required_fields(): +def test_get_nat_ip_info_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.get_router_status._get_unset_required_fields({}) + unset_fields = transport.get_nat_ip_info._get_unset_required_fields({}) assert set(unset_fields) == ( - set(()) + set(("natName",)) & set( ( "project", @@ -2431,7 +2380,7 @@ def test_get_router_status_rest_unset_required_fields(): ) -def test_get_router_status_rest_flattened(): +def test_get_nat_ip_info_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2440,7 +2389,7 @@ def test_get_router_status_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.RouterStatusResponse() + return_value = compute.NatIpInfoResponse() # get arguments that satisfy an http rule for this method sample_request = { @@ -2461,26 +2410,26 @@ def test_get_router_status_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RouterStatusResponse.pb(return_value) + return_value = compute.NatIpInfoResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_router_status(**mock_args) + client.get_nat_ip_info(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRouterStatus" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatIpInfo" % client.transport._host, args[1], ) -def test_get_router_status_rest_flattened_error(transport: str = "rest"): +def test_get_nat_ip_info_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2489,15 +2438,15 @@ def test_get_router_status_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get_router_status( - compute.GetRouterStatusRouterRequest(), + client.get_nat_ip_info( + compute.GetNatIpInfoRouterRequest(), project="project_value", region="region_value", router="router_value", ) -def test_insert_rest_use_cached_wrapped_rpc(): +def test_get_nat_mapping_info_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2511,38 +2460,41 @@ def test_insert_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.insert in client._transport._wrapped_methods + assert ( + client._transport.get_nat_mapping_info in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.insert] = mock_rpc + client._transport._wrapped_methods[ + client._transport.get_nat_mapping_info + ] = mock_rpc request = {} - client.insert(request) + client.get_nat_mapping_info(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.insert(request) + client.get_nat_mapping_info(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_insert_rest_required_fields(request_type=compute.InsertRouterRequest): +def test_get_nat_mapping_info_rest_required_fields( + request_type=compute.GetNatMappingInfoRoutersRequest, +): transport_class = transports.RoutersRestTransport request_init = {} request_init["project"] = "" request_init["region"] = "" + request_init["router"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -2553,19 +2505,29 @@ def test_insert_rest_required_fields(request_type=compute.InsertRouterRequest): unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_nat_mapping_info._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present jsonified_request["project"] = "project_value" jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_nat_mapping_info._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set( + ( + "filter", + "max_results", + "nat_name", + "order_by", + "page_token", + "return_partial_success", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -2573,6 +2535,8 @@ def test_insert_rest_required_fields(request_type=compute.InsertRouterRequest): assert jsonified_request["project"] == "project_value" assert "region" in jsonified_request assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), @@ -2581,7 +2545,7 @@ def test_insert_rest_required_fields(request_type=compute.InsertRouterRequest): request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.VmEndpointNatMappingsList() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -2593,49 +2557,57 @@ def test_insert_rest_required_fields(request_type=compute.InsertRouterRequest): pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.VmEndpointNatMappingsList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.insert(request) + response = client.get_nat_mapping_info(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_insert_rest_unset_required_fields(): +def test_get_nat_mapping_info_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.insert._get_unset_required_fields({}) + unset_fields = transport.get_nat_mapping_info._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set( + ( + "filter", + "maxResults", + "natName", + "orderBy", + "pageToken", + "returnPartialSuccess", + ) + ) & set( ( "project", "region", - "routerResource", + "router", ) ) ) -def test_insert_rest_flattened(): +def test_get_nat_mapping_info_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2644,18 +2616,20 @@ def test_insert_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.VmEndpointNatMappingsList() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "region": "sample2"} + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } # get truthy value for each flattened field mock_args = dict( project="project_value", region="region_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") - ), + router="router_value", ) mock_args.update(sample_request) @@ -2663,26 +2637,26 @@ def test_insert_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.VmEndpointNatMappingsList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.insert(**mock_args) + client.get_nat_mapping_info(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo" % client.transport._host, args[1], ) -def test_insert_rest_flattened_error(transport: str = "rest"): +def test_get_nat_mapping_info_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2691,17 +2665,80 @@ def test_insert_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.insert( - compute.InsertRouterRequest(), + client.get_nat_mapping_info( + compute.GetNatMappingInfoRoutersRequest(), project="project_value", region="region_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + router="router_value", + ) + + +def test_get_nat_mapping_info_rest_pager(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # TODO(kbandes): remove this mock unless there's a good reason for it. + # with mock.patch.object(path_template, 'transcode') as transcode: + # Set the response as a series of pages + response = ( + compute.VmEndpointNatMappingsList( + result=[ + compute.VmEndpointNatMappings(), + compute.VmEndpointNatMappings(), + compute.VmEndpointNatMappings(), + ], + next_page_token="abc", + ), + compute.VmEndpointNatMappingsList( + result=[], + next_page_token="def", + ), + compute.VmEndpointNatMappingsList( + result=[ + compute.VmEndpointNatMappings(), + ], + next_page_token="ghi", + ), + compute.VmEndpointNatMappingsList( + result=[ + compute.VmEndpointNatMappings(), + compute.VmEndpointNatMappings(), + ], ), ) + # Two responses for two calls + response = response + response + + # Wrap the values into proper Response objs + response = tuple(compute.VmEndpointNatMappingsList.to_json(x) for x in response) + return_values = tuple(Response() for i in response) + for return_val, response_val in zip(return_values, response): + return_val._content = response_val.encode("UTF-8") + return_val.status_code = 200 + req.side_effect = return_values + + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + pager = client.get_nat_mapping_info(request=sample_request) -def test_insert_unary_rest_use_cached_wrapped_rpc(): + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, compute.VmEndpointNatMappings) for i in results) + + pages = list(client.get_nat_mapping_info(request=sample_request).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +def test_get_route_policy_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2715,38 +2752,39 @@ def test_insert_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.insert in client._transport._wrapped_methods + assert client._transport.get_route_policy in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.insert] = mock_rpc + client._transport._wrapped_methods[ + client._transport.get_route_policy + ] = mock_rpc request = {} - client.insert_unary(request) + client.get_route_policy(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.insert_unary(request) + client.get_route_policy(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_insert_unary_rest_required_fields(request_type=compute.InsertRouterRequest): +def test_get_route_policy_rest_required_fields( + request_type=compute.GetRoutePolicyRouterRequest, +): transport_class = transports.RoutersRestTransport request_init = {} request_init["project"] = "" request_init["region"] = "" + request_init["router"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -2757,19 +2795,20 @@ def test_insert_unary_rest_required_fields(request_type=compute.InsertRouterRequ unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_route_policy._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present jsonified_request["project"] = "project_value" jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).insert._get_unset_required_fields(jsonified_request) + ).get_route_policy._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set(("policy",)) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -2777,6 +2816,8 @@ def test_insert_unary_rest_required_fields(request_type=compute.InsertRouterRequ assert jsonified_request["project"] == "project_value" assert "region" in jsonified_request assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), @@ -2785,7 +2826,7 @@ def test_insert_unary_rest_required_fields(request_type=compute.InsertRouterRequ request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.RoutersGetRoutePolicyResponse() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -2797,49 +2838,48 @@ def test_insert_unary_rest_required_fields(request_type=compute.InsertRouterRequ pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.RoutersGetRoutePolicyResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.insert_unary(request) + response = client.get_route_policy(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_insert_unary_rest_unset_required_fields(): +def test_get_route_policy_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.insert._get_unset_required_fields({}) + unset_fields = transport.get_route_policy._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set(("policy",)) & set( ( "project", "region", - "routerResource", + "router", ) ) ) -def test_insert_unary_rest_flattened(): +def test_get_route_policy_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -2848,18 +2888,20 @@ def test_insert_unary_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.RoutersGetRoutePolicyResponse() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "region": "sample2"} + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } # get truthy value for each flattened field mock_args = dict( project="project_value", region="region_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") - ), + router="router_value", ) mock_args.update(sample_request) @@ -2867,26 +2909,26 @@ def test_insert_unary_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.RoutersGetRoutePolicyResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.insert_unary(**mock_args) + client.get_route_policy(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRoutePolicy" % client.transport._host, args[1], ) -def test_insert_unary_rest_flattened_error(transport: str = "rest"): +def test_get_route_policy_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2895,17 +2937,15 @@ def test_insert_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.insert_unary( - compute.InsertRouterRequest(), + client.get_route_policy( + compute.GetRoutePolicyRouterRequest(), project="project_value", region="region_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") - ), + router="router_value", ) -def test_list_rest_use_cached_wrapped_rpc(): +def test_get_router_status_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -2919,34 +2959,39 @@ def test_list_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.list in client._transport._wrapped_methods + assert client._transport.get_router_status in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.list] = mock_rpc + client._transport._wrapped_methods[ + client._transport.get_router_status + ] = mock_rpc request = {} - client.list(request) + client.get_router_status(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.list(request) + client.get_router_status(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_list_rest_required_fields(request_type=compute.ListRoutersRequest): +def test_get_router_status_rest_required_fields( + request_type=compute.GetRouterStatusRouterRequest, +): transport_class = transports.RoutersRestTransport request_init = {} request_init["project"] = "" request_init["region"] = "" + request_init["router"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -2957,27 +3002,18 @@ def test_list_rest_required_fields(request_type=compute.ListRoutersRequest): unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).list._get_unset_required_fields(jsonified_request) + ).get_router_status._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present jsonified_request["project"] = "project_value" jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).list._get_unset_required_fields(jsonified_request) - # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set( - ( - "filter", - "max_results", - "order_by", - "page_token", - "return_partial_success", - ) - ) + ).get_router_status._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -2985,6 +3021,8 @@ def test_list_rest_required_fields(request_type=compute.ListRoutersRequest): assert jsonified_request["project"] == "project_value" assert "region" in jsonified_request assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), @@ -2993,7 +3031,7 @@ def test_list_rest_required_fields(request_type=compute.ListRoutersRequest): request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.RouterList() + return_value = compute.RouterStatusResponse() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3014,46 +3052,39 @@ def test_list_rest_required_fields(request_type=compute.ListRoutersRequest): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RouterList.pb(return_value) + return_value = compute.RouterStatusResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.list(request) + response = client.get_router_status(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_list_rest_unset_required_fields(): +def test_get_router_status_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.list._get_unset_required_fields({}) + unset_fields = transport.get_router_status._get_unset_required_fields({}) assert set(unset_fields) == ( - set( - ( - "filter", - "maxResults", - "orderBy", - "pageToken", - "returnPartialSuccess", - ) - ) + set(()) & set( ( "project", "region", + "router", ) ) ) -def test_list_rest_flattened(): +def test_get_router_status_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3062,15 +3093,20 @@ def test_list_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.RouterList() + return_value = compute.RouterStatusResponse() # get arguments that satisfy an http rule for this method - sample_request = {"project": "sample1", "region": "sample2"} + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } # get truthy value for each flattened field mock_args = dict( project="project_value", region="region_value", + router="router_value", ) mock_args.update(sample_request) @@ -3078,26 +3114,26 @@ def test_list_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RouterList.pb(return_value) + return_value = compute.RouterStatusResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.list(**mock_args) + client.get_router_status(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRouterStatus" % client.transport._host, args[1], ) -def test_list_rest_flattened_error(transport: str = "rest"): +def test_get_router_status_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3106,75 +3142,15 @@ def test_list_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.list( - compute.ListRoutersRequest(), + client.get_router_status( + compute.GetRouterStatusRouterRequest(), project="project_value", region="region_value", + router="router_value", ) -def test_list_rest_pager(transport: str = "rest"): - client = RoutersClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Mock the http request call within the method and fake a response. - with mock.patch.object(Session, "request") as req: - # TODO(kbandes): remove this mock unless there's a good reason for it. - # with mock.patch.object(path_template, 'transcode') as transcode: - # Set the response as a series of pages - response = ( - compute.RouterList( - items=[ - compute.Router(), - compute.Router(), - compute.Router(), - ], - next_page_token="abc", - ), - compute.RouterList( - items=[], - next_page_token="def", - ), - compute.RouterList( - items=[ - compute.Router(), - ], - next_page_token="ghi", - ), - compute.RouterList( - items=[ - compute.Router(), - compute.Router(), - ], - ), - ) - # Two responses for two calls - response = response + response - - # Wrap the values into proper Response objs - response = tuple(compute.RouterList.to_json(x) for x in response) - return_values = tuple(Response() for i in response) - for return_val, response_val in zip(return_values, response): - return_val._content = response_val.encode("UTF-8") - return_val.status_code = 200 - req.side_effect = return_values - - sample_request = {"project": "sample1", "region": "sample2"} - - pager = client.list(request=sample_request) - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, compute.Router) for i in results) - - pages = list(client.list(request=sample_request).pages) - for page_, token in zip(pages, ["abc", "def", "ghi", ""]): - assert page_.raw_page.next_page_token == token - - -def test_patch_rest_use_cached_wrapped_rpc(): +def test_insert_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3188,17 +3164,17 @@ def test_patch_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.patch in client._transport._wrapped_methods + assert client._transport.insert in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.patch] = mock_rpc + client._transport._wrapped_methods[client._transport.insert] = mock_rpc request = {} - client.patch(request) + client.insert(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -3207,20 +3183,19 @@ def test_patch_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.patch(request) + client.insert(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_patch_rest_required_fields(request_type=compute.PatchRouterRequest): +def test_insert_rest_required_fields(request_type=compute.InsertRouterRequest): transport_class = transports.RoutersRestTransport request_init = {} request_init["project"] = "" request_init["region"] = "" - request_init["router"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -3231,18 +3206,17 @@ def test_patch_rest_required_fields(request_type=compute.PatchRouterRequest): unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present jsonified_request["project"] = "project_value" jsonified_request["region"] = "region_value" - jsonified_request["router"] = "router_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) @@ -3252,8 +3226,6 @@ def test_patch_rest_required_fields(request_type=compute.PatchRouterRequest): assert jsonified_request["project"] == "project_value" assert "region" in jsonified_request assert jsonified_request["region"] == "region_value" - assert "router" in jsonified_request - assert jsonified_request["router"] == "router_value" client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), @@ -3274,7 +3246,7 @@ def test_patch_rest_required_fields(request_type=compute.PatchRouterRequest): pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "patch", + "method": "post", "query_params": pb_request, } transcode_result["body"] = pb_request @@ -3291,33 +3263,32 @@ def test_patch_rest_required_fields(request_type=compute.PatchRouterRequest): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch(request) + response = client.insert(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_patch_rest_unset_required_fields(): +def test_insert_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.patch._get_unset_required_fields({}) + unset_fields = transport.insert._get_unset_required_fields({}) assert set(unset_fields) == ( set(("requestId",)) & set( ( "project", "region", - "router", "routerResource", ) ) ) -def test_patch_rest_flattened(): +def test_insert_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3329,17 +3300,12 @@ def test_patch_rest_flattened(): return_value = compute.Operation() # get arguments that satisfy an http rule for this method - sample_request = { - "project": "sample1", - "region": "sample2", - "router": "sample3", - } + sample_request = {"project": "sample1", "region": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", region="region_value", - router="router_value", router_resource=compute.Router( bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") ), @@ -3356,20 +3322,20 @@ def test_patch_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch(**mock_args) + client.insert(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + "%s/compute/v1/projects/{project}/regions/{region}/routers" % client.transport._host, args[1], ) -def test_patch_rest_flattened_error(transport: str = "rest"): +def test_insert_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3378,18 +3344,17 @@ def test_patch_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.patch( - compute.PatchRouterRequest(), + client.insert( + compute.InsertRouterRequest(), project="project_value", region="region_value", - router="router_value", router_resource=compute.Router( bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") ), ) -def test_patch_unary_rest_use_cached_wrapped_rpc(): +def test_insert_unary_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3403,17 +3368,17 @@ def test_patch_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.patch in client._transport._wrapped_methods + assert client._transport.insert in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.patch] = mock_rpc + client._transport._wrapped_methods[client._transport.insert] = mock_rpc request = {} - client.patch_unary(request) + client.insert_unary(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 @@ -3422,20 +3387,19 @@ def test_patch_unary_rest_use_cached_wrapped_rpc(): # subsequent calls should use the cached wrapper wrapper_fn.reset_mock() - client.patch_unary(request) + client.insert_unary(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_patch_unary_rest_required_fields(request_type=compute.PatchRouterRequest): +def test_insert_unary_rest_required_fields(request_type=compute.InsertRouterRequest): transport_class = transports.RoutersRestTransport request_init = {} request_init["project"] = "" request_init["region"] = "" - request_init["router"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -3446,18 +3410,17 @@ def test_patch_unary_rest_required_fields(request_type=compute.PatchRouterReques unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present jsonified_request["project"] = "project_value" jsonified_request["region"] = "region_value" - jsonified_request["router"] = "router_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).patch._get_unset_required_fields(jsonified_request) + ).insert._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. assert not set(unset_fields) - set(("request_id",)) jsonified_request.update(unset_fields) @@ -3467,8 +3430,6 @@ def test_patch_unary_rest_required_fields(request_type=compute.PatchRouterReques assert jsonified_request["project"] == "project_value" assert "region" in jsonified_request assert jsonified_request["region"] == "region_value" - assert "router" in jsonified_request - assert jsonified_request["router"] == "router_value" client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), @@ -3489,7 +3450,7 @@ def test_patch_unary_rest_required_fields(request_type=compute.PatchRouterReques pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "patch", + "method": "post", "query_params": pb_request, } transcode_result["body"] = pb_request @@ -3506,33 +3467,32 @@ def test_patch_unary_rest_required_fields(request_type=compute.PatchRouterReques req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch_unary(request) + response = client.insert_unary(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_patch_unary_rest_unset_required_fields(): +def test_insert_unary_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.patch._get_unset_required_fields({}) + unset_fields = transport.insert._get_unset_required_fields({}) assert set(unset_fields) == ( set(("requestId",)) & set( ( "project", "region", - "router", "routerResource", ) ) ) -def test_patch_unary_rest_flattened(): +def test_insert_unary_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3544,17 +3504,12 @@ def test_patch_unary_rest_flattened(): return_value = compute.Operation() # get arguments that satisfy an http rule for this method - sample_request = { - "project": "sample1", - "region": "sample2", - "router": "sample3", - } + sample_request = {"project": "sample1", "region": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", region="region_value", - router="router_value", router_resource=compute.Router( bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") ), @@ -3571,20 +3526,20 @@ def test_patch_unary_rest_flattened(): req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch_unary(**mock_args) + client.insert_unary(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + "%s/compute/v1/projects/{project}/regions/{region}/routers" % client.transport._host, args[1], ) -def test_patch_unary_rest_flattened_error(transport: str = "rest"): +def test_insert_unary_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3593,18 +3548,17 @@ def test_patch_unary_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.patch_unary( - compute.PatchRouterRequest(), + client.insert_unary( + compute.InsertRouterRequest(), project="project_value", region="region_value", - router="router_value", router_resource=compute.Router( bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") ), ) -def test_preview_rest_use_cached_wrapped_rpc(): +def test_list_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3618,35 +3572,34 @@ def test_preview_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.preview in client._transport._wrapped_methods + assert client._transport.list in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.preview] = mock_rpc + client._transport._wrapped_methods[client._transport.list] = mock_rpc request = {} - client.preview(request) + client.list(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - client.preview(request) + client.list(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_preview_rest_required_fields(request_type=compute.PreviewRouterRequest): +def test_list_rest_required_fields(request_type=compute.ListRoutersRequest): transport_class = transports.RoutersRestTransport request_init = {} request_init["project"] = "" request_init["region"] = "" - request_init["router"] = "" request = request_type(**request_init) pb_request = request_type.pb(request) jsonified_request = json.loads( @@ -3657,18 +3610,27 @@ def test_preview_rest_required_fields(request_type=compute.PreviewRouterRequest) unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).preview._get_unset_required_fields(jsonified_request) + ).list._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present jsonified_request["project"] = "project_value" jsonified_request["region"] = "region_value" - jsonified_request["router"] = "router_value" unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).preview._get_unset_required_fields(jsonified_request) + ).list._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set( + ( + "filter", + "max_results", + "order_by", + "page_token", + "return_partial_success", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -3676,8 +3638,6 @@ def test_preview_rest_required_fields(request_type=compute.PreviewRouterRequest) assert jsonified_request["project"] == "project_value" assert "region" in jsonified_request assert jsonified_request["region"] == "region_value" - assert "router" in jsonified_request - assert jsonified_request["router"] == "router_value" client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), @@ -3686,7 +3646,7 @@ def test_preview_rest_required_fields(request_type=compute.PreviewRouterRequest) request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.RoutersPreviewResponse() + return_value = compute.RouterList() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3698,50 +3658,55 @@ def test_preview_rest_required_fields(request_type=compute.PreviewRouterRequest) pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "post", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RoutersPreviewResponse.pb(return_value) + return_value = compute.RouterList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.preview(request) + response = client.list(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_preview_rest_unset_required_fields(): +def test_list_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.preview._get_unset_required_fields({}) + unset_fields = transport.list._get_unset_required_fields({}) assert set(unset_fields) == ( - set(()) + set( + ( + "filter", + "maxResults", + "orderBy", + "pageToken", + "returnPartialSuccess", + ) + ) & set( ( "project", "region", - "router", - "routerResource", ) ) ) -def test_preview_rest_flattened(): +def test_list_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3750,23 +3715,15 @@ def test_preview_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.RoutersPreviewResponse() + return_value = compute.RouterList() # get arguments that satisfy an http rule for this method - sample_request = { - "project": "sample1", - "region": "sample2", - "router": "sample3", - } + sample_request = {"project": "sample1", "region": "sample2"} # get truthy value for each flattened field mock_args = dict( project="project_value", region="region_value", - router="router_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") - ), ) mock_args.update(sample_request) @@ -3774,26 +3731,26 @@ def test_preview_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RoutersPreviewResponse.pb(return_value) + return_value = compute.RouterList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.preview(**mock_args) + client.list(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/preview" + "%s/compute/v1/projects/{project}/regions/{region}/routers" % client.transport._host, args[1], ) -def test_preview_rest_flattened_error(transport: str = "rest"): +def test_list_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3802,18 +3759,75 @@ def test_preview_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.preview( - compute.PreviewRouterRequest(), + client.list( + compute.ListRoutersRequest(), project="project_value", region="region_value", - router="router_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ) + + +def test_list_rest_pager(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # TODO(kbandes): remove this mock unless there's a good reason for it. + # with mock.patch.object(path_template, 'transcode') as transcode: + # Set the response as a series of pages + response = ( + compute.RouterList( + items=[ + compute.Router(), + compute.Router(), + compute.Router(), + ], + next_page_token="abc", + ), + compute.RouterList( + items=[], + next_page_token="def", + ), + compute.RouterList( + items=[ + compute.Router(), + ], + next_page_token="ghi", + ), + compute.RouterList( + items=[ + compute.Router(), + compute.Router(), + ], ), ) + # Two responses for two calls + response = response + response + + # Wrap the values into proper Response objs + response = tuple(compute.RouterList.to_json(x) for x in response) + return_values = tuple(Response() for i in response) + for return_val, response_val in zip(return_values, response): + return_val._content = response_val.encode("UTF-8") + return_val.status_code = 200 + req.side_effect = return_values + sample_request = {"project": "sample1", "region": "sample2"} -def test_update_rest_use_cached_wrapped_rpc(): + pager = client.list(request=sample_request) + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, compute.Router) for i in results) + + pages = list(client.list(request=sample_request).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +def test_list_bgp_routes_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -3827,33 +3841,31 @@ def test_update_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.update in client._transport._wrapped_methods + assert client._transport.list_bgp_routes in client._transport._wrapped_methods # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.update] = mock_rpc + client._transport._wrapped_methods[client._transport.list_bgp_routes] = mock_rpc request = {} - client.update(request) + client.list_bgp_routes(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.update(request) + client.list_bgp_routes(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_update_rest_required_fields(request_type=compute.UpdateRouterRequest): +def test_list_bgp_routes_rest_required_fields( + request_type=compute.ListBgpRoutesRoutersRequest, +): transport_class = transports.RoutersRestTransport request_init = {} @@ -3870,7 +3882,7 @@ def test_update_rest_required_fields(request_type=compute.UpdateRouterRequest): unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).update._get_unset_required_fields(jsonified_request) + ).list_bgp_routes._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -3881,9 +3893,22 @@ def test_update_rest_required_fields(request_type=compute.UpdateRouterRequest): unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).update._get_unset_required_fields(jsonified_request) + ).list_bgp_routes._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set( + ( + "address_family", + "destination_prefix", + "filter", + "max_results", + "order_by", + "page_token", + "peer", + "policy_applied", + "return_partial_success", + "route_type", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -3901,7 +3926,7 @@ def test_update_rest_required_fields(request_type=compute.UpdateRouterRequest): request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.RoutersListBgpRoutes() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -3913,50 +3938,61 @@ def test_update_rest_required_fields(request_type=compute.UpdateRouterRequest): pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "put", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.RoutersListBgpRoutes.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.update(request) + response = client.list_bgp_routes(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_update_rest_unset_required_fields(): +def test_list_bgp_routes_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.update._get_unset_required_fields({}) + unset_fields = transport.list_bgp_routes._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set( + ( + "addressFamily", + "destinationPrefix", + "filter", + "maxResults", + "orderBy", + "pageToken", + "peer", + "policyApplied", + "returnPartialSuccess", + "routeType", + ) + ) & set( ( "project", "region", "router", - "routerResource", ) ) ) -def test_update_rest_flattened(): +def test_list_bgp_routes_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -3965,7 +4001,7 @@ def test_update_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.RoutersListBgpRoutes() # get arguments that satisfy an http rule for this method sample_request = { @@ -3979,9 +4015,6 @@ def test_update_rest_flattened(): project="project_value", region="region_value", router="router_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") - ), ) mock_args.update(sample_request) @@ -3989,26 +4022,26 @@ def test_update_rest_flattened(): response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.RoutersListBgpRoutes.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.update(**mock_args) + client.list_bgp_routes(**mock_args) # Establish that the underlying call was made with the expected # request object values. assert len(req.mock_calls) == 1 _, args, _ = req.mock_calls[0] assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/listBgpRoutes" % client.transport._host, args[1], ) -def test_update_rest_flattened_error(transport: str = "rest"): +def test_list_bgp_routes_rest_flattened_error(transport: str = "rest"): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -4017,18 +4050,80 @@ def test_update_rest_flattened_error(transport: str = "rest"): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.update( - compute.UpdateRouterRequest(), + client.list_bgp_routes( + compute.ListBgpRoutesRoutersRequest(), project="project_value", region="region_value", router="router_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ) + + +def test_list_bgp_routes_rest_pager(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # TODO(kbandes): remove this mock unless there's a good reason for it. + # with mock.patch.object(path_template, 'transcode') as transcode: + # Set the response as a series of pages + response = ( + compute.RoutersListBgpRoutes( + result=[ + compute.BgpRoute(), + compute.BgpRoute(), + compute.BgpRoute(), + ], + next_page_token="abc", + ), + compute.RoutersListBgpRoutes( + result=[], + next_page_token="def", + ), + compute.RoutersListBgpRoutes( + result=[ + compute.BgpRoute(), + ], + next_page_token="ghi", + ), + compute.RoutersListBgpRoutes( + result=[ + compute.BgpRoute(), + compute.BgpRoute(), + ], ), ) + # Two responses for two calls + response = response + response + + # Wrap the values into proper Response objs + response = tuple(compute.RoutersListBgpRoutes.to_json(x) for x in response) + return_values = tuple(Response() for i in response) + for return_val, response_val in zip(return_values, response): + return_val._content = response_val.encode("UTF-8") + return_val.status_code = 200 + req.side_effect = return_values + + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + pager = client.list_bgp_routes(request=sample_request) -def test_update_unary_rest_use_cached_wrapped_rpc(): + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, compute.BgpRoute) for i in results) + + pages = list(client.list_bgp_routes(request=sample_request).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +def test_list_route_policies_rest_use_cached_wrapped_rpc(): # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, # instead of constructing them on each call with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: @@ -4042,33 +4137,35 @@ def test_update_unary_rest_use_cached_wrapped_rpc(): wrapper_fn.reset_mock() # Ensure method has been cached - assert client._transport.update in client._transport._wrapped_methods + assert ( + client._transport.list_route_policies in client._transport._wrapped_methods + ) # Replace cached wrapped function with mock mock_rpc = mock.Mock() mock_rpc.return_value.name = ( "foo" # operation_request.operation in compute client(s) expect a string. ) - client._transport._wrapped_methods[client._transport.update] = mock_rpc + client._transport._wrapped_methods[ + client._transport.list_route_policies + ] = mock_rpc request = {} - client.update_unary(request) + client.list_route_policies(request) # Establish that the underlying gRPC stub method was called. assert mock_rpc.call_count == 1 - # Operation methods build a cached wrapper on first rpc call - # subsequent calls should use the cached wrapper - wrapper_fn.reset_mock() - - client.update_unary(request) + client.list_route_policies(request) # Establish that a new wrapper was not created for this call assert wrapper_fn.call_count == 0 assert mock_rpc.call_count == 2 -def test_update_unary_rest_required_fields(request_type=compute.UpdateRouterRequest): +def test_list_route_policies_rest_required_fields( + request_type=compute.ListRoutePoliciesRoutersRequest, +): transport_class = transports.RoutersRestTransport request_init = {} @@ -4085,7 +4182,7 @@ def test_update_unary_rest_required_fields(request_type=compute.UpdateRouterRequ unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).update._get_unset_required_fields(jsonified_request) + ).list_route_policies._get_unset_required_fields(jsonified_request) jsonified_request.update(unset_fields) # verify required fields with default values are now present @@ -4096,9 +4193,17 @@ def test_update_unary_rest_required_fields(request_type=compute.UpdateRouterRequ unset_fields = transport_class( credentials=ga_credentials.AnonymousCredentials() - ).update._get_unset_required_fields(jsonified_request) + ).list_route_policies._get_unset_required_fields(jsonified_request) # Check that path parameters and body parameters are not mixing in. - assert not set(unset_fields) - set(("request_id",)) + assert not set(unset_fields) - set( + ( + "filter", + "max_results", + "order_by", + "page_token", + "return_partial_success", + ) + ) jsonified_request.update(unset_fields) # verify required fields with non-default values are left alone @@ -4116,7 +4221,7 @@ def test_update_unary_rest_required_fields(request_type=compute.UpdateRouterRequ request = request_type(**request_init) # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.RoutersListRoutePolicies() # Mock the http request call within the method and fake a response. with mock.patch.object(Session, "request") as req: # We need to mock transcode() because providing default values @@ -4128,50 +4233,56 @@ def test_update_unary_rest_required_fields(request_type=compute.UpdateRouterRequ pb_request = request_type.pb(request) transcode_result = { "uri": "v1/sample_method", - "method": "put", + "method": "get", "query_params": pb_request, } - transcode_result["body"] = pb_request transcode.return_value = transcode_result response_value = Response() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.RoutersListRoutePolicies.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value._content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.update_unary(request) + response = client.list_route_policies(request) expected_params = [] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params -def test_update_unary_rest_unset_required_fields(): +def test_list_route_policies_rest_unset_required_fields(): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials ) - unset_fields = transport.update._get_unset_required_fields({}) + unset_fields = transport.list_route_policies._get_unset_required_fields({}) assert set(unset_fields) == ( - set(("requestId",)) + set( + ( + "filter", + "maxResults", + "orderBy", + "pageToken", + "returnPartialSuccess", + ) + ) & set( ( "project", "region", "router", - "routerResource", ) ) ) -def test_update_unary_rest_flattened(): +def test_list_route_policies_rest_flattened(): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest", @@ -4180,7 +4291,281 @@ def test_update_unary_rest_flattened(): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation() + return_value = compute.RoutersListRoutePolicies() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.RoutersListRoutePolicies.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.list_route_policies(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/listRoutePolicies" + % client.transport._host, + args[1], + ) + + +def test_list_route_policies_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_route_policies( + compute.ListRoutePoliciesRoutersRequest(), + project="project_value", + region="region_value", + router="router_value", + ) + + +def test_list_route_policies_rest_pager(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # TODO(kbandes): remove this mock unless there's a good reason for it. + # with mock.patch.object(path_template, 'transcode') as transcode: + # Set the response as a series of pages + response = ( + compute.RoutersListRoutePolicies( + result=[ + compute.RoutePolicy(), + compute.RoutePolicy(), + compute.RoutePolicy(), + ], + next_page_token="abc", + ), + compute.RoutersListRoutePolicies( + result=[], + next_page_token="def", + ), + compute.RoutersListRoutePolicies( + result=[ + compute.RoutePolicy(), + ], + next_page_token="ghi", + ), + compute.RoutersListRoutePolicies( + result=[ + compute.RoutePolicy(), + compute.RoutePolicy(), + ], + ), + ) + # Two responses for two calls + response = response + response + + # Wrap the values into proper Response objs + response = tuple(compute.RoutersListRoutePolicies.to_json(x) for x in response) + return_values = tuple(Response() for i in response) + for return_val, response_val in zip(return_values, response): + return_val._content = response_val.encode("UTF-8") + return_val.status_code = 200 + req.side_effect = return_values + + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + pager = client.list_route_policies(request=sample_request) + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, compute.RoutePolicy) for i in results) + + pages = list(client.list_route_policies(request=sample_request).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +def test_patch_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.patch in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.patch] = mock_rpc + + request = {} + client.patch(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.patch(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_patch_rest_required_fields(request_type=compute.PatchRouterRequest): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "patch", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.patch(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_patch_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.patch._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "router", + "routerResource", + ) + ) + ) + + +def test_patch_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() # get arguments that satisfy an http rule for this method sample_request = { @@ -4198,141 +4583,2720 @@ def test_update_unary_rest_flattened(): bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") ), ) - mock_args.update(sample_request) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.patch(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + % client.transport._host, + args[1], + ) + + +def test_patch_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.patch( + compute.PatchRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + + +def test_patch_unary_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.patch in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.patch] = mock_rpc + + request = {} + client.patch_unary(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.patch_unary(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_patch_unary_rest_required_fields(request_type=compute.PatchRouterRequest): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "patch", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.patch_unary(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_patch_unary_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.patch._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "router", + "routerResource", + ) + ) + ) + + +def test_patch_unary_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.patch_unary(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + % client.transport._host, + args[1], + ) + + +def test_patch_unary_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.patch_unary( + compute.PatchRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + + +def test_patch_route_policy_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert ( + client._transport.patch_route_policy in client._transport._wrapped_methods + ) + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[ + client._transport.patch_route_policy + ] = mock_rpc + + request = {} + client.patch_route_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.patch_route_policy(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_patch_route_policy_rest_required_fields( + request_type=compute.PatchRoutePolicyRouterRequest, +): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch_route_policy._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch_route_policy._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.patch_route_policy(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_patch_route_policy_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.patch_route_policy._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "routePolicyResource", + "router", + ) + ) + ) + + +def test_patch_route_policy_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.patch_route_policy(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy" + % client.transport._host, + args[1], + ) + + +def test_patch_route_policy_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.patch_route_policy( + compute.PatchRoutePolicyRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + + +def test_patch_route_policy_unary_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert ( + client._transport.patch_route_policy in client._transport._wrapped_methods + ) + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[ + client._transport.patch_route_policy + ] = mock_rpc + + request = {} + client.patch_route_policy_unary(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.patch_route_policy_unary(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_patch_route_policy_unary_rest_required_fields( + request_type=compute.PatchRoutePolicyRouterRequest, +): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch_route_policy._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).patch_route_policy._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.patch_route_policy_unary(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_patch_route_policy_unary_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.patch_route_policy._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "routePolicyResource", + "router", + ) + ) + ) + + +def test_patch_route_policy_unary_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.patch_route_policy_unary(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy" + % client.transport._host, + args[1], + ) + + +def test_patch_route_policy_unary_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.patch_route_policy_unary( + compute.PatchRoutePolicyRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + + +def test_preview_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.preview in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.preview] = mock_rpc + + request = {} + client.preview(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + client.preview(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_preview_rest_required_fields(request_type=compute.PreviewRouterRequest): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).preview._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).preview._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.RoutersPreviewResponse() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.RoutersPreviewResponse.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.preview(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_preview_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.preview._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(()) + & set( + ( + "project", + "region", + "router", + "routerResource", + ) + ) + ) + + +def test_preview_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.RoutersPreviewResponse() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.RoutersPreviewResponse.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.preview(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/preview" + % client.transport._host, + args[1], + ) + + +def test_preview_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.preview( + compute.PreviewRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + + +def test_update_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.update in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.update] = mock_rpc + + request = {} + client.update(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.update(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_update_rest_required_fields(request_type=compute.UpdateRouterRequest): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "put", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.update(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_update_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.update._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "router", + "routerResource", + ) + ) + ) + + +def test_update_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.update(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + % client.transport._host, + args[1], + ) + + +def test_update_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update( + compute.UpdateRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + + +def test_update_unary_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert client._transport.update in client._transport._wrapped_methods + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[client._transport.update] = mock_rpc + + request = {} + client.update_unary(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.update_unary(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_update_unary_rest_required_fields(request_type=compute.UpdateRouterRequest): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "put", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.update_unary(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_update_unary_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.update._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "router", + "routerResource", + ) + ) + ) + + +def test_update_unary_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.update_unary(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" + % client.transport._host, + args[1], + ) + + +def test_update_unary_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_unary( + compute.UpdateRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + router_resource=compute.Router( + bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") + ), + ) + + +def test_update_route_policy_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert ( + client._transport.update_route_policy in client._transport._wrapped_methods + ) + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[ + client._transport.update_route_policy + ] = mock_rpc + + request = {} + client.update_route_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.update_route_policy(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_update_route_policy_rest_required_fields( + request_type=compute.UpdateRoutePolicyRouterRequest, +): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update_route_policy._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update_route_policy._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.update_route_policy(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_update_route_policy_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.update_route_policy._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "routePolicyResource", + "router", + ) + ) + ) + + +def test_update_route_policy_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.update_route_policy(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy" + % client.transport._host, + args[1], + ) + + +def test_update_route_policy_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_route_policy( + compute.UpdateRoutePolicyRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + + +def test_update_route_policy_unary_rest_use_cached_wrapped_rpc(): + # Clients should use _prep_wrapped_messages to create cached wrapped rpcs, + # instead of constructing them on each call + with mock.patch("google.api_core.gapic_v1.method.wrap_method") as wrapper_fn: + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Should wrap all calls on client creation + assert wrapper_fn.call_count > 0 + wrapper_fn.reset_mock() + + # Ensure method has been cached + assert ( + client._transport.update_route_policy in client._transport._wrapped_methods + ) + + # Replace cached wrapped function with mock + mock_rpc = mock.Mock() + mock_rpc.return_value.name = ( + "foo" # operation_request.operation in compute client(s) expect a string. + ) + client._transport._wrapped_methods[ + client._transport.update_route_policy + ] = mock_rpc + + request = {} + client.update_route_policy_unary(request) + + # Establish that the underlying gRPC stub method was called. + assert mock_rpc.call_count == 1 + + # Operation methods build a cached wrapper on first rpc call + # subsequent calls should use the cached wrapper + wrapper_fn.reset_mock() + + client.update_route_policy_unary(request) + + # Establish that a new wrapper was not created for this call + assert wrapper_fn.call_count == 0 + assert mock_rpc.call_count == 2 + + +def test_update_route_policy_unary_rest_required_fields( + request_type=compute.UpdateRoutePolicyRouterRequest, +): + transport_class = transports.RoutersRestTransport + + request_init = {} + request_init["project"] = "" + request_init["region"] = "" + request_init["router"] = "" + request = request_type(**request_init) + pb_request = request_type.pb(request) + jsonified_request = json.loads( + json_format.MessageToJson(pb_request, use_integers_for_enums=False) + ) + + # verify fields with default values are dropped + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update_route_policy._get_unset_required_fields(jsonified_request) + jsonified_request.update(unset_fields) + + # verify required fields with default values are now present + + jsonified_request["project"] = "project_value" + jsonified_request["region"] = "region_value" + jsonified_request["router"] = "router_value" + + unset_fields = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ).update_route_policy._get_unset_required_fields(jsonified_request) + # Check that path parameters and body parameters are not mixing in. + assert not set(unset_fields) - set(("request_id",)) + jsonified_request.update(unset_fields) + + # verify required fields with non-default values are left alone + assert "project" in jsonified_request + assert jsonified_request["project"] == "project_value" + assert "region" in jsonified_request + assert jsonified_request["region"] == "region_value" + assert "router" in jsonified_request + assert jsonified_request["router"] == "router_value" + + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + request = request_type(**request_init) + + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + # Mock the http request call within the method and fake a response. + with mock.patch.object(Session, "request") as req: + # We need to mock transcode() because providing default values + # for required fields will fail the real version if the http_options + # expect actual values for those fields. + with mock.patch.object(path_template, "transcode") as transcode: + # A uri without fields and an empty body will force all the + # request fields to show up in the query_params. + pb_request = request_type.pb(request) + transcode_result = { + "uri": "v1/sample_method", + "method": "post", + "query_params": pb_request, + } + transcode_result["body"] = pb_request + transcode.return_value = transcode_result + + response_value = Response() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + response = client.update_route_policy_unary(request) + + expected_params = [] + actual_params = req.call_args.kwargs["params"] + assert expected_params == actual_params + + +def test_update_route_policy_unary_rest_unset_required_fields(): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials + ) + + unset_fields = transport.update_route_policy._get_unset_required_fields({}) + assert set(unset_fields) == ( + set(("requestId",)) + & set( + ( + "project", + "region", + "routePolicyResource", + "router", + ) + ) + ) + + +def test_update_route_policy_unary_rest_flattened(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation() + + # get arguments that satisfy an http rule for this method + sample_request = { + "project": "sample1", + "region": "sample2", + "router": "sample3", + } + + # get truthy value for each flattened field + mock_args = dict( + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + mock_args.update(sample_request) + + # Wrap the value into a proper Response obj + response_value = Response() + response_value.status_code = 200 + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value._content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + + client.update_route_policy_unary(**mock_args) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(req.mock_calls) == 1 + _, args, _ = req.mock_calls[0] + assert path_template.validate( + "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy" + % client.transport._host, + args[1], + ) + + +def test_update_route_policy_unary_rest_flattened_error(transport: str = "rest"): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_route_policy_unary( + compute.UpdateRoutePolicyRouterRequest(), + project="project_value", + region="region_value", + router="router_value", + route_policy_resource=compute.RoutePolicy(description="description_value"), + ) + + +def test_credentials_transport_error(): + # It is an error to provide credentials and a transport instance. + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # It is an error to provide a credentials file and a transport instance. + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = RoutersClient( + client_options={"credentials_file": "credentials.json"}, + transport=transport, + ) + + # It is an error to provide an api_key and a transport instance. + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + options = client_options.ClientOptions() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = RoutersClient( + client_options=options, + transport=transport, + ) + + # It is an error to provide an api_key and a credential. + options = client_options.ClientOptions() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = RoutersClient( + client_options=options, credentials=ga_credentials.AnonymousCredentials() + ) + + # It is an error to provide scopes and a transport instance. + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = RoutersClient( + client_options={"scopes": ["1", "2"]}, + transport=transport, + ) + + +def test_transport_instance(): + # A client may be instantiated with a custom transport instance. + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + client = RoutersClient(transport=transport) + assert client.transport is transport + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.RoutersRestTransport, + ], +) +def test_transport_adc(transport_class): + # Test default credentials are used if not provided. + with mock.patch.object(google.auth, "default") as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport_class() + adc.assert_called_once() + + +def test_transport_kind_rest(): + transport = RoutersClient.get_transport_class("rest")( + credentials=ga_credentials.AnonymousCredentials() + ) + assert transport.kind == "rest" + + +def test_aggregated_list_rest_bad_request( + request_type=compute.AggregatedListRoutersRequest, +): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.aggregated_list(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.AggregatedListRoutersRequest, + dict, + ], +) +def test_aggregated_list_rest_call_success(request_type): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.RouterAggregatedList( + id="id_value", + kind="kind_value", + next_page_token="next_page_token_value", + self_link="self_link_value", + unreachables=["unreachables_value"], + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.RouterAggregatedList.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.aggregated_list(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.AggregatedListPager) + assert response.id == "id_value" + assert response.kind == "kind_value" + assert response.next_page_token == "next_page_token_value" + assert response.self_link == "self_link_value" + assert response.unreachables == ["unreachables_value"] + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_aggregated_list_rest_interceptors(null_interceptor): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), + ) + client = RoutersClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.RoutersRestInterceptor, "post_aggregated_list" + ) as post, mock.patch.object( + transports.RoutersRestInterceptor, "post_aggregated_list_with_metadata" + ) as post_with_metadata, mock.patch.object( + transports.RoutersRestInterceptor, "pre_aggregated_list" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.AggregatedListRoutersRequest.pb( + compute.AggregatedListRoutersRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.RouterAggregatedList.to_json( + compute.RouterAggregatedList() + ) + req.return_value.content = return_value + + request = compute.AggregatedListRoutersRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.RouterAggregatedList() + post_with_metadata.return_value = compute.RouterAggregatedList(), metadata + + client.aggregated_list( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_delete_rest_bad_request(request_type=compute.DeleteRouterRequest): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.delete(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.DeleteRouterRequest, + dict, + ], +) +def test_delete_rest_call_success(request_type): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.delete(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_delete_rest_interceptors(null_interceptor): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), + ) + client = RoutersClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.RoutersRestInterceptor, "post_delete" + ) as post, mock.patch.object( + transports.RoutersRestInterceptor, "post_delete_with_metadata" + ) as post_with_metadata, mock.patch.object( + transports.RoutersRestInterceptor, "pre_delete" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.DeleteRouterRequest.pb(compute.DeleteRouterRequest()) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.Operation.to_json(compute.Operation()) + req.return_value.content = return_value + + request = compute.DeleteRouterRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata + + client.delete( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_delete_route_policy_rest_bad_request( + request_type=compute.DeleteRoutePolicyRouterRequest, +): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.delete_route_policy(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.DeleteRoutePolicyRouterRequest, + dict, + ], +) +def test_delete_route_policy_rest_call_success(request_type): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Operation.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.delete_route_policy(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_delete_route_policy_rest_interceptors(null_interceptor): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), + ) + client = RoutersClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.RoutersRestInterceptor, "post_delete_route_policy" + ) as post, mock.patch.object( + transports.RoutersRestInterceptor, "post_delete_route_policy_with_metadata" + ) as post_with_metadata, mock.patch.object( + transports.RoutersRestInterceptor, "pre_delete_route_policy" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.DeleteRoutePolicyRouterRequest.pb( + compute.DeleteRoutePolicyRouterRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.Operation.to_json(compute.Operation()) + req.return_value.content = return_value + + request = compute.DeleteRoutePolicyRouterRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata + + client.delete_route_policy( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_get_rest_bad_request(request_type=compute.GetRouterRequest): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.get(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.GetRouterRequest, + dict, + ], +) +def test_get_rest_call_success(request_type): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.Router( + creation_timestamp="creation_timestamp_value", + description="description_value", + encrypted_interconnect_router=True, + id=205, + kind="kind_value", + name="name_value", + network="network_value", + region="region_value", + self_link="self_link_value", + ) + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.Router.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.get(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, compute.Router) + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.encrypted_interconnect_router is True + assert response.id == 205 + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.network == "network_value" + assert response.region == "region_value" + assert response.self_link == "self_link_value" + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_get_rest_interceptors(null_interceptor): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), + ) + client = RoutersClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.RoutersRestInterceptor, "post_get" + ) as post, mock.patch.object( + transports.RoutersRestInterceptor, "post_get_with_metadata" + ) as post_with_metadata, mock.patch.object( + transports.RoutersRestInterceptor, "pre_get" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.GetRouterRequest.pb(compute.GetRouterRequest()) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.Router.to_json(compute.Router()) + req.return_value.content = return_value + + request = compute.GetRouterRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.Router() + post_with_metadata.return_value = compute.Router(), metadata + + client.get( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_get_nat_ip_info_rest_bad_request( + request_type=compute.GetNatIpInfoRouterRequest, +): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.get_nat_ip_info(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.GetNatIpInfoRouterRequest, + dict, + ], +) +def test_get_nat_ip_info_rest_call_success(request_type): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.NatIpInfoResponse() + + # Wrap the value into a proper Response obj + response_value = mock.Mock() + response_value.status_code = 200 + + # Convert return value to protobuf type + return_value = compute.NatIpInfoResponse.pb(return_value) + json_return_value = json_format.MessageToJson(return_value) + response_value.content = json_return_value.encode("UTF-8") + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.get_nat_ip_info(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, compute.NatIpInfoResponse) + + +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_get_nat_ip_info_rest_interceptors(null_interceptor): + transport = transports.RoutersRestTransport( + credentials=ga_credentials.AnonymousCredentials(), + interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), + ) + client = RoutersClient(transport=transport) + + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.RoutersRestInterceptor, "post_get_nat_ip_info" + ) as post, mock.patch.object( + transports.RoutersRestInterceptor, "post_get_nat_ip_info_with_metadata" + ) as post_with_metadata, mock.patch.object( + transports.RoutersRestInterceptor, "pre_get_nat_ip_info" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.GetNatIpInfoRouterRequest.pb( + compute.GetNatIpInfoRouterRequest() + ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } + + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.NatIpInfoResponse.to_json(compute.NatIpInfoResponse()) + req.return_value.content = return_value + + request = compute.GetNatIpInfoRouterRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.NatIpInfoResponse() + post_with_metadata.return_value = compute.NatIpInfoResponse(), metadata + + client.get_nat_ip_info( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], + ) + + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() + + +def test_get_nat_mapping_info_rest_bad_request( + request_type=compute.GetNatMappingInfoRoutersRequest, +): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a BadRequest error. + with mock.patch.object(Session, "request") as req, pytest.raises( + core_exceptions.BadRequest + ): + # Wrap the value into a proper Response obj + response_value = mock.Mock() + json_return_value = "" + response_value.json = mock.Mock(return_value={}) + response_value.status_code = 400 + response_value.request = mock.Mock() + req.return_value = response_value + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + client.get_nat_mapping_info(request) + + +@pytest.mark.parametrize( + "request_type", + [ + compute.GetNatMappingInfoRoutersRequest, + dict, + ], +) +def test_get_nat_mapping_info_rest_call_success(request_type): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), transport="rest" + ) + + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request = request_type(**request_init) + + # Mock the http request call within the method and fake a response. + with mock.patch.object(type(client.transport._session), "request") as req: + # Designate an appropriate value for the returned response. + return_value = compute.VmEndpointNatMappingsList( + id="id_value", + kind="kind_value", + next_page_token="next_page_token_value", + self_link="self_link_value", + ) # Wrap the value into a proper Response obj - response_value = Response() + response_value = mock.Mock() response_value.status_code = 200 + # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.VmEndpointNatMappingsList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) - response_value._content = json_return_value.encode("UTF-8") + response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + response = client.get_nat_mapping_info(request) - client.update_unary(**mock_args) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(req.mock_calls) == 1 - _, args, _ = req.mock_calls[0] - assert path_template.validate( - "%s/compute/v1/projects/{project}/regions/{region}/routers/{router}" - % client.transport._host, - args[1], - ) - - -def test_update_unary_rest_flattened_error(transport: str = "rest"): - client = RoutersClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.update_unary( - compute.UpdateRouterRequest(), - project="project_value", - region="region_value", - router="router_value", - router_resource=compute.Router( - bgp=compute.RouterBgp(advertise_mode="advertise_mode_value") - ), - ) + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.GetNatMappingInfoPager) + assert response.id == "id_value" + assert response.kind == "kind_value" + assert response.next_page_token == "next_page_token_value" + assert response.self_link == "self_link_value" -def test_credentials_transport_error(): - # It is an error to provide credentials and a transport instance. +@pytest.mark.parametrize("null_interceptor", [True, False]) +def test_get_nat_mapping_info_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), + interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), ) - with pytest.raises(ValueError): - client = RoutersClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) + client = RoutersClient(transport=transport) - # It is an error to provide a credentials file and a transport instance. - transport = transports.RoutersRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = RoutersClient( - client_options={"credentials_file": "credentials.json"}, - transport=transport, + with mock.patch.object( + type(client.transport._session), "request" + ) as req, mock.patch.object( + path_template, "transcode" + ) as transcode, mock.patch.object( + transports.RoutersRestInterceptor, "post_get_nat_mapping_info" + ) as post, mock.patch.object( + transports.RoutersRestInterceptor, "post_get_nat_mapping_info_with_metadata" + ) as post_with_metadata, mock.patch.object( + transports.RoutersRestInterceptor, "pre_get_nat_mapping_info" + ) as pre: + pre.assert_not_called() + post.assert_not_called() + post_with_metadata.assert_not_called() + pb_message = compute.GetNatMappingInfoRoutersRequest.pb( + compute.GetNatMappingInfoRoutersRequest() ) + transcode.return_value = { + "method": "post", + "uri": "my_uri", + "body": pb_message, + "query_params": pb_message, + } - # It is an error to provide an api_key and a transport instance. - transport = transports.RoutersRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - options = client_options.ClientOptions() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = RoutersClient( - client_options=options, - transport=transport, + req.return_value = mock.Mock() + req.return_value.status_code = 200 + req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} + return_value = compute.VmEndpointNatMappingsList.to_json( + compute.VmEndpointNatMappingsList() ) + req.return_value.content = return_value - # It is an error to provide an api_key and a credential. - options = client_options.ClientOptions() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = RoutersClient( - client_options=options, credentials=ga_credentials.AnonymousCredentials() - ) + request = compute.GetNatMappingInfoRoutersRequest() + metadata = [ + ("key", "val"), + ("cephalopod", "squid"), + ] + pre.return_value = request, metadata + post.return_value = compute.VmEndpointNatMappingsList() + post_with_metadata.return_value = compute.VmEndpointNatMappingsList(), metadata - # It is an error to provide scopes and a transport instance. - transport = transports.RoutersRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = RoutersClient( - client_options={"scopes": ["1", "2"]}, - transport=transport, + client.get_nat_mapping_info( + request, + metadata=[ + ("key", "val"), + ("cephalopod", "squid"), + ], ) - -def test_transport_instance(): - # A client may be instantiated with a custom transport instance. - transport = transports.RoutersRestTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - client = RoutersClient(transport=transport) - assert client.transport is transport - - -@pytest.mark.parametrize( - "transport_class", - [ - transports.RoutersRestTransport, - ], -) -def test_transport_adc(transport_class): - # Test default credentials are used if not provided. - with mock.patch.object(google.auth, "default") as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class() - adc.assert_called_once() - - -def test_transport_kind_rest(): - transport = RoutersClient.get_transport_class("rest")( - credentials=ga_credentials.AnonymousCredentials() - ) - assert transport.kind == "rest" + pre.assert_called_once() + post.assert_called_once() + post_with_metadata.assert_called_once() -def test_aggregated_list_rest_bad_request( - request_type=compute.AggregatedListRoutersRequest, +def test_get_route_policy_rest_bad_request( + request_type=compute.GetRoutePolicyRouterRequest, ): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1"} + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -4347,59 +7311,48 @@ def test_aggregated_list_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.aggregated_list(request) + client.get_route_policy(request) @pytest.mark.parametrize( "request_type", [ - compute.AggregatedListRoutersRequest, + compute.GetRoutePolicyRouterRequest, dict, ], ) -def test_aggregated_list_rest_call_success(request_type): +def test_get_route_policy_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1"} + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.RouterAggregatedList( - id="id_value", - kind="kind_value", - next_page_token="next_page_token_value", - self_link="self_link_value", - unreachables=["unreachables_value"], - ) + return_value = compute.RoutersGetRoutePolicyResponse() # Wrap the value into a proper Response obj response_value = mock.Mock() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RouterAggregatedList.pb(return_value) + return_value = compute.RoutersGetRoutePolicyResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.aggregated_list(request) + response = client.get_route_policy(request) # Establish that the response is the type that we expect. - assert isinstance(response, pagers.AggregatedListPager) - assert response.id == "id_value" - assert response.kind == "kind_value" - assert response.next_page_token == "next_page_token_value" - assert response.self_link == "self_link_value" - assert response.unreachables == ["unreachables_value"] + assert isinstance(response, compute.RoutersGetRoutePolicyResponse) @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_aggregated_list_rest_interceptors(null_interceptor): +def test_get_route_policy_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -4411,17 +7364,17 @@ def test_aggregated_list_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_aggregated_list" + transports.RoutersRestInterceptor, "post_get_route_policy" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_aggregated_list_with_metadata" + transports.RoutersRestInterceptor, "post_get_route_policy_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_aggregated_list" + transports.RoutersRestInterceptor, "pre_get_route_policy" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.AggregatedListRoutersRequest.pb( - compute.AggregatedListRoutersRequest() + pb_message = compute.GetRoutePolicyRouterRequest.pb( + compute.GetRoutePolicyRouterRequest() ) transcode.return_value = { "method": "post", @@ -4433,21 +7386,24 @@ def test_aggregated_list_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.RouterAggregatedList.to_json( - compute.RouterAggregatedList() + return_value = compute.RoutersGetRoutePolicyResponse.to_json( + compute.RoutersGetRoutePolicyResponse() ) req.return_value.content = return_value - request = compute.AggregatedListRoutersRequest() + request = compute.GetRoutePolicyRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.RouterAggregatedList() - post_with_metadata.return_value = compute.RouterAggregatedList(), metadata + post.return_value = compute.RoutersGetRoutePolicyResponse() + post_with_metadata.return_value = ( + compute.RoutersGetRoutePolicyResponse(), + metadata, + ) - client.aggregated_list( + client.get_route_policy( request, metadata=[ ("key", "val"), @@ -4460,7 +7416,9 @@ def test_aggregated_list_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_delete_rest_bad_request(request_type=compute.DeleteRouterRequest): +def test_get_router_status_rest_bad_request( + request_type=compute.GetRouterStatusRouterRequest, +): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -4480,17 +7438,17 @@ def test_delete_rest_bad_request(request_type=compute.DeleteRouterRequest): response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.delete(request) + client.get_router_status(request) @pytest.mark.parametrize( "request_type", [ - compute.DeleteRouterRequest, + compute.GetRouterStatusRouterRequest, dict, ], ) -def test_delete_rest_call_success(request_type): +def test_get_router_status_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -4502,29 +7460,8 @@ def test_delete_rest_call_success(request_type): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation( - client_operation_id="client_operation_id_value", - creation_timestamp="creation_timestamp_value", - description="description_value", - end_time="end_time_value", - http_error_message="http_error_message_value", - http_error_status_code=2374, - id=205, - insert_time="insert_time_value", + return_value = compute.RouterStatusResponse( kind="kind_value", - name="name_value", - operation_group_id="operation_group_id_value", - operation_type="operation_type_value", - progress=885, - region="region_value", - self_link="self_link_value", - start_time="start_time_value", - status=compute.Operation.Status.DONE, - status_message="status_message_value", - target_id=947, - target_link="target_link_value", - user="user_value", - zone="zone_value", ) # Wrap the value into a proper Response obj @@ -4532,41 +7469,20 @@ def test_delete_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.RouterStatusResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.delete(request) - - # Establish that the response is the type that we expect. - assert isinstance(response, extended_operation.ExtendedOperation) - assert response.client_operation_id == "client_operation_id_value" - assert response.creation_timestamp == "creation_timestamp_value" - assert response.description == "description_value" - assert response.end_time == "end_time_value" - assert response.http_error_message == "http_error_message_value" - assert response.http_error_status_code == 2374 - assert response.id == 205 - assert response.insert_time == "insert_time_value" + response = client.get_router_status(request) + + # Establish that the response is the type that we expect. + assert isinstance(response, compute.RouterStatusResponse) assert response.kind == "kind_value" - assert response.name == "name_value" - assert response.operation_group_id == "operation_group_id_value" - assert response.operation_type == "operation_type_value" - assert response.progress == 885 - assert response.region == "region_value" - assert response.self_link == "self_link_value" - assert response.start_time == "start_time_value" - assert response.status == compute.Operation.Status.DONE - assert response.status_message == "status_message_value" - assert response.target_id == 947 - assert response.target_link == "target_link_value" - assert response.user == "user_value" - assert response.zone == "zone_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_delete_rest_interceptors(null_interceptor): +def test_get_router_status_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -4578,16 +7494,18 @@ def test_delete_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_delete" + transports.RoutersRestInterceptor, "post_get_router_status" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_delete_with_metadata" + transports.RoutersRestInterceptor, "post_get_router_status_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_delete" + transports.RoutersRestInterceptor, "pre_get_router_status" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.DeleteRouterRequest.pb(compute.DeleteRouterRequest()) + pb_message = compute.GetRouterStatusRouterRequest.pb( + compute.GetRouterStatusRouterRequest() + ) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -4598,19 +7516,21 @@ def test_delete_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.Operation.to_json(compute.Operation()) + return_value = compute.RouterStatusResponse.to_json( + compute.RouterStatusResponse() + ) req.return_value.content = return_value - request = compute.DeleteRouterRequest() + request = compute.GetRouterStatusRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.Operation() - post_with_metadata.return_value = compute.Operation(), metadata + post.return_value = compute.RouterStatusResponse() + post_with_metadata.return_value = compute.RouterStatusResponse(), metadata - client.delete( + client.get_router_status( request, metadata=[ ("key", "val"), @@ -4623,12 +7543,12 @@ def test_delete_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_get_rest_bad_request(request_type=compute.GetRouterRequest): +def test_insert_rest_bad_request(request_type=compute.InsertRouterRequest): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request_init = {"project": "sample1", "region": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -4643,38 +7563,252 @@ def test_get_rest_bad_request(request_type=compute.GetRouterRequest): response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get(request) + client.insert(request) @pytest.mark.parametrize( "request_type", [ - compute.GetRouterRequest, + compute.InsertRouterRequest, dict, ], ) -def test_get_rest_call_success(request_type): +def test_insert_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request_init = {"project": "sample1", "region": "sample2"} + request_init["router_resource"] = { + "bgp": { + "advertise_mode": "advertise_mode_value", + "advertised_groups": [ + "advertised_groups_value1", + "advertised_groups_value2", + ], + "advertised_ip_ranges": [ + {"description": "description_value", "range_": "range__value"} + ], + "asn": 322, + "identifier_range": "identifier_range_value", + "keepalive_interval": 1914, + }, + "bgp_peers": [ + { + "advertise_mode": "advertise_mode_value", + "advertised_groups": [ + "advertised_groups_value1", + "advertised_groups_value2", + ], + "advertised_ip_ranges": {}, + "advertised_route_priority": 2714, + "bfd": { + "min_receive_interval": 2122, + "min_transmit_interval": 2265, + "multiplier": 1095, + "session_initialization_mode": "session_initialization_mode_value", + }, + "custom_learned_ip_ranges": [{"range_": "range__value"}], + "custom_learned_route_priority": 3140, + "enable": "enable_value", + "enable_ipv4": True, + "enable_ipv6": True, + "export_policies": ["export_policies_value1", "export_policies_value2"], + "import_policies": ["import_policies_value1", "import_policies_value2"], + "interface_name": "interface_name_value", + "ip_address": "ip_address_value", + "ipv4_nexthop_address": "ipv4_nexthop_address_value", + "ipv6_nexthop_address": "ipv6_nexthop_address_value", + "management_type": "management_type_value", + "md5_authentication_key_name": "md5_authentication_key_name_value", + "name": "name_value", + "peer_asn": 845, + "peer_ip_address": "peer_ip_address_value", + "peer_ipv4_nexthop_address": "peer_ipv4_nexthop_address_value", + "peer_ipv6_nexthop_address": "peer_ipv6_nexthop_address_value", + "router_appliance_instance": "router_appliance_instance_value", + } + ], + "creation_timestamp": "creation_timestamp_value", + "description": "description_value", + "encrypted_interconnect_router": True, + "id": 205, + "interfaces": [ + { + "ip_range": "ip_range_value", + "ip_version": "ip_version_value", + "linked_interconnect_attachment": "linked_interconnect_attachment_value", + "linked_vpn_tunnel": "linked_vpn_tunnel_value", + "management_type": "management_type_value", + "name": "name_value", + "private_ip_address": "private_ip_address_value", + "redundant_interface": "redundant_interface_value", + "subnetwork": "subnetwork_value", + } + ], + "kind": "kind_value", + "md5_authentication_keys": [{"key": "key_value", "name": "name_value"}], + "name": "name_value", + "nats": [ + { + "auto_network_tier": "auto_network_tier_value", + "drain_nat_ips": ["drain_nat_ips_value1", "drain_nat_ips_value2"], + "enable_dynamic_port_allocation": True, + "enable_endpoint_independent_mapping": True, + "endpoint_types": ["endpoint_types_value1", "endpoint_types_value2"], + "icmp_idle_timeout_sec": 2214, + "log_config": {"enable": True, "filter": "filter_value"}, + "max_ports_per_vm": 1733, + "min_ports_per_vm": 1731, + "name": "name_value", + "nat_ip_allocate_option": "nat_ip_allocate_option_value", + "nat_ips": ["nat_ips_value1", "nat_ips_value2"], + "rules": [ + { + "action": { + "source_nat_active_ips": [ + "source_nat_active_ips_value1", + "source_nat_active_ips_value2", + ], + "source_nat_active_ranges": [ + "source_nat_active_ranges_value1", + "source_nat_active_ranges_value2", + ], + "source_nat_drain_ips": [ + "source_nat_drain_ips_value1", + "source_nat_drain_ips_value2", + ], + "source_nat_drain_ranges": [ + "source_nat_drain_ranges_value1", + "source_nat_drain_ranges_value2", + ], + }, + "description": "description_value", + "match": "match_value", + "rule_number": 1184, + } + ], + "source_subnetwork_ip_ranges_to_nat": "source_subnetwork_ip_ranges_to_nat_value", + "subnetworks": [ + { + "name": "name_value", + "secondary_ip_range_names": [ + "secondary_ip_range_names_value1", + "secondary_ip_range_names_value2", + ], + "source_ip_ranges_to_nat": [ + "source_ip_ranges_to_nat_value1", + "source_ip_ranges_to_nat_value2", + ], + } + ], + "tcp_established_idle_timeout_sec": 3371, + "tcp_time_wait_timeout_sec": 2665, + "tcp_transitory_idle_timeout_sec": 3330, + "type_": "type__value", + "udp_idle_timeout_sec": 2118, + } + ], + "network": "network_value", + "region": "region_value", + "self_link": "self_link_value", + } + # The version of a generated dependency at test runtime may differ from the version used during generation. + # Delete any fields which are not present in the current runtime dependency + # See https://github.com/googleapis/gapic-generator-python/issues/1748 + + # Determine if the message type is proto-plus or protobuf + test_field = compute.InsertRouterRequest.meta.fields["router_resource"] + + def get_message_fields(field): + # Given a field which is a message (composite type), return a list with + # all the fields of the message. + # If the field is not a composite type, return an empty list. + message_fields = [] + + if hasattr(field, "message") and field.message: + is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") + + if is_field_type_proto_plus_type: + message_fields = field.message.meta.fields.values() + # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types + else: # pragma: NO COVER + message_fields = field.message.DESCRIPTOR.fields + return message_fields + + runtime_nested_fields = [ + (field.name, nested_field.name) + for field in get_message_fields(test_field) + for nested_field in get_message_fields(field) + ] + + subfields_not_in_runtime = [] + + # For each item in the sample request, create a list of sub fields which are not present at runtime + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for field, value in request_init["router_resource"].items(): # pragma: NO COVER + result = None + is_repeated = False + # For repeated fields + if isinstance(value, list) and len(value): + is_repeated = True + result = value[0] + # For fields where the type is another message + if isinstance(value, dict): + result = value + + if result and hasattr(result, "keys"): + for subfield in result.keys(): + if (field, subfield) not in runtime_nested_fields: + subfields_not_in_runtime.append( + { + "field": field, + "subfield": subfield, + "is_repeated": is_repeated, + } + ) + + # Remove fields from the sample request which are not present in the runtime version of the dependency + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER + field = subfield_to_delete.get("field") + field_repeated = subfield_to_delete.get("is_repeated") + subfield = subfield_to_delete.get("subfield") + if subfield: + if field_repeated: + for i in range(0, len(request_init["router_resource"][field])): + del request_init["router_resource"][field][i][subfield] + else: + del request_init["router_resource"][field][subfield] request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Router( + return_value = compute.Operation( + client_operation_id="client_operation_id_value", creation_timestamp="creation_timestamp_value", description="description_value", - encrypted_interconnect_router=True, + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, id=205, + insert_time="insert_time_value", kind="kind_value", name="name_value", - network="network_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, region="region_value", self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", ) # Wrap the value into a proper Response obj @@ -4682,28 +7816,41 @@ def test_get_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Router.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get(request) + response = client.insert(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.Router) + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" assert response.creation_timestamp == "creation_timestamp_value" assert response.description == "description_value" - assert response.encrypted_interconnect_router is True + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 assert response.id == 205 + assert response.insert_time == "insert_time_value" assert response.kind == "kind_value" assert response.name == "name_value" - assert response.network == "network_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 assert response.region == "region_value" assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_rest_interceptors(null_interceptor): +def test_insert_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -4715,16 +7862,16 @@ def test_get_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_get" + transports.RoutersRestInterceptor, "post_insert" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_get_with_metadata" + transports.RoutersRestInterceptor, "post_insert_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_get" + transports.RoutersRestInterceptor, "pre_insert" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetRouterRequest.pb(compute.GetRouterRequest()) + pb_message = compute.InsertRouterRequest.pb(compute.InsertRouterRequest()) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -4735,19 +7882,19 @@ def test_get_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.Router.to_json(compute.Router()) + return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.GetRouterRequest() + request = compute.InsertRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.Router() - post_with_metadata.return_value = compute.Router(), metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata - client.get( + client.insert( request, metadata=[ ("key", "val"), @@ -4760,14 +7907,12 @@ def test_get_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_get_nat_ip_info_rest_bad_request( - request_type=compute.GetNatIpInfoRouterRequest, -): +def test_list_rest_bad_request(request_type=compute.ListRoutersRequest): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request_init = {"project": "sample1", "region": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -4782,48 +7927,57 @@ def test_get_nat_ip_info_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_nat_ip_info(request) + client.list(request) @pytest.mark.parametrize( "request_type", [ - compute.GetNatIpInfoRouterRequest, + compute.ListRoutersRequest, dict, ], ) -def test_get_nat_ip_info_rest_call_success(request_type): +def test_list_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request_init = {"project": "sample1", "region": "sample2"} request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.NatIpInfoResponse() + return_value = compute.RouterList( + id="id_value", + kind="kind_value", + next_page_token="next_page_token_value", + self_link="self_link_value", + ) # Wrap the value into a proper Response obj response_value = mock.Mock() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.NatIpInfoResponse.pb(return_value) + return_value = compute.RouterList.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_nat_ip_info(request) + response = client.list(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.NatIpInfoResponse) + assert isinstance(response, pagers.ListPager) + assert response.id == "id_value" + assert response.kind == "kind_value" + assert response.next_page_token == "next_page_token_value" + assert response.self_link == "self_link_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_nat_ip_info_rest_interceptors(null_interceptor): +def test_list_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -4835,18 +7989,16 @@ def test_get_nat_ip_info_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_get_nat_ip_info" + transports.RoutersRestInterceptor, "post_list" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_get_nat_ip_info_with_metadata" + transports.RoutersRestInterceptor, "post_list_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_get_nat_ip_info" + transports.RoutersRestInterceptor, "pre_list" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetNatIpInfoRouterRequest.pb( - compute.GetNatIpInfoRouterRequest() - ) + pb_message = compute.ListRoutersRequest.pb(compute.ListRoutersRequest()) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -4857,19 +8009,19 @@ def test_get_nat_ip_info_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.NatIpInfoResponse.to_json(compute.NatIpInfoResponse()) + return_value = compute.RouterList.to_json(compute.RouterList()) req.return_value.content = return_value - request = compute.GetNatIpInfoRouterRequest() + request = compute.ListRoutersRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.NatIpInfoResponse() - post_with_metadata.return_value = compute.NatIpInfoResponse(), metadata + post.return_value = compute.RouterList() + post_with_metadata.return_value = compute.RouterList(), metadata - client.get_nat_ip_info( + client.list( request, metadata=[ ("key", "val"), @@ -4882,8 +8034,8 @@ def test_get_nat_ip_info_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_get_nat_mapping_info_rest_bad_request( - request_type=compute.GetNatMappingInfoRoutersRequest, +def test_list_bgp_routes_rest_bad_request( + request_type=compute.ListBgpRoutesRoutersRequest, ): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" @@ -4904,17 +8056,17 @@ def test_get_nat_mapping_info_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_nat_mapping_info(request) + client.list_bgp_routes(request) @pytest.mark.parametrize( "request_type", [ - compute.GetNatMappingInfoRoutersRequest, + compute.ListBgpRoutesRoutersRequest, dict, ], ) -def test_get_nat_mapping_info_rest_call_success(request_type): +def test_list_bgp_routes_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -4926,11 +8078,13 @@ def test_get_nat_mapping_info_rest_call_success(request_type): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.VmEndpointNatMappingsList( + return_value = compute.RoutersListBgpRoutes( + etag="etag_value", id="id_value", kind="kind_value", next_page_token="next_page_token_value", self_link="self_link_value", + unreachables=["unreachables_value"], ) # Wrap the value into a proper Response obj @@ -4938,23 +8092,25 @@ def test_get_nat_mapping_info_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.VmEndpointNatMappingsList.pb(return_value) + return_value = compute.RoutersListBgpRoutes.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_nat_mapping_info(request) + response = client.list_bgp_routes(request) # Establish that the response is the type that we expect. - assert isinstance(response, pagers.GetNatMappingInfoPager) + assert isinstance(response, pagers.ListBgpRoutesPager) + assert response.etag == "etag_value" assert response.id == "id_value" assert response.kind == "kind_value" assert response.next_page_token == "next_page_token_value" assert response.self_link == "self_link_value" + assert response.unreachables == ["unreachables_value"] @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_nat_mapping_info_rest_interceptors(null_interceptor): +def test_list_bgp_routes_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -4966,17 +8122,17 @@ def test_get_nat_mapping_info_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_get_nat_mapping_info" + transports.RoutersRestInterceptor, "post_list_bgp_routes" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_get_nat_mapping_info_with_metadata" + transports.RoutersRestInterceptor, "post_list_bgp_routes_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_get_nat_mapping_info" + transports.RoutersRestInterceptor, "pre_list_bgp_routes" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetNatMappingInfoRoutersRequest.pb( - compute.GetNatMappingInfoRoutersRequest() + pb_message = compute.ListBgpRoutesRoutersRequest.pb( + compute.ListBgpRoutesRoutersRequest() ) transcode.return_value = { "method": "post", @@ -4988,21 +8144,21 @@ def test_get_nat_mapping_info_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.VmEndpointNatMappingsList.to_json( - compute.VmEndpointNatMappingsList() + return_value = compute.RoutersListBgpRoutes.to_json( + compute.RoutersListBgpRoutes() ) req.return_value.content = return_value - request = compute.GetNatMappingInfoRoutersRequest() + request = compute.ListBgpRoutesRoutersRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.VmEndpointNatMappingsList() - post_with_metadata.return_value = compute.VmEndpointNatMappingsList(), metadata + post.return_value = compute.RoutersListBgpRoutes() + post_with_metadata.return_value = compute.RoutersListBgpRoutes(), metadata - client.get_nat_mapping_info( + client.list_bgp_routes( request, metadata=[ ("key", "val"), @@ -5015,8 +8171,8 @@ def test_get_nat_mapping_info_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_get_router_status_rest_bad_request( - request_type=compute.GetRouterStatusRouterRequest, +def test_list_route_policies_rest_bad_request( + request_type=compute.ListRoutePoliciesRoutersRequest, ): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" @@ -5037,17 +8193,17 @@ def test_get_router_status_rest_bad_request( response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.get_router_status(request) + client.list_route_policies(request) @pytest.mark.parametrize( "request_type", [ - compute.GetRouterStatusRouterRequest, + compute.ListRoutePoliciesRoutersRequest, dict, ], ) -def test_get_router_status_rest_call_success(request_type): +def test_list_route_policies_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -5059,8 +8215,13 @@ def test_get_router_status_rest_call_success(request_type): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.RouterStatusResponse( + return_value = compute.RoutersListRoutePolicies( + etag="etag_value", + id="id_value", kind="kind_value", + next_page_token="next_page_token_value", + self_link="self_link_value", + unreachables=["unreachables_value"], ) # Wrap the value into a proper Response obj @@ -5068,20 +8229,25 @@ def test_get_router_status_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RouterStatusResponse.pb(return_value) + return_value = compute.RoutersListRoutePolicies.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.get_router_status(request) + response = client.list_route_policies(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.RouterStatusResponse) + assert isinstance(response, pagers.ListRoutePoliciesPager) + assert response.etag == "etag_value" + assert response.id == "id_value" assert response.kind == "kind_value" + assert response.next_page_token == "next_page_token_value" + assert response.self_link == "self_link_value" + assert response.unreachables == ["unreachables_value"] @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_get_router_status_rest_interceptors(null_interceptor): +def test_list_route_policies_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -5093,17 +8259,17 @@ def test_get_router_status_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_get_router_status" + transports.RoutersRestInterceptor, "post_list_route_policies" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_get_router_status_with_metadata" + transports.RoutersRestInterceptor, "post_list_route_policies_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_get_router_status" + transports.RoutersRestInterceptor, "pre_list_route_policies" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.GetRouterStatusRouterRequest.pb( - compute.GetRouterStatusRouterRequest() + pb_message = compute.ListRoutePoliciesRoutersRequest.pb( + compute.ListRoutePoliciesRoutersRequest() ) transcode.return_value = { "method": "post", @@ -5115,21 +8281,21 @@ def test_get_router_status_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.RouterStatusResponse.to_json( - compute.RouterStatusResponse() + return_value = compute.RoutersListRoutePolicies.to_json( + compute.RoutersListRoutePolicies() ) req.return_value.content = return_value - request = compute.GetRouterStatusRouterRequest() + request = compute.ListRoutePoliciesRoutersRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.RouterStatusResponse() - post_with_metadata.return_value = compute.RouterStatusResponse(), metadata + post.return_value = compute.RoutersListRoutePolicies() + post_with_metadata.return_value = compute.RoutersListRoutePolicies(), metadata - client.get_router_status( + client.list_route_policies( request, metadata=[ ("key", "val"), @@ -5142,12 +8308,12 @@ def test_get_router_status_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_insert_rest_bad_request(request_type=compute.InsertRouterRequest): +def test_patch_rest_bad_request(request_type=compute.PatchRouterRequest): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2"} + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -5162,23 +8328,23 @@ def test_insert_rest_bad_request(request_type=compute.InsertRouterRequest): response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.insert(request) + client.patch(request) @pytest.mark.parametrize( "request_type", [ - compute.InsertRouterRequest, + compute.PatchRouterRequest, dict, ], ) -def test_insert_rest_call_success(request_type): +def test_patch_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2"} + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} request_init["router_resource"] = { "bgp": { "advertise_mode": "advertise_mode_value", @@ -5318,7 +8484,7 @@ def test_insert_rest_call_success(request_type): # See https://github.com/googleapis/gapic-generator-python/issues/1748 # Determine if the message type is proto-plus or protobuf - test_field = compute.InsertRouterRequest.meta.fields["router_resource"] + test_field = compute.PatchRouterRequest.meta.fields["router_resource"] def get_message_fields(field): # Given a field which is a message (composite type), return a list with @@ -5420,7 +8586,7 @@ def get_message_fields(field): response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.insert(request) + response = client.patch(request) # Establish that the response is the type that we expect. assert isinstance(response, extended_operation.ExtendedOperation) @@ -5449,7 +8615,7 @@ def get_message_fields(field): @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_insert_rest_interceptors(null_interceptor): +def test_patch_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -5461,16 +8627,16 @@ def test_insert_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_insert" + transports.RoutersRestInterceptor, "post_patch" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_insert_with_metadata" + transports.RoutersRestInterceptor, "post_patch_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_insert" + transports.RoutersRestInterceptor, "pre_patch" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.InsertRouterRequest.pb(compute.InsertRouterRequest()) + pb_message = compute.PatchRouterRequest.pb(compute.PatchRouterRequest()) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -5484,7 +8650,7 @@ def test_insert_rest_interceptors(null_interceptor): return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.InsertRouterRequest() + request = compute.PatchRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), @@ -5493,7 +8659,7 @@ def test_insert_rest_interceptors(null_interceptor): post.return_value = compute.Operation() post_with_metadata.return_value = compute.Operation(), metadata - client.insert( + client.patch( request, metadata=[ ("key", "val"), @@ -5506,12 +8672,14 @@ def test_insert_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_list_rest_bad_request(request_type=compute.ListRoutersRequest): +def test_patch_route_policy_rest_bad_request( + request_type=compute.PatchRoutePolicyRouterRequest, +): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2"} + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} request = request_type(**request_init) # Mock the http request call within the method and fake a BadRequest error. @@ -5526,33 +8694,142 @@ def test_list_rest_bad_request(request_type=compute.ListRoutersRequest): response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.list(request) + client.patch_route_policy(request) @pytest.mark.parametrize( "request_type", [ - compute.ListRoutersRequest, + compute.PatchRoutePolicyRouterRequest, dict, ], ) -def test_list_rest_call_success(request_type): +def test_patch_route_policy_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) - # send a request that will satisfy transcoding - request_init = {"project": "sample1", "region": "sample2"} + # send a request that will satisfy transcoding + request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} + request_init["route_policy_resource"] = { + "description": "description_value", + "fingerprint": "fingerprint_value", + "name": "name_value", + "terms": [ + { + "actions": [ + { + "description": "description_value", + "expression": "expression_value", + "location": "location_value", + "title": "title_value", + } + ], + "match": {}, + "priority": 898, + } + ], + "type_": "type__value", + } + # The version of a generated dependency at test runtime may differ from the version used during generation. + # Delete any fields which are not present in the current runtime dependency + # See https://github.com/googleapis/gapic-generator-python/issues/1748 + + # Determine if the message type is proto-plus or protobuf + test_field = compute.PatchRoutePolicyRouterRequest.meta.fields[ + "route_policy_resource" + ] + + def get_message_fields(field): + # Given a field which is a message (composite type), return a list with + # all the fields of the message. + # If the field is not a composite type, return an empty list. + message_fields = [] + + if hasattr(field, "message") and field.message: + is_field_type_proto_plus_type = not hasattr(field.message, "DESCRIPTOR") + + if is_field_type_proto_plus_type: + message_fields = field.message.meta.fields.values() + # Add `# pragma: NO COVER` because there may not be any `*_pb2` field types + else: # pragma: NO COVER + message_fields = field.message.DESCRIPTOR.fields + return message_fields + + runtime_nested_fields = [ + (field.name, nested_field.name) + for field in get_message_fields(test_field) + for nested_field in get_message_fields(field) + ] + + subfields_not_in_runtime = [] + + # For each item in the sample request, create a list of sub fields which are not present at runtime + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for field, value in request_init[ + "route_policy_resource" + ].items(): # pragma: NO COVER + result = None + is_repeated = False + # For repeated fields + if isinstance(value, list) and len(value): + is_repeated = True + result = value[0] + # For fields where the type is another message + if isinstance(value, dict): + result = value + + if result and hasattr(result, "keys"): + for subfield in result.keys(): + if (field, subfield) not in runtime_nested_fields: + subfields_not_in_runtime.append( + { + "field": field, + "subfield": subfield, + "is_repeated": is_repeated, + } + ) + + # Remove fields from the sample request which are not present in the runtime version of the dependency + # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime + for subfield_to_delete in subfields_not_in_runtime: # pragma: NO COVER + field = subfield_to_delete.get("field") + field_repeated = subfield_to_delete.get("is_repeated") + subfield = subfield_to_delete.get("subfield") + if subfield: + if field_repeated: + for i in range(0, len(request_init["route_policy_resource"][field])): + del request_init["route_policy_resource"][field][i][subfield] + else: + del request_init["route_policy_resource"][field][subfield] request = request_type(**request_init) # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.RouterList( - id="id_value", + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", kind="kind_value", - next_page_token="next_page_token_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", ) # Wrap the value into a proper Response obj @@ -5560,23 +8837,41 @@ def test_list_rest_call_success(request_type): response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RouterList.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.list(request) + response = client.patch_route_policy(request) # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListPager) - assert response.id == "id_value" + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" assert response.kind == "kind_value" - assert response.next_page_token == "next_page_token_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_list_rest_interceptors(null_interceptor): +def test_patch_route_policy_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -5588,16 +8883,18 @@ def test_list_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_list" + transports.RoutersRestInterceptor, "post_patch_route_policy" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_list_with_metadata" + transports.RoutersRestInterceptor, "post_patch_route_policy_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_list" + transports.RoutersRestInterceptor, "pre_patch_route_policy" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.ListRoutersRequest.pb(compute.ListRoutersRequest()) + pb_message = compute.PatchRoutePolicyRouterRequest.pb( + compute.PatchRoutePolicyRouterRequest() + ) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -5608,19 +8905,19 @@ def test_list_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.RouterList.to_json(compute.RouterList()) + return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.ListRoutersRequest() + request = compute.PatchRoutePolicyRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.RouterList() - post_with_metadata.return_value = compute.RouterList(), metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata - client.list( + client.patch_route_policy( request, metadata=[ ("key", "val"), @@ -5633,7 +8930,7 @@ def test_list_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_patch_rest_bad_request(request_type=compute.PatchRouterRequest): +def test_preview_rest_bad_request(request_type=compute.PreviewRouterRequest): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -5653,17 +8950,17 @@ def test_patch_rest_bad_request(request_type=compute.PatchRouterRequest): response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.patch(request) + client.preview(request) @pytest.mark.parametrize( "request_type", [ - compute.PatchRouterRequest, + compute.PreviewRouterRequest, dict, ], ) -def test_patch_rest_call_success(request_type): +def test_preview_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -5809,7 +9106,7 @@ def test_patch_rest_call_success(request_type): # See https://github.com/googleapis/gapic-generator-python/issues/1748 # Determine if the message type is proto-plus or protobuf - test_field = compute.PatchRouterRequest.meta.fields["router_resource"] + test_field = compute.PreviewRouterRequest.meta.fields["router_resource"] def get_message_fields(field): # Given a field which is a message (composite type), return a list with @@ -5876,71 +9173,26 @@ def get_message_fields(field): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.Operation( - client_operation_id="client_operation_id_value", - creation_timestamp="creation_timestamp_value", - description="description_value", - end_time="end_time_value", - http_error_message="http_error_message_value", - http_error_status_code=2374, - id=205, - insert_time="insert_time_value", - kind="kind_value", - name="name_value", - operation_group_id="operation_group_id_value", - operation_type="operation_type_value", - progress=885, - region="region_value", - self_link="self_link_value", - start_time="start_time_value", - status=compute.Operation.Status.DONE, - status_message="status_message_value", - target_id=947, - target_link="target_link_value", - user="user_value", - zone="zone_value", - ) + return_value = compute.RoutersPreviewResponse() # Wrap the value into a proper Response obj response_value = mock.Mock() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.Operation.pb(return_value) + return_value = compute.RoutersPreviewResponse.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.patch(request) + response = client.preview(request) # Establish that the response is the type that we expect. - assert isinstance(response, extended_operation.ExtendedOperation) - assert response.client_operation_id == "client_operation_id_value" - assert response.creation_timestamp == "creation_timestamp_value" - assert response.description == "description_value" - assert response.end_time == "end_time_value" - assert response.http_error_message == "http_error_message_value" - assert response.http_error_status_code == 2374 - assert response.id == 205 - assert response.insert_time == "insert_time_value" - assert response.kind == "kind_value" - assert response.name == "name_value" - assert response.operation_group_id == "operation_group_id_value" - assert response.operation_type == "operation_type_value" - assert response.progress == 885 - assert response.region == "region_value" - assert response.self_link == "self_link_value" - assert response.start_time == "start_time_value" - assert response.status == compute.Operation.Status.DONE - assert response.status_message == "status_message_value" - assert response.target_id == 947 - assert response.target_link == "target_link_value" - assert response.user == "user_value" - assert response.zone == "zone_value" + assert isinstance(response, compute.RoutersPreviewResponse) @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_patch_rest_interceptors(null_interceptor): +def test_preview_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -5952,16 +9204,16 @@ def test_patch_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_patch" + transports.RoutersRestInterceptor, "post_preview" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_patch_with_metadata" + transports.RoutersRestInterceptor, "post_preview_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_patch" + transports.RoutersRestInterceptor, "pre_preview" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.PatchRouterRequest.pb(compute.PatchRouterRequest()) + pb_message = compute.PreviewRouterRequest.pb(compute.PreviewRouterRequest()) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -5972,19 +9224,21 @@ def test_patch_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.Operation.to_json(compute.Operation()) + return_value = compute.RoutersPreviewResponse.to_json( + compute.RoutersPreviewResponse() + ) req.return_value.content = return_value - request = compute.PatchRouterRequest() + request = compute.PreviewRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.Operation() - post_with_metadata.return_value = compute.Operation(), metadata + post.return_value = compute.RoutersPreviewResponse() + post_with_metadata.return_value = compute.RoutersPreviewResponse(), metadata - client.patch( + client.preview( request, metadata=[ ("key", "val"), @@ -5997,7 +9251,7 @@ def test_patch_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_preview_rest_bad_request(request_type=compute.PreviewRouterRequest): +def test_update_rest_bad_request(request_type=compute.UpdateRouterRequest): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -6017,17 +9271,17 @@ def test_preview_rest_bad_request(request_type=compute.PreviewRouterRequest): response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.preview(request) + client.update(request) @pytest.mark.parametrize( "request_type", [ - compute.PreviewRouterRequest, + compute.UpdateRouterRequest, dict, ], ) -def test_preview_rest_call_success(request_type): +def test_update_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -6173,7 +9427,7 @@ def test_preview_rest_call_success(request_type): # See https://github.com/googleapis/gapic-generator-python/issues/1748 # Determine if the message type is proto-plus or protobuf - test_field = compute.PreviewRouterRequest.meta.fields["router_resource"] + test_field = compute.UpdateRouterRequest.meta.fields["router_resource"] def get_message_fields(field): # Given a field which is a message (composite type), return a list with @@ -6240,26 +9494,71 @@ def get_message_fields(field): # Mock the http request call within the method and fake a response. with mock.patch.object(type(client.transport._session), "request") as req: # Designate an appropriate value for the returned response. - return_value = compute.RoutersPreviewResponse() + return_value = compute.Operation( + client_operation_id="client_operation_id_value", + creation_timestamp="creation_timestamp_value", + description="description_value", + end_time="end_time_value", + http_error_message="http_error_message_value", + http_error_status_code=2374, + id=205, + insert_time="insert_time_value", + kind="kind_value", + name="name_value", + operation_group_id="operation_group_id_value", + operation_type="operation_type_value", + progress=885, + region="region_value", + self_link="self_link_value", + start_time="start_time_value", + status=compute.Operation.Status.DONE, + status_message="status_message_value", + target_id=947, + target_link="target_link_value", + user="user_value", + zone="zone_value", + ) # Wrap the value into a proper Response obj response_value = mock.Mock() response_value.status_code = 200 # Convert return value to protobuf type - return_value = compute.RoutersPreviewResponse.pb(return_value) + return_value = compute.Operation.pb(return_value) json_return_value = json_format.MessageToJson(return_value) response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.preview(request) + response = client.update(request) # Establish that the response is the type that we expect. - assert isinstance(response, compute.RoutersPreviewResponse) + assert isinstance(response, extended_operation.ExtendedOperation) + assert response.client_operation_id == "client_operation_id_value" + assert response.creation_timestamp == "creation_timestamp_value" + assert response.description == "description_value" + assert response.end_time == "end_time_value" + assert response.http_error_message == "http_error_message_value" + assert response.http_error_status_code == 2374 + assert response.id == 205 + assert response.insert_time == "insert_time_value" + assert response.kind == "kind_value" + assert response.name == "name_value" + assert response.operation_group_id == "operation_group_id_value" + assert response.operation_type == "operation_type_value" + assert response.progress == 885 + assert response.region == "region_value" + assert response.self_link == "self_link_value" + assert response.start_time == "start_time_value" + assert response.status == compute.Operation.Status.DONE + assert response.status_message == "status_message_value" + assert response.target_id == 947 + assert response.target_link == "target_link_value" + assert response.user == "user_value" + assert response.zone == "zone_value" @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_preview_rest_interceptors(null_interceptor): +def test_update_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -6271,16 +9570,16 @@ def test_preview_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_preview" + transports.RoutersRestInterceptor, "post_update" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_preview_with_metadata" + transports.RoutersRestInterceptor, "post_update_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_preview" + transports.RoutersRestInterceptor, "pre_update" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.PreviewRouterRequest.pb(compute.PreviewRouterRequest()) + pb_message = compute.UpdateRouterRequest.pb(compute.UpdateRouterRequest()) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -6291,21 +9590,19 @@ def test_preview_rest_interceptors(null_interceptor): req.return_value = mock.Mock() req.return_value.status_code = 200 req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - return_value = compute.RoutersPreviewResponse.to_json( - compute.RoutersPreviewResponse() - ) + return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.PreviewRouterRequest() + request = compute.UpdateRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), ] pre.return_value = request, metadata - post.return_value = compute.RoutersPreviewResponse() - post_with_metadata.return_value = compute.RoutersPreviewResponse(), metadata + post.return_value = compute.Operation() + post_with_metadata.return_value = compute.Operation(), metadata - client.preview( + client.update( request, metadata=[ ("key", "val"), @@ -6318,7 +9615,9 @@ def test_preview_rest_interceptors(null_interceptor): post_with_metadata.assert_called_once() -def test_update_rest_bad_request(request_type=compute.UpdateRouterRequest): +def test_update_route_policy_rest_bad_request( + request_type=compute.UpdateRoutePolicyRouterRequest, +): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) @@ -6338,163 +9637,51 @@ def test_update_rest_bad_request(request_type=compute.UpdateRouterRequest): response_value.request = mock.Mock() req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - client.update(request) + client.update_route_policy(request) @pytest.mark.parametrize( "request_type", [ - compute.UpdateRouterRequest, + compute.UpdateRoutePolicyRouterRequest, dict, ], ) -def test_update_rest_call_success(request_type): +def test_update_route_policy_rest_call_success(request_type): client = RoutersClient( credentials=ga_credentials.AnonymousCredentials(), transport="rest" ) # send a request that will satisfy transcoding request_init = {"project": "sample1", "region": "sample2", "router": "sample3"} - request_init["router_resource"] = { - "bgp": { - "advertise_mode": "advertise_mode_value", - "advertised_groups": [ - "advertised_groups_value1", - "advertised_groups_value2", - ], - "advertised_ip_ranges": [ - {"description": "description_value", "range_": "range__value"} - ], - "asn": 322, - "identifier_range": "identifier_range_value", - "keepalive_interval": 1914, - }, - "bgp_peers": [ - { - "advertise_mode": "advertise_mode_value", - "advertised_groups": [ - "advertised_groups_value1", - "advertised_groups_value2", - ], - "advertised_ip_ranges": {}, - "advertised_route_priority": 2714, - "bfd": { - "min_receive_interval": 2122, - "min_transmit_interval": 2265, - "multiplier": 1095, - "session_initialization_mode": "session_initialization_mode_value", - }, - "custom_learned_ip_ranges": [{"range_": "range__value"}], - "custom_learned_route_priority": 3140, - "enable": "enable_value", - "enable_ipv4": True, - "enable_ipv6": True, - "export_policies": ["export_policies_value1", "export_policies_value2"], - "import_policies": ["import_policies_value1", "import_policies_value2"], - "interface_name": "interface_name_value", - "ip_address": "ip_address_value", - "ipv4_nexthop_address": "ipv4_nexthop_address_value", - "ipv6_nexthop_address": "ipv6_nexthop_address_value", - "management_type": "management_type_value", - "md5_authentication_key_name": "md5_authentication_key_name_value", - "name": "name_value", - "peer_asn": 845, - "peer_ip_address": "peer_ip_address_value", - "peer_ipv4_nexthop_address": "peer_ipv4_nexthop_address_value", - "peer_ipv6_nexthop_address": "peer_ipv6_nexthop_address_value", - "router_appliance_instance": "router_appliance_instance_value", - } - ], - "creation_timestamp": "creation_timestamp_value", + request_init["route_policy_resource"] = { "description": "description_value", - "encrypted_interconnect_router": True, - "id": 205, - "interfaces": [ - { - "ip_range": "ip_range_value", - "ip_version": "ip_version_value", - "linked_interconnect_attachment": "linked_interconnect_attachment_value", - "linked_vpn_tunnel": "linked_vpn_tunnel_value", - "management_type": "management_type_value", - "name": "name_value", - "private_ip_address": "private_ip_address_value", - "redundant_interface": "redundant_interface_value", - "subnetwork": "subnetwork_value", - } - ], - "kind": "kind_value", - "md5_authentication_keys": [{"key": "key_value", "name": "name_value"}], + "fingerprint": "fingerprint_value", "name": "name_value", - "nats": [ + "terms": [ { - "auto_network_tier": "auto_network_tier_value", - "drain_nat_ips": ["drain_nat_ips_value1", "drain_nat_ips_value2"], - "enable_dynamic_port_allocation": True, - "enable_endpoint_independent_mapping": True, - "endpoint_types": ["endpoint_types_value1", "endpoint_types_value2"], - "icmp_idle_timeout_sec": 2214, - "log_config": {"enable": True, "filter": "filter_value"}, - "max_ports_per_vm": 1733, - "min_ports_per_vm": 1731, - "name": "name_value", - "nat_ip_allocate_option": "nat_ip_allocate_option_value", - "nat_ips": ["nat_ips_value1", "nat_ips_value2"], - "rules": [ + "actions": [ { - "action": { - "source_nat_active_ips": [ - "source_nat_active_ips_value1", - "source_nat_active_ips_value2", - ], - "source_nat_active_ranges": [ - "source_nat_active_ranges_value1", - "source_nat_active_ranges_value2", - ], - "source_nat_drain_ips": [ - "source_nat_drain_ips_value1", - "source_nat_drain_ips_value2", - ], - "source_nat_drain_ranges": [ - "source_nat_drain_ranges_value1", - "source_nat_drain_ranges_value2", - ], - }, "description": "description_value", - "match": "match_value", - "rule_number": 1184, - } - ], - "source_subnetwork_ip_ranges_to_nat": "source_subnetwork_ip_ranges_to_nat_value", - "subnetworks": [ - { - "name": "name_value", - "secondary_ip_range_names": [ - "secondary_ip_range_names_value1", - "secondary_ip_range_names_value2", - ], - "source_ip_ranges_to_nat": [ - "source_ip_ranges_to_nat_value1", - "source_ip_ranges_to_nat_value2", - ], + "expression": "expression_value", + "location": "location_value", + "title": "title_value", } ], - "tcp_established_idle_timeout_sec": 3371, - "tcp_time_wait_timeout_sec": 2665, - "tcp_transitory_idle_timeout_sec": 3330, - "type_": "type__value", - "udp_idle_timeout_sec": 2118, + "match": {}, + "priority": 898, } ], - "network": "network_value", - "region": "region_value", - "self_link": "self_link_value", + "type_": "type__value", } # The version of a generated dependency at test runtime may differ from the version used during generation. # Delete any fields which are not present in the current runtime dependency # See https://github.com/googleapis/gapic-generator-python/issues/1748 # Determine if the message type is proto-plus or protobuf - test_field = compute.UpdateRouterRequest.meta.fields["router_resource"] + test_field = compute.UpdateRoutePolicyRouterRequest.meta.fields[ + "route_policy_resource" + ] def get_message_fields(field): # Given a field which is a message (composite type), return a list with @@ -6522,7 +9709,9 @@ def get_message_fields(field): # For each item in the sample request, create a list of sub fields which are not present at runtime # Add `# pragma: NO COVER` because this test code will not run if all subfields are present at runtime - for field, value in request_init["router_resource"].items(): # pragma: NO COVER + for field, value in request_init[ + "route_policy_resource" + ].items(): # pragma: NO COVER result = None is_repeated = False # For repeated fields @@ -6552,10 +9741,10 @@ def get_message_fields(field): subfield = subfield_to_delete.get("subfield") if subfield: if field_repeated: - for i in range(0, len(request_init["router_resource"][field])): - del request_init["router_resource"][field][i][subfield] + for i in range(0, len(request_init["route_policy_resource"][field])): + del request_init["route_policy_resource"][field][i][subfield] else: - del request_init["router_resource"][field][subfield] + del request_init["route_policy_resource"][field][subfield] request = request_type(**request_init) # Mock the http request call within the method and fake a response. @@ -6596,7 +9785,7 @@ def get_message_fields(field): response_value.content = json_return_value.encode("UTF-8") req.return_value = response_value req.return_value.headers = {"header-1": "value-1", "header-2": "value-2"} - response = client.update(request) + response = client.update_route_policy(request) # Establish that the response is the type that we expect. assert isinstance(response, extended_operation.ExtendedOperation) @@ -6625,7 +9814,7 @@ def get_message_fields(field): @pytest.mark.parametrize("null_interceptor", [True, False]) -def test_update_rest_interceptors(null_interceptor): +def test_update_route_policy_rest_interceptors(null_interceptor): transport = transports.RoutersRestTransport( credentials=ga_credentials.AnonymousCredentials(), interceptor=None if null_interceptor else transports.RoutersRestInterceptor(), @@ -6637,16 +9826,18 @@ def test_update_rest_interceptors(null_interceptor): ) as req, mock.patch.object( path_template, "transcode" ) as transcode, mock.patch.object( - transports.RoutersRestInterceptor, "post_update" + transports.RoutersRestInterceptor, "post_update_route_policy" ) as post, mock.patch.object( - transports.RoutersRestInterceptor, "post_update_with_metadata" + transports.RoutersRestInterceptor, "post_update_route_policy_with_metadata" ) as post_with_metadata, mock.patch.object( - transports.RoutersRestInterceptor, "pre_update" + transports.RoutersRestInterceptor, "pre_update_route_policy" ) as pre: pre.assert_not_called() post.assert_not_called() post_with_metadata.assert_not_called() - pb_message = compute.UpdateRouterRequest.pb(compute.UpdateRouterRequest()) + pb_message = compute.UpdateRoutePolicyRouterRequest.pb( + compute.UpdateRoutePolicyRouterRequest() + ) transcode.return_value = { "method": "post", "uri": "my_uri", @@ -6660,7 +9851,7 @@ def test_update_rest_interceptors(null_interceptor): return_value = compute.Operation.to_json(compute.Operation()) req.return_value.content = return_value - request = compute.UpdateRouterRequest() + request = compute.UpdateRoutePolicyRouterRequest() metadata = [ ("key", "val"), ("cephalopod", "squid"), @@ -6669,7 +9860,7 @@ def test_update_rest_interceptors(null_interceptor): post.return_value = compute.Operation() post_with_metadata.return_value = compute.Operation(), metadata - client.update( + client.update_route_policy( request, metadata=[ ("key", "val"), @@ -6729,6 +9920,28 @@ def test_delete_unary_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_delete_route_policy_unary_empty_call_rest(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.delete_route_policy), "__call__" + ) as call: + client.delete_route_policy_unary(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.DeleteRoutePolicyRouterRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_get_empty_call_rest(): @@ -6791,6 +10004,26 @@ def test_get_nat_mapping_info_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_get_route_policy_empty_call_rest(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object(type(client.transport.get_route_policy), "__call__") as call: + client.get_route_policy(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.GetRoutePolicyRouterRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_get_router_status_empty_call_rest(): @@ -6853,6 +10086,48 @@ def test_list_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_list_bgp_routes_empty_call_rest(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object(type(client.transport.list_bgp_routes), "__call__") as call: + client.list_bgp_routes(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.ListBgpRoutesRoutersRequest() + + assert args[0] == request_msg + + +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_list_route_policies_empty_call_rest(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.list_route_policies), "__call__" + ) as call: + client.list_route_policies(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.ListRoutePoliciesRoutersRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_patch_unary_empty_call_rest(): @@ -6873,6 +10148,28 @@ def test_patch_unary_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_patch_route_policy_unary_empty_call_rest(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.patch_route_policy), "__call__" + ) as call: + client.patch_route_policy_unary(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.PatchRoutePolicyRouterRequest() + + assert args[0] == request_msg + + # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. def test_preview_empty_call_rest(): @@ -6913,6 +10210,28 @@ def test_update_unary_empty_call_rest(): assert args[0] == request_msg +# This test is a coverage failsafe to make sure that totally empty calls, +# i.e. request == None and no flattened fields passed, work. +def test_update_route_policy_unary_empty_call_rest(): + client = RoutersClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="rest", + ) + + # Mock the actual call, and fake the request. + with mock.patch.object( + type(client.transport.update_route_policy), "__call__" + ) as call: + client.update_route_policy_unary(request=None) + + # Establish that the underlying stub method was called. + call.assert_called() + _, args, _ = call.mock_calls[0] + request_msg = compute.UpdateRoutePolicyRouterRequest() + + assert args[0] == request_msg + + def test_routers_base_transport_error(): # Passing both a credentials object and credentials_file should raise an error with pytest.raises(core_exceptions.DuplicateCredentialArgs): @@ -6937,15 +10256,21 @@ def test_routers_base_transport(): methods = ( "aggregated_list", "delete", + "delete_route_policy", "get", "get_nat_ip_info", "get_nat_mapping_info", + "get_route_policy", "get_router_status", "insert", "list", + "list_bgp_routes", + "list_route_policies", "patch", + "patch_route_policy", "preview", "update", + "update_route_policy", ) for method in methods: with pytest.raises(NotImplementedError): @@ -7089,6 +10414,9 @@ def test_routers_client_transport_session_collision(transport_name): session1 = client1.transport.delete._session session2 = client2.transport.delete._session assert session1 != session2 + session1 = client1.transport.delete_route_policy._session + session2 = client2.transport.delete_route_policy._session + assert session1 != session2 session1 = client1.transport.get._session session2 = client2.transport.get._session assert session1 != session2 @@ -7098,6 +10426,9 @@ def test_routers_client_transport_session_collision(transport_name): session1 = client1.transport.get_nat_mapping_info._session session2 = client2.transport.get_nat_mapping_info._session assert session1 != session2 + session1 = client1.transport.get_route_policy._session + session2 = client2.transport.get_route_policy._session + assert session1 != session2 session1 = client1.transport.get_router_status._session session2 = client2.transport.get_router_status._session assert session1 != session2 @@ -7107,15 +10438,27 @@ def test_routers_client_transport_session_collision(transport_name): session1 = client1.transport.list._session session2 = client2.transport.list._session assert session1 != session2 + session1 = client1.transport.list_bgp_routes._session + session2 = client2.transport.list_bgp_routes._session + assert session1 != session2 + session1 = client1.transport.list_route_policies._session + session2 = client2.transport.list_route_policies._session + assert session1 != session2 session1 = client1.transport.patch._session session2 = client2.transport.patch._session assert session1 != session2 + session1 = client1.transport.patch_route_policy._session + session2 = client2.transport.patch_route_policy._session + assert session1 != session2 session1 = client1.transport.preview._session session2 = client2.transport.preview._session assert session1 != session2 session1 = client1.transport.update._session session2 = client2.transport.update._session assert session1 != session2 + session1 = client1.transport.update_route_policy._session + session2 = client2.transport.update_route_policy._session + assert session1 != session2 def test_common_billing_account_path():